Ignore physical memory below 1 MB. This is a work-around for buggy BIOSes

providing incorrect memory types. It doesn't cost us anything, since the
kernel reserves all but the unusable range later anyway. Should fix #1925.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35736 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2010-03-03 14:54:46 +00:00
parent 6a7f219c8d
commit 6dacf0502d
@@ -656,6 +656,15 @@ mmu_init(void)
// we ignore all memory beyond 4 GB
if (end > 0x100000000ULL)
end = 0x100000000ULL;
// Also ignore memory below 1 MB. Apparently some BIOSes fail to
// provide the correct range type for some ranges (cf. #1925).
// Later in the kernel we will reserve the range 0x0 - 0xa0000
// and apparently 0xa0000 - 0x100000 never contain usable
// memory, so we don't lose anything by doing that.
if (base < 0x100000)
base = 0x100000;
if (end <= base)
continue;