mirror of
https://github.com/ipxe/ipxe
synced 2026-01-02 01:42:37 +03:00
[pci] Avoid scanning nonexistent buses when using PCIAPI_DIRECT
There is no method for obtaining the number of PCI buses when using PCIAPI_DIRECT, and we therefore currently scan all possible bus numbers. This can cause a several-second startup delay in some virtualised environments, since PCI configuration space access will necessarily require the involvement of the hypervisor. Ameliorate this situation by defaulting to scanning only a single bus, and expanding the number of PCI buses to accommodate any subordinate buses that are detected during enumeration. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -32,8 +32,8 @@ extern void pcidirect_prepare ( struct pci_device *pci, int where );
|
||||
*/
|
||||
static inline __always_inline int
|
||||
PCIAPI_INLINE ( direct, pci_num_bus ) ( void ) {
|
||||
/* No way to work this out via Type 1 accesses */
|
||||
return 0x100;
|
||||
/* Scan first bus and rely on bridge detection to find higher buses */
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user