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.
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),