GRUB2 and Dell UEFI memory map

Richard Chan rspchan at starhub.net.sg
Mon Apr 16 18:54:41 CDT 2012


Hi list,

I thought I'd share success with GRUB2 (v2.00~beta), UEFI-mode with a
small patch to GRUB from:
http://savannah.gnu.org/bugs/?36077

I am finally able to boot in UEFI mode on 2 11G servers (R510, M910).

It turns out that Dell UEFI reports all memory below 1M as boot
services memory; while bootloaders are allowed to use it, GRUB avoids
it due to buggy UEFI implementations which marked runtime services as
boot services. The consequence of this is that GRUB could not find
enough real mode pages and kernel loading fails. The patch above lets
GRUB allocate boot services memory when it cannot find any real-mode
RAM.

Maybe the Dell folks here could forward this to the UEFI group to take
a look. The GRUB developers state

"Your memory map is very weird: the whole of real mode memory is
occupied by boot services data. Such memory according to specification
can be overwritten without any problem and GRUB previously followed it
but it was discovered that some EFI implementations improperly declare
runtime services memory as boot services so we've changed to not
overwriting them. But Linux can't be loaded without real mode memory,
attached patch overwrites boot services memory if it doesn't find
anythong (sic) better"

"I've seen this before, some UEFI implementation reserves the real
region so that you can't allocate memory in it, but it's not used at
all. You can just write to an address such as 0x90000 directly."



More information about the Linux-PowerEdge mailing list