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:
