summaryrefslogtreecommitdiffstats
path: root/src/arch/x86/prefix/efidrvprefix.c
diff options
context:
space:
mode:
authorMichael Brown2011-02-17 01:27:51 +0100
committerMichael Brown2011-02-17 03:56:55 +0100
commitd7736fbb7bbf2116e95742affcaf45c2a7ee5476 (patch)
treeaad56a264b42dcba5e5e491e3eab8a04766a0647 /src/arch/x86/prefix/efidrvprefix.c
parent[efi] Rename efi_pci.h to efi_pci_api.h (diff)
downloadipxe-d7736fbb7bbf2116e95742affcaf45c2a7ee5476.tar.gz
ipxe-d7736fbb7bbf2116e95742affcaf45c2a7ee5476.tar.xz
ipxe-d7736fbb7bbf2116e95742affcaf45c2a7ee5476.zip
[efi] Allow EFI to control PCI bus enumeration
EFI performs its own PCI bus enumeration. Respect this, and start controlling devices only when instructed to do so by EFI. As a side benefit, we should now correctly create multiple SNP instances for multi-port devices. This should also fix the problem of failing to enumerate devices because the PCI bridges have not yet been enabled at the time the iPXE driver is loaded. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/x86/prefix/efidrvprefix.c')
-rw-r--r--src/arch/x86/prefix/efidrvprefix.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/arch/x86/prefix/efidrvprefix.c b/src/arch/x86/prefix/efidrvprefix.c
index 2215104b..a96c5c43 100644
--- a/src/arch/x86/prefix/efidrvprefix.c
+++ b/src/arch/x86/prefix/efidrvprefix.c
@@ -41,6 +41,7 @@ EFI_STATUS EFIAPI _efidrv_start ( EFI_HANDLE image_handle,
initialise();
startup();
- /* Install SNP driver and return */
- return RC_TO_EFIRC ( efi_snp_install () );
+ return 0;
}
+
+REQUIRE_OBJECT ( efi_snp );