qemu can load an option ROM which is not associated with a particular
PCI device using the "-option-rom" syntax. Under these circumstances,
we should ignore the PCI bus:dev.fn address that we expect to find in
%ax on entry to the initialisation vector.
Fix by using the PCI bus:dev.fn address only if it is non-zero. Since
00:00.0 will always be the host bridge, it can never be the address of
a network card.
Reported-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
*/
static void pci_autoboot_init ( void ) {
- autoboot_device.bus_type = BUS_TYPE_PCI;
- autoboot_device.location = autoboot_busdevfn;
+ if ( autoboot_busdevfn ) {
+ autoboot_device.bus_type = BUS_TYPE_PCI;
+ autoboot_device.location = autoboot_busdevfn;
+ }
}
/** PCI autoboot device initialisation function */