From 32e2879f100dfefd143781b9f40db126ade38be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 8 Jan 2007 17:44:32 +0000 Subject: [PATCH] We now ignore all memory beyond the 4 GB barrier in 32-bit mode. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19743 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/boot/platform/bios_ia32/mmu.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/system/boot/platform/bios_ia32/mmu.cpp b/src/system/boot/platform/bios_ia32/mmu.cpp index 77ff574449..356ea0116b 100644 --- a/src/system/boot/platform/bios_ia32/mmu.cpp +++ b/src/system/boot/platform/bios_ia32/mmu.cpp @@ -567,6 +567,12 @@ mmu_init(void) extMemoryBlock[i].base_addr = ROUNDUP(extMemoryBlock[i].base_addr, B_PAGE_SIZE); extMemoryBlock[i].length = ROUNDOWN(extMemoryBlock[i].length, B_PAGE_SIZE); + // we ignore all memory beyond 4 GB + if (extMemoryBlock[i].base_addr > 0xffffffffULL) + continue; + if (extMemoryBlock[i].base_addr + extMemoryBlock[i].length > 0xffffffffULL) + extMemoryBlock[i].length = 0x100000000ULL - extMemoryBlock[i].base_addr; + if (gKernelArgs.num_physical_memory_ranges > 0) { // we might want to extend a previous hole addr_t previousEnd = gKernelArgs.physical_memory_range[