Hi,
I just finished adding initial support for option rom deployment in SeaBIOS. The idea is to allow SeaBIOS to be able to scan and run option roms without assistance from coreboot.
Unfortunately, I don't have any PCI cards with option roms on them. It would help if others could test this and report how it works.
The latest code is in git. To pull it, run:
git clone git://git.linuxtogo.org/home/kevin/seabios.git
I've also placed a pre-compiled payload at:
http://linuxtogo.org/~kevin/SeaBIOS/bios.bin.elf-20081108
If you have an on-board VGA at BDF 0x0100 and build the vga rom at 0xfffc0000 (as is common on coreboot-v2 with via motherboards), then you can also use:
http://linuxtogo.org/~kevin/SeaBIOS/bios.bin.elf-20081108-viavga
The option rom deployment code is at:
http://git.linuxtogo.org/?p=kevin/seabios.git;a=blob;f=src/optionroms.c;h=aa...
I'm a little concerned on how to ensure that the option rom is mapped to an area not cached and not in conflict with something else. So, I ended up mapping it to just above memory. (I only map it long enough to copy it.) Hopefully this will work out okay.
In order to support on-board option roms, I've added an ability to allow devices (with a specified Bus/Dev/Fn) to have option roms pulled from flash instead of PCI space. This is in keeping with how coreboot-v2 handles built-in option roms. (For coreboot-v3, I'd like to add in LAR parsing.)
Finally, if you want to try building from source, please be sure to update config.h and set CONFIG_COREBOOT and CONFIG_DEBUG_SERIAL, and clear CONFIG_OPTIONROMS_DEPLOYED.
Thoughts? -Kevin