summaryrefslogtreecommitdiffstats
path: root/src/drivers/net
Commit message (Collapse)AuthorAgeFilesLines
...
* [3c90x] More fine-grained debugging levelsThomas Miletich2011-02-081-23/+23
| | | | | | | | | DBG is reserved for errors and important warnings only. DBG2 for additional information, e.g. "received packet". DBGP is used to print the name of every function as it is called. Signed-off-by: Thomas Miletich<thomas.miletich@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [init] Remove concept of "shutdown exit flags"Michael Brown2011-01-271-3/+3
| | | | | | | | Remove the concept of shutdown exit flags, and replace it with a counter used to keep track of exposed interfaces that require devices to remain active. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [vxge] Add support for new function mode "multi-function 8 Direct IO"Masroor Vettuparambil2011-01-274-25/+55
| | | | | | | | | | | Support a new function mode "multi-function 8 Direct IO" which is used in ESX Direct I/O configuration. Update driver version to 3.5.0.1 Signed-off-by: Masroor Vettuparambil <masroor.vettuparambil@exar.com> Signed-off-by: Sivakumar Subramani <sivakumar.subramani@exar.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [infiniband] Indicate that device does not support interruptsMichael Brown2011-01-251-12/+0Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [nvo] Allow resizing of non-volatile stored option blocksMichael Brown2011-01-194-3/+4
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [nvo] Remove the non-volatile options fragment listMichael Brown2011-01-114-44/+21Star
| | | | | | | | | Since its implementation several years ago, no driver has used a fragment list containing more than a single fragment. Simplify the NVO core and the drivers that use it by removing the whole concept of the fragment list, and using a simple (address,length) pair instead. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [igbvf] Add igbvf driverAlex Williamson2010-12-169-0/+4475
| | | | | | | | | | | | Driver for Intel 82576 based virtual functions, based on Intel source code available at: http://sourceforge.net/projects/e1000 (igbvf-1.0.7) Based on initial port from Eric Keller <ekeller@princeton.edu>. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [r8169] Disabling IRQs should not also acknowledge the IRQsMichael Brown2010-12-091-1/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [legal] Add FILE_LICENCE macro to some GPL-v2-or-later filesShao Miller2010-12-043-0/+6
| | | | | | | | | Changes were made to files where the licence text within the files themselves confirms that the files are GPL version 2 or later. Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca> Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Apply settings block name in register_settings()Michael Brown2010-12-011-2/+2
| | | | | | | | Pass the settings block name as a parameter to register_settings(), rather than defining it with settings_init() (and then possibly changing it by directly manipulating settings->name). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [forcedeth] Exit poll() as early as possible if no work to doMichael Brown2010-11-121-4/+4
| | | | | Signed-off-by: Thomas Miletich <thomas.miletich@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [rtl8139] Operate in promiscuous modeMichael Brown2010-10-071-1/+1
| | | | | | | FCoE requires us to be able to receive unicast packets for multiple addresses. Support this by operating in promiscuous mode. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Add support for dual-protocol devicesMichael Brown2010-09-212-2575/+0Star
| | | | | Originally-implemented-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [infiniband] Add the notion of an Ethernet queue pair typeMichael Brown2010-09-211-0/+7
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [infiniband] Match GID/GUID terminology as used in the IBAMichael Brown2010-09-151-25/+25
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [e1000] Strip the Ethernet CRC from received packetsMichael Brown2010-09-151-1/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [rtl8139] Check for oversized packets when transmittingMichael Brown2010-09-051-0/+8
| | | | | | | | | | | | | | | | An attempt to transmit a packet of 8192 bytes or larger will collide with the status bits in the TX descriptor. This gives the appearance of the network card's transmit data path having just suddenly stopped responding; iPXE is waiting for the card to report a TX completion but, because of the status bit collision, the card thinks that the descriptor has not yet been written. Fix by explicitly checking for oversized packets in rtl_transmit(). Discovered during Fibre Channel over Ethernet testing, and debugged by using gdb to examine the state of the emulated rtl8139 card in qemu. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [infiniband] Add the concept of an Infiniband upper-layer driverMichael Brown2010-09-051-38/+46
| | | | | | | | | Replace the explicit calls from the Infiniband core to the IPoIB layer with the general concept of an Infiniband upper-layer driver (analogous to a PCI driver) which can create arbitrary devices on top of Infiniband devices. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [netdevice] Call netdev_link_[up|down|err]() only while registeredMichael Brown2010-09-0518-49/+45Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [sis190] Initialise network device before calling register_netdev()Michael Brown2010-09-051-1/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [rtl8139] Strip CRC from received packetsMichael Brown2010-09-031-0/+1
| | | | | | | | | | The rtl8139 driver includes the Ethernet CRC within the received packet. All current protocols ignore trailing garbage, but FCoE requires the frame length to be correct (since the FCoE footer position is calculated from the end of the packet), so fix the driver to strip out the CRC. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [eepro100] Add new PCI ID 8086:27dcMarty Connor2010-09-031-0/+1
| | | | | | | | | Add PCI ID 8086:27dc to the eepro100 driver. Reported-by: Cédric Delmas <c.delmas@akka.eu> Signed-off-by: Thomas Miletich <thomas.miletich@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [mtnic] Switch to malloc_dma() and free_dma()Piotr Jaroszyński2010-08-171-29/+29
| | | | | | | alloc_memblock() and free_memblock() are internal. Signed-off-by: Piotr Jaroszyński <p.jaroszynski@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ioapi] Move get_memmap() to the I/O API groupPiotr Jaroszyński2010-08-161-1/+2
| | | | | | | | | pcbios specific get_memmap() is used by the b44 driver making all-drivers builds fail on other platforms. Move it to the I/O API group and provide a dummy implementation on EFI. Signed-off-by: Piotr Jaroszyński <p.jaroszynski@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [forcedeth] Replace driver with native iPXE driverAndrei Faur2010-08-012-1230/+2375
| | | | | | | | | | | | | | | | | This patch adds a native iPXE forcedeth driver and removes the legacy Etherboot forcedeth driver. It supports 40 different chips, compared to the original 14. It has been tested on a NIC with an CK804 Ethernet Controller, and the results of downloading 5 100mb images in a row have been: 12/11/11/11/11 seconds; booting DSL using pxelinux also succeeded. The driver has also been tested by chaining undionly.kpxe and it worked. Signed-off-by: Andrei Faur <da3drus@gmail.com> Tested-by: Andrei Faur <da3drus@gmail.com> Tested-by: Guo-Fu Tseng <cooldavid@cooldavid.org> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [virtio] Replace virtio-net with native iPXE driverStefan Hajnoczi2010-07-171-228/+335
| | | | | | | | | | | | | | | | | | | | | | This patch adds a native iPXE virtio-net driver and removes the legacy Etherboot virtio-net driver. The main reasons for doing this are: 1. Multiple virtio-net NICs are now supported by iPXE. The legacy driver kept global state and caused issues in virtual machines with more than one virtio-net device. 2. Faster downloads. The native iPXE driver downloads 100 MB over HTTP in 12s, the legacy Etherboot driver in 37s. This simple benchmark uses KVM with tap networking and the Python SimpleHTTPServer both running on the same host. Changes to core virtio code reduce vring descriptors to 256 (QEMU uses 128 for virtio-blk and 256 for virtio-net) and change the opaque token from u16 to void*. Lowering the descriptor count reduces memory consumption. The void* opaque token change makes driver code simpler. Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [davicom] Use iPXE debugging infrastructureMichael Brown2010-07-141-25/+6Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [tulip] Use iPXE debugging infrastructureMichael Brown2010-07-141-209/+79Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pcnet32] Fix pcnet32_wio_reset() bugAndrei Faur2010-07-111-1/+1
| | | | | | | | This bug caused .probe to fail because the NIC did not reset properly. Signed-off-by: Andrei Faur <da3drus@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pcnet32] Fix uninitialised variableMichael Brown2010-06-251-1/+1
| | | | | Reported-by: Geoff Lywood <glywood@vmware.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [myri10ge] Add NonVolatile Option (nvo) supportGlenn Brown2010-06-251-11/+314
| | | | | | | | | | | | | | | Add NonVolatile Option (nvo) and NonVolatile Storage (nvs) support to the myri10ge driver using the EEPROM read/write mechanism provided by the NIC's Vendor Specific PCI capability. The myri10ge NIC is capabile of storing 64KB or more of nonvolatile options, but this patch advertises only 512 bytes of nvo storage because iPXE malloc's a buffer matching the total size we advertise. 512 is plenty without wasting malloc'd memory. (The 2 other drivers currently supporting nvo advertise 256 bytes or less.) Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [r8169] Remove driver cfg lookup, use pci_device_id->driver_data insteadAndrei Faur2010-06-232-66/+11Star
| | | | | | | | | This patch removes the cfg lookup made in the r8169 driver and replaces it with equivalent information found in the driver_data field of the pci_device_id structure. Signed-off-by: Andrei Faur <da3drus@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pcnet32] Replace pcnet32 with native driverAndrei Faur2010-06-222-822/+1143
| | | | | | | | | This patch replaces the old pcnet32 driver with a new one that uses iPXE's API. Signed-off-by: Andrei Faur <da3drus@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [jme] Fix 64-bit compile of JMicron ethernet driverGeoff Lywood2010-06-221-1/+1
| | | | | Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [jme] Fix refill behaviorGuo-Fu Tseng2010-06-131-7/+13
| | | | | | | | | | | After changing the driver to refill after feed, if any error occurs a non-contiguous empty buffer will be introduced in the ring due to my reuse-buffer-when-error implementation. Reported-by: Marty Connor <mdc@etherboot.org> Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ethernet] Move Ethernet MAC address checking routines to ethernet.hMichael Brown2010-06-072-16/+1Star
| | | | | Originally-fixed-by: Faur Andrei <da3drus@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [eepro100] Add PCI ID for Intel Pro/100 VEErwan Velu2010-06-071-0/+1
| | | | | | Signed-off-by: Erwan Velu <erwanaliasr1@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [jme] Add JMicron Ethernet driverGuo-Fu Tseng2010-06-022-0/+2217
| | | | | | | | | | | A new driver for JMicron Ethernet controller. Reviewed-by: Joshua Oreman <oremanj@rwcr.net> Reviewed-by: Michael Brown <mbrown@fensystems.co.uk> Reviewed-by: Marty Connor <mdc@etherboot.org> Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org> Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [efi] Add the "snpnet" driverGeoff Lywood2010-06-024-0/+575
| | | | | | | | | Add a new network driver that consumes the EFI Simple Network Protocol. Also add a bus driver that can find the Simple Network Protocol that iPXE was loaded from; the resulting behavior is similar to the "undionly" driver for BIOS systems. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [libc] Enable automated extraction of error usage reportsMichael Brown2010-05-311-2/+4
| | | | | | | Add preprocessor magic to the error definitions to enable every error usage to be tracked. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [compiler] Fix 64bit compile time errorsPiotr Jaroszyński2010-05-275-9/+9
| | | | | | | | | | | | Apart from format specifier fixes there are two changes in proper code: - Change type of regs in skge_hw to unsigned long - Cast result of sizeof in myri10ge to uint32_t Both don't change anything for i386 and should be fine on x86_64. Signed-off-by: Piotr Jaroszyński <p.jaroszynski@gmail.com> Signed-off-by: Joshua Oreman <oremanj@rwcr.net> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Rename gPXE to iPXEMichael Brown2010-04-2095-361/+361
| | | | | | | | | | | Access to the gpxe.org and etherboot.org domains and associated resources has been revoked by the registrant of the domain. Work around this problem by renaming project from gPXE to iPXE, and updating URLs to match. Also update README, LOG and COPYRIGHTS to remove obsolete information. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [eepro100] Remove link-state checkingThomas Miletich2010-04-192-48/+1Star
| | | | | | | | | | | | Christopher Armenio reported link detection problems with an integrated eepro100 NIC. Thomas Miletich removed link detection code from the eepro100 driver and verified that the driver continued to function. Christopher verified Thomas' patch on his integrated eepro100 NIC. Reported-by: Christopher Armenio <christopher.armenio@resquared.com> Signed-off-by: Thomas Miletich <thomas.miletich@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [drivers] Fix warnings identified by gcc 4.5Bruce Rogers2010-04-163-4/+4
| | | | | | | | | In building gpxe for openSUSE Factory (part of kvm package), there were a few problems identified by the compiler. This patch addresses them. Signed-off-by: Bruce Rogers <brogers@novell.com> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [phantom] Update interrupt support to match current firmwareMichael Brown2010-03-222-23/+91
| | | | | | | | | | | The interrupt control mechanism on Phantom cards has changed substantially since the driver was initially written. This updates the code to match the mechanism used in production firmware. This is sufficient to allow DOS wget to function successfully using the 3Com UNDI/NDIS, Intel UNDI/NDIS, and UNDIPD.COM UNDI/PD stacks. Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [igb] Add igb driverMarty Connor2010-03-1719-0/+13393
| | | | | | | | | | | | This commit adds an igb (Intel GigaBit) driver based on Intel source code available at: http://sourceforge.net/projects/e1000/ which is upstream source for the Linux kernel e1000 drivers, and should support some PCIe e1000 variants. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [e1000e] Add e1000e driverMarty Connor2010-03-1720-0/+18162
| | | | | | | | | | | | This commit adds an e1000e driver based on Intel source code available at: http://sourceforge.net/projects/e1000/ which is upstream source for the Linux kernel e1000 drivers, and should support many PCIe e1000 variants. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [e1000] Update e1000 driverMarty Connor2010-03-1724-13857/+15347
| | | | | | | | | | | | This commit replaces the current gPXE e1000 driver with one ported from Intel source code available at http://sourceforge.net/projects/e1000/ which is upstream source for the Linux kernel e1000 drivers, and should support most if not all PCI e1000 variants. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [vxge] Add stub vxge.c file so bin/vxge.usb can be builtStefan Hajnoczi2010-03-122-4/+23
| | | | | | | | | | | | The vxge driver code is split over several files, including vxge_main.c. This causes the build system and ROM-o-matic to see the driver as "vxge_main". This patch adds a stub vxge.c which takes up no space but gives the driver its proper name, "vxge". Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [vxge] Add support for X3100 series 10GbE Server/Storage AdapterMasroor Vettuparambil2010-02-248-0/+9382
| | | | | | | Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com> Signed-off-by: Masroor Vettuparambil <masroor.vettuparambil@neterion.com> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>