david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[prefix] Ignore PCI autoboot device location if set to 00:00.0

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>
This commit is contained in:
Michael Brown 2014-03-03 16:23:41 +00:00
parent c429bf0aa2
commit ff1e7fc72b
1 changed files with 4 additions and 2 deletions

View File

@ -34,8 +34,10 @@ uint16_t __bss16 ( autoboot_busdevfn );
*/
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 */