I am working on a small x86 kernel. I am accessing and attempting to read the memory map that GRUB provides in the multiboot header. I have an Intel i3 cpu and 4 GiB of RA
Some thoughts:
0x0000000100000000
is >= 2^32. This is usually done, because hardware, ROM images and other special ranges are allocated below 2^32 in (all?) PCs. Thus, either PAE or long mode is required to access main memory ranges starting at or above 2^32.Edit:
Look here for more details: http://wiki.osdev.org/Detecting_Memory_%28x86%29
Edit 2:
Today, I stumbled upon a Sysinternals tool, which shows following physical range mapping for my EFI System, without any related setting altered. As one can see, all of 64GiB main memory is mapped at 0x100000000
, right at 2^32: