[SeaBIOS] Proper support for PCI-based option rom loading (was Re: [Qemu-devel] Re: qdev property bug?)
kraxel at redhat.com
Wed Dec 16 13:31:58 CET 2009
> 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.
I think using fw_config is the only sane way to make it work, especially
in case we switch vga bios load to pci bar too.
base address for vga bios is 0xc0000
base address for option roms is 0xc8000
If the vga bios is larger than 0x08000 bytes then the first option rom
has to be loaded at a higher address. Which is actually the case, check
addr=00000000000c0000 size=0x008c00 mem=ram name="vgabios-cirrus.bin"
addr=00000000000c9000 size=0x00dc00 mem=ram name="pxe-virtio.bin"
addr=00000000fffe0000 size=0x020000 mem=rom name="bios.bin"
Thus having qemu load -- say -- linuxboot.bin and seabios load
vgabios-cirrus.bin and pxe-virtio.bin simply isn't going to work. qemu
has no idea what address linuxboot.bin can be loaded at (without
introducing dirty hacks).
More information about the SeaBIOS