* Robert Millan rmh@aybabtu.com [071106 21:28]:
Hi!
Rudolf reported that GRUB doesn't start on LBv2 because it attempts to find the memory map table at 0x500, and it isn't always there. For him it is at 0x530, but looking at the code it seems not to be hardcoded, but instead right after a GDT that does live at 0x500. See:
http://grub.enbug.org/LinuxBIOS
Is there a spec on something on what should payloads do about this? Probe 0x500 and 0x530 or ... ?
See LinuxBIOSv2/util/lxbios/lbtable.c - The table can be anywhere in (low?) memory, at a 16byte aligned memory address. It can be probed by looking for the LBIO signature and the checksum.
v2 may use different places for the LB table, while v3 always puts it at 0x500 so far. This is not gonna stay like that, though, as we might want to enhance bios compatibility by filling the EBDA at 0x500 (after the BDA at 0x400) at some point.
Stefan