diff options
| author | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-08-09 09:05:02 +0200 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-08-09 09:05:02 +0200 |
| commit | 78579419442f22641368db777120d7e75cbaee94 (patch) | |
| tree | cd49284e7fe0a4c1e8057fce6e2aa66a07f12fee /kernel/src/boot/multiboot2.c | |
| parent | e11298e56be560de64bbccfe74fef7ff85c623d1 (diff) | |
map on page fault
Diffstat (limited to 'kernel/src/boot/multiboot2.c')
| -rw-r--r-- | kernel/src/boot/multiboot2.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/src/boot/multiboot2.c b/kernel/src/boot/multiboot2.c index 75a1f8d..9c2998f 100644 --- a/kernel/src/boot/multiboot2.c +++ b/kernel/src/boot/multiboot2.c @@ -3,6 +3,7 @@ #include <graphics.h> #include <debug.h> +#include <paging.h> #define KERNEL_VMA 0xc0000000 @@ -20,7 +21,6 @@ void init_fb(mb2_tag_header* multiboot_bootinfo, uint32_t multiboot_magic) // skip first 8 bytes (total_size + reserved) mb2_tag_header* tag_header = (mb2_tag_header*)((char*)multiboot_bootinfo + 8 + KERNEL_VMA); - bochs_breakpoint(); while (tag_header->type != MB2_TAG_END) { // process tag_type @@ -41,4 +41,8 @@ void init_fb(mb2_tag_header* multiboot_bootinfo, uint32_t multiboot_magic) main_fb.height = tag_fb->framebuffer_height; main_fb.pitch = tag_fb->framebuffer_pitch; main_fb.bpp = tag_fb->framebuffer_bpp; + + // identity map framebuffer address + map_addr(main_fb.addr, main_fb.addr, FLAG_PRESENT + FLAG_WRITABLE + FLAG_HUGE); + map_addr(main_fb.addr + PAGE_SIZE, main_fb.addr + PAGE_SIZE, FLAG_PRESENT + FLAG_WRITABLE + FLAG_HUGE); } |
