[LinuxBIOS] memory table address

Stefan Reinauer stepan at coresystems.de
Wed Nov 7 00:55:25 CET 2007


* Robert Millan <rmh at 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

-- 
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.dehttp://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866




More information about the coreboot mailing list