From 8b88a19f78e03b4d1f53a55206cbe6cf9d35671d Mon Sep 17 00:00:00 2001 From: Tulio A M Mendes Date: Tue, 10 Feb 2026 01:01:02 -0300 Subject: [PATCH] fix: move VBE framebuffer VA from 0xD0000000 to 0xE0000000 The kernel heap starts at KHEAP_START=0xD0000000 and spans 10MB. The VBE framebuffer was also mapped at 0xD0000000, causing a virtual address collision that would corrupt the heap when a framebuffer is present. Move VBE mapping to 0xE0000000 which is safely above the heap. Passes: make, cppcheck, QEMU smoke test. --- src/drivers/vbe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drivers/vbe.c b/src/drivers/vbe.c index a29a6bc..c638ea3 100644 --- a/src/drivers/vbe.c +++ b/src/drivers/vbe.c @@ -22,7 +22,7 @@ int vbe_init(const struct boot_info* bi) { g_vbe.size = g_vbe.pitch * g_vbe.height; uint32_t pages = (g_vbe.size + 0xFFF) >> 12; - uintptr_t virt_base = 0xD0000000U; + uintptr_t virt_base = 0xE0000000U; for (uint32_t i = 0; i < pages; i++) { vmm_map_page((uint64_t)(g_vbe.phys_addr + i * 0x1000), -- 2.43.0