Alex Beregszaszi alex at rtfs.hu
Wed Sep 5 01:06:35 CEST 2007


attached is my work on ADLO.

1, use macros for frequently used functions (LOAD_SEG, CMOS_OUT,
2, store loader size at end (no 1kb limit)
3, change the copy routine to support 128kb images
4, createpayload utility, which concatenates the ELF header, the loader
and BIOS

Together with bochsbios.diff, this made it possible to use the latest
128kb big bios images from Bochs.

After talking with Stefan, it turned out that the enable/disable
shadowing inside ADLO are really machine specific, thus this method is
not really welcomed.

The new segment support in LAR made the following changes possible:

1, store ADLO in segment0 ("current ADLO" without the copy routine)
2, store the bios in segment1

Thus LinuxBIOS will copy the BIOS to the desired location and the
300byte ADLO will just set up the following:

1, clean up the interrupt vectors
2, set some CMOS variables
3, switch back to 16bit real mode
4, jump to the bios

This works fine now. Inside QEMU. A nice shadow disable/enable should be
implemented inside LinuxBIOS, and the lar segment loader should disable
it when infering with a region which is shadowed.

The linuxbios.diff is needed to turn on LAR segment support.

What is needed to be done:
1, shadowing in linuxbios
2, reading linuxbios tables for memory size in adlo
3, implementing a better logic in bochsbios regarding the boot devices
(currently it can only try one device, hardcoded in cmos)

Regarding 2, is there a simpler way than reading all the MEM entries in
the linuxbios tables?

Alex Beregszaszi

-------------- next part --------------
A non-text attachment was scrubbed...
Name: adlo2.tar.gz
Type: application/x-compressed-tar
Size: 69914 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20070905/95f54070/attachment.tar.gz>

More information about the coreboot mailing list