On Tue, Dec 15, 2009 at 03:41:02PM -0600, Anthony Liguori wrote:
SeaBIOS can also load roms from up to two fixed physical addresses (when !CONFIG_OPTIONROMS_DEPLOYED) or from a CBFS payload.
The support for loading of two static option roms wont work well for qemu - it requires compiling into SeaBIOS the PCI ids of the roms.
The CBFS payload loading is closer to what qemu wants. Basically, CBFS (coreboot filesystem) is a mechanism that coreboot uses for storing named files in flash. Code to mix PCI bar roms with other roms is something SeaBIOS already handles with the CBFS system. I doubt it would be worthwhile to introduce CBFS to qemu, but I think adding a "named file" interface to qemu cfg would help.
That way, SeaBIOS could load roms from the PCI bar, CBFS, or qemu cfg without having to duplicate the logic.
This came up before in the discussion at:
http://lists.gnu.org/archive/html/qemu-devel/2009-09/msg01200.html
Right now, qemu cfg uses two ports - a file select port (0x510) and a data port (0x511). Perhaps two new ports could be added - a file name port (0x0512) and a file length port (0x513).
Basically, if there is some way for SeaBIOS to walk a list of "files" in the "qemu cfg" space, then it should be straight forward to enhance the existing code in seabios to extract and deploy roms in addition to those found in the PCI bar.
You mean, non-PCI x86 systems? I think -m isapc is mainly used for dos guests. I don't think it's really useful in combination with -kernel and certainly not for extboot.
I think the issue here is that a "-m isapc" machine wont be able to run the vga rom if the vga rom is only available from a pci bar.
-Kevin