Add the beginning of support for kernel graphics to bootloader.

* Load a font file off disk to pass to kernel
* Expose a framebuffer to the kernel
* Currently the kernel just paints the screen red
This commit is contained in:
Justin C. Miller
2018-04-01 22:48:46 -07:00
parent 23365b39c7
commit 4577c2d10c
10 changed files with 338 additions and 104 deletions

View File

@@ -1,5 +1,6 @@
#pragma once
#include <efi.h>
#include <stddef.h>
#ifndef KERNEL_PHYS_ADDRESS
#define KERNEL_PHYS_ADDRESS 0x100000
@@ -13,8 +14,12 @@
#define KERNEL_MEMTYPE 0x80000000
#endif
#ifndef KERNEL_FONT_MEMTYPE
#define KERNEL_FONT_MEMTYPE 0x80000001
#endif
#ifndef KERNEL_DATA_MEMTYPE
#define KERNEL_DATA_MEMTYPE 0x80000001
#define KERNEL_DATA_MEMTYPE 0x80000002
#endif
#ifndef KERNEL_DATA_PAGES
@@ -25,9 +30,19 @@
#define KERNEL_FILENAME L"kernel.bin"
#endif
EFI_STATUS loader_load_kernel(
EFI_BOOT_SERVICES *bootsvc,
void **kernel_image,
uint64_t *kernel_length,
void **kernel_data,
uint64_t *data_length);
#ifndef KERNEL_FONT
#define KERNEL_FONT L"screenfont.psf"
#endif
struct loader_data {
void *kernel_image;
size_t kernel_image_length;
void *kernel_data;
size_t kernel_data_length;
void *screen_font;
size_t screen_font_length;
};
EFI_STATUS loader_load_kernel(EFI_BOOT_SERVICES *bootsvc, struct loader_data *data);