Hi Aaron,
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 entirely.
[...]
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 code.
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@gmail.com
Thanks - I'll take a look.
-Kevin