david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src/drivers/net
Michael Brown 9ccd8fe569 [efi] Enumerate PCI BARs in same order as SnpDxe
The UEFI specification has an implicit and demonstrably incorrect
requirement (in the Mem_IO() calling convention) that any UNDI network
device has at most one memory BAR and one I/O BAR.

Some UEFI platforms have been observed to report the existence of
non-existent additional I/O BARs, causing iPXE to select the wrong
BAR.  This problem does not affect the SnpDxe driver, since that
driver will always choose the lowest numbered existent BAR of each
type.

Adjust iPXE's behaviour to match that of SnpDxe, i.e. to always select
the lowest numbered BAR(s).

Debugged-by: Andreas Hammarskjöld <junior@2PintSoftware.com>
Debugged-by: Adklei <adklei@realtek.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2017-07-21 15:00:17 +01:00
..
ath [build] Avoid implicit-fallthrough warnings on GCC 7 2017-03-29 10:36:45 +03:00
efi [efi] Enumerate PCI BARs in same order as SnpDxe 2017-07-21 15:00:17 +01:00
igbvf [build] Avoid implicit-fallthrough warnings on GCC 7 2017-03-29 10:36:45 +03:00
phantom [pci] Support systems with multiple PCI root bridges 2016-06-09 09:36:28 +01:00
rtl818x [rtl818x] Fix resource leak on error path 2017-03-23 11:40:36 +02:00
sfc [sfc] Add driver for Solarflare SFC8XXX adapters 2017-04-10 16:17:08 +01:00
tg3 [build] Avoid implicit-fallthrough warnings on GCC 7 2017-03-29 10:36:45 +03:00
vxge [vxge] Fix use of stale I/O buffer on error path 2017-03-23 21:10:25 +02:00
3c5x9.c [3c5x9] Avoid use of sleep() in driver code 2016-03-22 15:14:07 +00:00
3c90x.c [3c90x] Fix High-MTU packet reception 2013-08-20 14:38:33 +01:00
3c90x.h [3c90x] Don't round up transmit packet length 2013-08-20 14:37:05 +01:00
3c503.c [ns8390] Use stub files instead of src/Config 2008-06-30 12:26:12 -07:00
3c509-eisa.c [console] Move putchar() and getchar() declarations to stdio.h 2012-03-26 14:43:52 +01:00
3c509.c [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
3c509.h [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00:00
3c515.c [build] Fix uses of literal 0 as a NULL pointer 2013-04-28 17:13:44 +01:00
3c515.txt Initial revision 2005-03-08 18:53:11 +00:00
3c529.c [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
3c595.c [3c595] Fix compilation when "char" is unsigned by default 2016-03-12 18:06:47 +00:00
3c595.h [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
acm.c [usb] Allow USB endpoints to specify a reserved header length for refills 2016-01-19 00:01:11 +00:00
acm.h [acm] Add support for CDC-ACM (aka USB RNDIS) devices 2015-12-07 13:16:53 +00:00
amd8111e.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
amd8111e.h [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
atl1e.c [pci] Rewrite unrelicensable portions of pci.h 2015-03-03 00:08:41 +00:00
atl1e.h [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
axge.c [axge] Add driver for ASIX 10/100/1000 USB Ethernet NICs 2016-05-26 12:52:06 +01:00
axge.h [axge] Add driver for ASIX 10/100/1000 USB Ethernet NICs 2016-05-26 12:52:06 +01:00
b44.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
b44.h [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
bnx2.c [build] Fix uses of literal 0 as a NULL pointer 2013-04-28 17:13:44 +01:00
bnx2.h [ethernet] Update mii.h and use it in drivers that had a private copy 2009-05-26 11:30:31 +01:00
bnx2_fw.h Ported bnx2 driver from Etherboot 5.4. 2007-03-13 23:03:50 +00:00
cs89x0.c [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00:00
cs89x0.h [cs89x0] Remove conflicting macro definitions 2013-03-25 22:23:04 +00:00
cs89x0.txt ]Drivers] Update licensing for cs89x0.[ch] and cs89x0.txt 2008-03-18 22:31:26 -04:00
davicom.c [pci] Remove outdated and mostly-unused pci_ids.h file 2015-03-02 21:37:45 +00:00
depca.c [console] Move putchar() and getchar() declarations to stdio.h 2012-03-26 14:43:52 +01:00
dm96xx.c [usb] Allow USB endpoints to specify a reserved header length for refills 2016-01-19 00:01:11 +00:00
dm96xx.h [legal] Relicense Davicom DM96xx drivers 2015-03-10 00:12:39 +00:00
dmfe.c [pci] Rewrite unrelicensable portions of pci.h 2015-03-03 00:08:41 +00:00
ecm.c [ecm] Display invalid MAC address strings in debug messages 2017-06-14 17:40:05 +01:00
ecm.h [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
eepro.c [libc] Rewrite byte-swapping code 2015-03-02 16:35:37 +00:00
eepro100.c [eepro100] Remove duplicate PCI_ROM() line 2015-04-15 11:38:10 +01:00
eepro100.h [pci] Make driver PCI ID a property of the PCI device 2011-02-17 01:25:12 +00:00
eoib.c [infiniband] Return status code from ib_create_cq() and ib_create_qp() 2017-03-22 11:18:02 +02:00
epic100.c [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00:00
epic100.h [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00:00
etherfabric.c [etherfabric] Avoid use of sleep() in driver code 2016-03-22 15:19:25 +00:00
etherfabric.h [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
etherfabric_nic.h [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
exanic.c [exanic] Add driver for Exablaze ExaNIC cards 2017-06-24 19:17:55 +01:00
exanic.h [exanic] Add driver for Exablaze ExaNIC cards 2017-06-24 19:17:55 +01:00
forcedeth.c [time] Allow timer to be selected at runtime 2017-01-26 08:17:37 +00:00
forcedeth.h [build] Provide common ARRAY_SIZE() definition 2017-03-10 15:44:11 +00:00
hfa384x.h [prism2] Use standard type names 2013-03-27 15:16:52 +00:00
intel.c [intel] Add support for I219-V in 7th Gen Intel NUC 2017-07-05 10:57:59 +01:00
intel.h [intel] Do not enable ASDE on i350 backplane NIC 2017-04-16 21:37:41 +01:00
intelvf.c [intel] Remove duplicate intelvf_mbox_queues() function 2016-07-14 13:51:07 +01:00
intelvf.h [intel] Strip spurious VLAN tags received by virtual function NICs 2016-07-12 09:14:41 +01:00
intelx.c [intel] Allow for the use of advanced TX descriptors 2015-05-16 14:54:31 +01:00
intelx.h [intel] Strip spurious VLAN tags received by virtual function NICs 2016-07-12 09:14:41 +01:00
intelxvf.c [intel] Reset all virtual function settings 2017-03-09 13:56:22 +00:00
intelxvf.h [intel] Reset all virtual function settings 2017-03-09 13:56:22 +00:00
ipoib.c [infiniband] Return status code from ib_create_cq() and ib_create_qp() 2017-03-22 11:18:02 +02:00
jme.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
jme.h [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
lan78xx.c [lan78xx] Add driver for Microchip LAN78xx USB Ethernet NICs 2017-07-10 13:01:03 +01:00
lan78xx.h [lan78xx] Add driver for Microchip LAN78xx USB Ethernet NICs 2017-07-10 13:01:03 +01:00
legacy.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
mii.c [mii] Add generic mii_check_link() function 2015-03-10 21:31:07 +00:00
myri10ge.c [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00:00
myri10ge_mcp.h [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
myson.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
myson.h [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
natsemi.c [natsemi] Check for ioremap() failures 2014-07-16 15:54:49 +01:00
natsemi.h [natsemi] Fix test for addresses below 4GB 2012-04-27 01:22:02 +01:00
ncm.c [usb] Allow USB endpoints to specify a reserved header length for refills 2016-01-19 00:01:11 +00:00
ncm.h [ncm] Support setting MAC address 2015-09-14 22:45:56 +01:00
ne.c [ns8390] Use stub files instead of src/Config 2008-06-30 12:26:12 -07:00
ne2k_isa.c [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
netfront.c [xen] Provide 18 4kB receive buffers to work around xen-netback bug 2017-05-19 02:56:53 +01:00
netfront.h [xen] Provide 18 4kB receive buffers to work around xen-netback bug 2017-05-19 02:56:53 +01:00
netvsc.c [hyperv] Cope with Windows Server 2016 enlightenments 2017-04-28 16:20:47 +01:00
netvsc.h [hyperv] Cope with Windows Server 2016 enlightenments 2017-04-28 16:20:47 +01:00
ns8390.c [build] Fix uses of literal 0 as a NULL pointer 2013-04-28 17:13:44 +01:00
ns8390.h [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
p80211hdr.h [prism2] Use standard type names 2013-03-27 15:16:52 +00:00
pcnet32.c [pcnet32] Eliminate redundant register read 2017-03-23 17:43:13 +02:00
pcnet32.h [build] Provide common ARRAY_SIZE() definition 2017-03-10 15:44:11 +00:00
pnic.c [legal] Include full licence text for all GPL2_OR_LATER files 2015-02-26 17:59:53 +00:00
pnic_api.h [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
prism2.c [legal] Include full licence text for all GPL2_OR_LATER files 2015-02-26 17:59:53 +00:00
prism2_pci.c [prism2] Remove duplicate PCI_ROM() lines 2015-04-15 11:38:10 +01:00
prism2_plx.c [pci] Rewrite unrelicensable portions of pci.h 2015-03-03 00:08:41 +00:00
realtek.c [realtek] Do not attempt to access EEPROM on RTL8169 chips 2015-04-21 17:42:36 +01:00
realtek.h [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
rhine.c [rhine] Rewrite VIA Rhine driver 2013-07-14 18:09:01 +02:00
rhine.h [rhine] Rewrite VIA Rhine driver 2013-07-14 18:09:01 +02:00
sis190.c [sis190] Avoid NULL pointer dereference 2017-03-22 16:12:56 +02:00
sis190.h [sis190] Fix building with GCC 6 2016-05-04 16:01:32 +01:00
sis900.c [sis900] Remove extraneous memset() with incorrect length 2017-03-21 13:55:04 +02:00
sis900.h [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
skeleton.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
skeleton.h [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
skge.c [skge] Fix building with GCC 6 2016-05-04 16:01:32 +01:00
skge.h [build] Provide common ARRAY_SIZE() definition 2017-03-10 15:44:11 +00:00
sky2.c [sky2] Use 32-bit read to read Y2_VAUX_AVAIL 2017-03-23 17:54:03 +02:00
sky2.h [sky2] Use 32-bit read to read Y2_VAUX_AVAIL 2017-03-23 17:54:03 +02:00
smc9000.c [smc9000] Avoid using CONFIG as a preprocessor macro 2014-08-19 14:38:27 +01:00
smc9000.h [smc9000] Avoid using CONFIG as a preprocessor macro 2014-08-19 14:38:27 +01:00
smsc75xx.c [smsc75xx] Expose functionality shared with LAN78xx devices 2017-07-10 12:41:23 +01:00
smsc75xx.h [smsc75xx] Expose functionality shared with LAN78xx devices 2017-07-10 12:41:23 +01:00
smsc95xx.c [smscusb] Allow for alternative PHY register layouts 2017-07-10 12:41:23 +01:00
smsc95xx.h [smscusb] Allow for alternative PHY register layouts 2017-07-10 12:41:23 +01:00
smscusb.c [smscusb] Allow for alternative PHY register layouts 2017-07-10 12:41:23 +01:00
smscusb.h [smscusb] Allow for alternative PHY register layouts 2017-07-10 12:41:23 +01:00
sundance.c [pci] Rewrite unrelicensable portions of pci.h 2015-03-03 00:08:41 +00:00
thunderx.c [thunderx] Use ThunderxConfigProtocol to obtain board configuration 2017-03-31 09:08:13 +03:00
thunderx.h [thunderx] Add driver for Cavium ThunderX SoC NICs 2016-06-13 18:41:26 +01:00
thunderxcfg.h [thunderx] Use ThunderxConfigProtocol to obtain board configuration 2017-03-31 09:08:13 +03:00
tlan.c [tlan] Guard against failure to identify chip 2017-03-22 15:28:58 +02:00
tlan.h [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
tulip.c [build] Fix uses of literal 0 as a NULL pointer 2013-04-28 17:13:44 +01:00
tulip.txt Update email addresses in drivers 2007-06-09 15:23:17 -04:00
velocity.c [velocity] Rewrite VIA Velocity driver 2013-07-15 11:25:51 +02:00
velocity.h [velocity] Rewrite VIA Velocity driver 2013-07-15 11:25:51 +02:00
virtio-net.c [virtio] Support VIRTIO_NET_F_IOMMU_PLATFORM 2017-07-10 11:10:45 +01:00
virtio-net.h [virtio] Use host-specified MTU when available 2017-01-23 16:32:54 +00:00
vmxnet3.c [vmxnet3] Avoid completely filling the TX descriptor ring 2015-09-16 11:10:30 +01:00
vmxnet3.h [vmxnet3] Avoid completely filling the TX descriptor ring 2015-09-16 11:10:30 +01:00
w89c840.c [w89c840] Avoid potential array overrun 2017-03-22 15:59:27 +02:00
wd.c [ns8390] Use stub files instead of src/Config 2008-06-30 12:26:12 -07:00
wlan_compat.h [prism2] Use standard type names 2013-03-27 15:16:52 +00:00