Straight from the public UEFI docs:
If the MemoryMap buffer is too small, the EFI_BUFFER_TOO_SMALL error
code is returned and
the MemoryMapSize value contains the size of the buffer needed to
contain the current
memory map. The actual size of the buffer allocated for the consequent
call to GetMemoryMap()
should be bigger then the value returned in MemoryMapSize, since
allocation of the new buffer
may potentially increase memory map size.
...and of course you can use BootServices->AllocatePool to grab the
desired amount...
17.06.2008, в 3:58, David Holloway написал(а):
David Holloway wrote:
Intended for Robert Millan, et. al.
I have an Intel 1U server board that fails with the current version
of grub with the message "too little memory", as in line 312 of CVS
version 1.4 of grub2/kern/efi/mm.c
The board is described here:
http://www.intel.com/design/telecom/products/cbp/ipserver/9979/overview.htm
I added some debug and I think "required_pages" at line 312 has a
value of 1MB (256 pages), consistent with MIN_HEAP.
mmap from the EFI shell reports just 38 pages of LoaderData and
just 196 pages of LoaderCode.
It's my intention to bone up on EFI, but I'm not there yet.
The question: does just 38 pages of LoaderData make sense in this
implemetation? is MIN_HEAP too large or does this EFI
implementation provide too little memory to be practical?
I diagnosed the root problem.
The NSW1U board requires 7872 bytes for its memory map during the
EFI GetMemoryMap call, but only 4096 are supplied.
Obviously my short term solution is to increase MEMORY_MAP_SIZE from
0x1000 to 0x2000, but one wonders what the robust solution should be
instead. In fact, I now have the NSW1U server board working after
this change.
I'm now filing a bug report on the matter.
https://savannah.gnu.org/bugs/index.php?23615
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel