david/ipxe
Archived
1
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 89c767bfd6 [smsc95xx] Add driver for SMSC/Microchip LAN95xx USB Ethernet NICs
Tested using QEMU and usbredir to expose the LAN9512 chip present on a
Raspberry Pi.

There is a known issue with the LAN9512: an extra two bytes are
appended to every transmitted packet.  These two bytes comprise:

  {   0x00,   0x08 } if packet length == 0 (mod 8)
  { CRC[0],   0x00 } if packet length == 7 (mod 8)
  { CRC[0], CRC[1] } otherwise

The extra bytes are appended whether the Ethernet CRC is generated
manually or added automatically by the hardware.  The issue occurs
with the Linux kernel driver as well as the iPXE driver.  It appears
to be an undocumented hardware errata.

TCP/IP traffic is not affected, since the IP header length field
causes the extraneous bytes to be discarded by the receiver.  However,
protocols that rely on the length of the Ethernet frame (such as FCoE
or iPXE's "lotest" protocol) will be unusable on this hardware.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-12-01 15:37:37 +00:00
..
ath [ath9k] Remove confusing logic inversion in an ANI variable 2015-04-24 13:08:29 +01:00
efi [efi] Remove raw EFI_HANDLE values from debug messages 2015-08-27 15:40:44 +01:00
igbvf [pci] Rewrite unrelicensable portions of pci.h 2015-03-03 00:08:41 +00:00
phantom [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
rtl818x [rtl818x] Obviate RTL_ROM() hack 2015-04-22 11:05:19 +01:00
tg3 [pci] Add definitions for PCI Express function level reset (FLR) 2015-11-30 22:13:27 +00:00
vxge [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-05 11:40:13 +00:00
3c5x9.c [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01: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 [build] Fix uses of literal 0 as a NULL pointer 2013-04-28 17:13:44 +01:00
3c595.h [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01: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
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_fw.h Ported bnx2 driver from Etherboot 5.4. 2007-03-13 23:03:50 +00: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
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 for wildcard USB class IDs 2015-09-14 21:56:40 +01: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 [usb] Allow for wildcard USB class IDs 2015-09-14 21:56:40 +01:00
ecm.h [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +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
eepro.c [libc] Rewrite byte-swapping code 2015-03-02 16:35:37 +00: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_nic.h [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
etherfabric.c [pci] Rewrite unrelicensable portions of pci.h 2015-03-03 00:08:41 +00:00
etherfabric.h [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
forcedeth.c [pci] Rewrite unrelicensable portions of pci.h 2015-03-03 00:08:41 +00:00
forcedeth.h [forcedeth] Increase TX ring size to prevent dropped packets 2012-10-29 10:14:00 +00:00
hfa384x.h [prism2] Use standard type names 2013-03-27 15:16:52 +00:00
intel.c [intel] Forcibly skip PHY reset on some models 2015-11-22 19:08:09 +00:00
intel.h [intel] Correct definition of receive overrun bit 2015-11-22 19:17:24 +00:00
intelvf.c [intel] Fix operation when physical function has jumbo frames enabled 2015-05-19 13:03:02 +01:00
intelvf.h [intel] Fix operation when physical function has jumbo frames enabled 2015-05-19 13:03:02 +01:00
intelx.c [intel] Allow for the use of advanced TX descriptors 2015-05-16 14:54:31 +01:00
intelx.h [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
intelxvf.c [intel] Fix operation when physical function has jumbo frames enabled 2015-05-19 13:03:02 +01:00
intelxvf.h [intel] Fix operation when physical function has jumbo frames enabled 2015-05-19 13:03:02 +01:00
ipoib.c [ipoib] Fix a race when chain-loading undionly.kpxe in IPoIB 2015-08-17 14:42:36 +01: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
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_mcp.h [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
myri10ge.c [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00: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 [ncm] Support setting MAC address 2015-09-14 22:45:56 +01:00
ncm.h [ncm] Support setting MAC address 2015-09-14 22:45:56 +01:00
ne2k_isa.c [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
ne.c [ns8390] Use stub files instead of src/Config 2008-06-30 12:26:12 -07:00
netfront.c [base16] Add buffer size parameter to base16_encode() and base16_decode() 2015-04-24 14:41:32 +01:00
netfront.h [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
netvsc.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
netvsc.h [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00: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 [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00:00
pcnet32.h [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
pnic_api.h [legal] Add a selection of FILE_LICENCE declarations 2009-05-18 08:33:25 +01:00
pnic.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
prism2.c [legal] Include full licence text for all GPL2_OR_LATER files 2015-02-26 17:59:53 +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 unused variable warning in gcc 4.6 2011-03-16 19:32:24 +00:00
sis190.h [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00:00
sis900.c [build] Fix uses of literal 0 as a NULL pointer 2013-04-28 17:13:44 +01: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 [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
skge.h [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00:00
sky2.c [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00:00
sky2.h [src] Fix spelling in comments, debug messages and local variable names 2013-01-03 15:18:48 +00: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 [usb] Allow for wildcard USB class IDs 2015-09-14 21:56:40 +01:00
smsc75xx.h [smsc75xx] Add driver for SMSC/Microchip LAN75xx USB Ethernet NICs 2015-03-11 13:38:38 +00:00
smsc95xx.c [smsc95xx] Add driver for SMSC/Microchip LAN95xx USB Ethernet NICs 2015-12-01 15:37:37 +00:00
smsc95xx.h [smsc95xx] Add driver for SMSC/Microchip LAN95xx USB Ethernet NICs 2015-12-01 15:37:37 +00:00
sundance.c [pci] Rewrite unrelicensable portions of pci.h 2015-03-03 00:08:41 +00:00
tlan.c [build] Fix uses of literal 0 as a NULL pointer 2013-04-28 17:13:44 +01: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] Downgrade per-iobuf debug messages to DBGC2 2015-04-10 21:18:42 +01:00
virtio-net.h [virtio] Add legacy driver for KVM virtio-net 2008-08-01 16:55:49 +01: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 [pci] Remove outdated and mostly-unused pci_ids.h file 2015-03-02 21:37:45 +00: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