[coreboot] legacy bios support and coreboot
kevin at koconnor.net
Thu May 8 02:25:32 CEST 2008
On Wed, May 07, 2008 at 10:50:11AM +0800, aaron lwe wrote:
> > The option rom scan and execution allows the bios code to call out to
> > additional system roms. The "post" stage runs in 32bit mode, but the
> > option roms are called in 16bit mode - the "legacybios" code simply
> > transitions to/from 16bit mode to make these calls. The option rom
> > code is executed natively on the processor.
> I think this is redundant with coreboot, since coreboot will also run
> pci rom, eg. vga bios.
I think coreboot only runs the vga bios and only in a simulator. I
think it would be difficult to run some option roms (eg, scsi) from
within an emulator. That said, I think it would be great to configure
which roms got run, which got emulated, and which got skipped
> > Some of the hardware accesses made by the "legacybios" code appear to
> > be specific to hardware in the emulator. The code attempts to enable
> > ram shadowing of the memory segment at 0xf00000 - it does this so that
> > it can put acpi/mptable/smbios tables into that area. After it is
> > complete, it attempts to disable writes to that region. The code
> > sequence looks to be specific to intel north/southbridges. It isn't
> > necessary to disable writes to 0xf0000 (though it would be nice), but
> > it is necessary to have the ability to alter that memory.
> This shadowing job should be left to coreboot, if someone is going to
> use legacybios, he should take care of this shadowing job in ram init
That's fine, but it means the launched OS will be able to overwrite
the 0xf0000 segment. It would be nice to write protect it, but it is
not a huge issue.
> I've written a loader for coreboot-v2 to load legacybios, it works
> well when used with qemu, I've booted freebsd with it. But on real
> hardware, via epia-cn, it hangs with a blank screen, the debug port
> value is 0x31, I'll take some time to see what's going wrong.
Changing the legacybios code to forward debug output to a serial port
will definitely help here.
> I add a header for legacybios to become a payload, this is done by a
> utility createpayload.
> I've attached the loader and the utility.
> Signed-off-by: Aaron Lwe <aaron.lwe at gmail.com>
Thanks - I'll take a look.
More information about the coreboot