Hey Sai and others, I did not verify this is actually the case for QEMU, but the mentioned range is usually the SMRAM ASEG. SMRAM ranges are not reported in the Memory Map by-design.
Regards, Marvin > -----Original Message----- > From: edk2-devel <edk2-devel-boun...@lists.01.org> On Behalf Of Prakhya, > Sai Praneeth > Sent: Tuesday, May 15, 2018 3:29 AM > To: Bill Paul <wp...@windriver.com>; edk2-devel@lists.01.org > Cc: Neri, Ricardo <ricardo.n...@intel.com> > Subject: Re: [edk2] Query regarding hole in EFI Memory Map > > > Of all the gin joints in all the towns in all the world, Prakhya, Sai > > Praneeth had to walk into mine at 16:30 on Monday 14 May 2018 and say: > > > > > Hi All, > > > > > > Recently, I have observed that there was a hole in EFI Memory Map > > > passed by firmware to Linux kernel. So, wanted to check with you if > > > this is expected or not. > > > > > > My Test setup: > > > I usually boot qemu with OVMF and Linux kernel. I use below command > > > to boot kernel. "qemu-system-x86_64 -cpu host -hda <live-image> > > > -serial stdio -bios <OVMF.fd> -m 2G -enable-kvm -smp 2" > > > > > > I have noticed that the EFI Memory Map (printed by kernel) is almost > > > contiguous but with only one hole ranging from 0xA0000 to 0x100000. > > > As far as I know, kernel hasn't modified this EFI Memory Map, so I > > > am assuming that firmware has passed memory map with a hole. I have > > > looked at UEFI spec "GetMemoryMap()" definition, and it says "The > > > map describes all of memory, no matter how it is being used". So, I > > > am thinking that EFI Memory Map shouldn't have any holes, am I correct? > > > If not, could someone please explain me the reason for this hole in > > > EFI > > Memory Map. > > > > The map may describe all of physical RAM, however it is not > > necessarily the case that all available RAM be physically contiguous. > > > > With older IBM PCs based on the Intel 8088 processor, you could only > > have a 1MB address space. The first 640KB was available for RAM. The > > remaining space traditionally contained memory-mapped option ROMs, > > particularly for things like the video BIOS routines. The VGA text screen > > was > also mapped to 0xB8000. > > > > Obviously, later processors made it possible to have additional memory > > above 1MB (sometimes called "high memory"), but for backward > > compatibility purposes, the gap from 0xA0000 to 0xFFFFF remained. > > > > So basically, on Intel machines you will always see this gap in RAM > > due to "hysterical raisins." It's just an artifact of the platform > > design. (And for that reason you'll see it both with the UEFI memory > > map facility and the legacy E820 BIOS facility). > > Thanks a lot! for the explanation Bill. I really appreciate it :) > > Regards, > Sai > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel