summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Brown2011-11-11 22:30:50 +0100
committerMichael Brown2011-11-11 22:32:09 +0100
commita05b89ef454d3eba2de00f75dd7a78c68b3cfdf5 (patch)
tree70bbb9e0a06a92c16f515cd20b110621b69d6e7b /src
parent[getopt] Accept "--" as an end-of-options marker (diff)
downloadipxe-a05b89ef454d3eba2de00f75dd7a78c68b3cfdf5.tar.gz
ipxe-a05b89ef454d3eba2de00f75dd7a78c68b3cfdf5.tar.xz
ipxe-a05b89ef454d3eba2de00f75dd7a78c68b3cfdf5.zip
[undi] Ensure that native drivers are tried before the UNDI PCI driver
Suggested-by: Alessandro Salvatori <sandr8@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
-rw-r--r--src/arch/i386/drivers/net/undi.c2
-rw-r--r--src/include/ipxe/pci.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/arch/i386/drivers/net/undi.c b/src/arch/i386/drivers/net/undi.c
index 34fd09562..ad655620d 100644
--- a/src/arch/i386/drivers/net/undi.c
+++ b/src/arch/i386/drivers/net/undi.c
@@ -140,7 +140,7 @@ static struct pci_device_id undipci_nics[] = {
PCI_ROM ( 0xffff, 0xffff, "undipci", "UNDI (PCI)", 0 ),
};
-struct pci_driver undipci_driver __pci_driver = {
+struct pci_driver undipci_driver __pci_driver_fallback = {
.ids = undipci_nics,
.id_count = ( sizeof ( undipci_nics ) / sizeof ( undipci_nics[0] ) ),
.probe = undipci_probe,
diff --git a/src/include/ipxe/pci.h b/src/include/ipxe/pci.h
index 960454d69..520c8a027 100644
--- a/src/include/ipxe/pci.h
+++ b/src/include/ipxe/pci.h
@@ -343,6 +343,9 @@ struct pci_driver {
/** Declare a PCI driver */
#define __pci_driver __table_entry ( PCI_DRIVERS, 01 )
+/** Declare a fallback PCI driver */
+#define __pci_driver_fallback __table_entry ( PCI_DRIVERS, 02 )
+
#define PCI_BUS( busdevfn ) ( ( (busdevfn) >> 8 ) & 0xff )
#define PCI_SLOT( busdevfn ) ( ( (busdevfn) >> 3 ) & 0x1f )
#define PCI_FUNC( busdevfn ) ( ( (busdevfn) >> 0 ) & 0x07 )