summaryrefslogtreecommitdiffstats
path: root/src/drivers
Commit message (Collapse)AuthorAgeFilesLines
...
* [qib7322] Fix whitespace errorsMichael Brown2010-06-011-107/+108
| | | | | | | Fix up the whitespace errors inadvertently introduced by the last-minute rename from the internal QLogic codename to "qib7322". Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [qib7322] Fix uninitialized variables warningShao Miller2010-06-011-3/+10
| | | | | | 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>
* [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>
* [qib7322] Add support for QLogic 7322 HCAMichael Brown2010-05-253-0/+10050
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Rename gPXE to iPXEMichael Brown2010-04-20121-433/+433
| | | | | | | | | | | 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>
* [hermon] Change hermon_alloc_icm() to conform to ConnectX2 requirementsItay Gazit2010-02-131-16/+58
| | | | | | | | Align each ICM member alloc to the member size instead of page size. Increase multicast table size to 128. Signed-off-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [rtl818x] Remove broken mmio register supportStefan Hajnoczi2010-01-251-3/+0Star
| | | | | | | | | | | | The rtl818x driver uses programmed I/O but has a fallback to memory-mapped I/O registers. The fallback currently will not work since the registers are accessed using inl()/outl() programmed I/O functions in the driver. This patch removes the fallback to we fail cleanly when programmed I/O is not possible. Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Joshua Oreman <oremanj@rwcr.net> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [natsemi] Convert stray mmio readl() to pio inl()Stefan Hajnoczi2010-01-251-1/+1
| | | | | | | | | | This driver uses programmed I/O to access hardware registers. There is a stray memory-mapped I/O read on a programmed I/O address. Perhaps this is an artifact of porting the driver. Fix this by converting it to programmed I/O. Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [pci] Save and restore PCI command registerBernhard Kohl2010-01-221-0/+5
| | | | | | | | | | | This seems to be necessary for some types of PCI devices. We had problems when using gPXE in KVM virtual machines with direct PCI device access. Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com> Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca> Modified-by: Marty Connor <mdc@etherboot.org> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [skge] Note correct author of akge driverThomas Miletich2010-01-141-4/+5
| | | | | | | | | The previous [skge] commit should have been recorded as authored by Thomas Miletich <thomas.miletich@gmail.com> I mistakenly committed it improperly after fixing a merge issue. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [skge] Add driver for skge NICsMarty Connor2010-01-142-0/+5094
| | | | | | | | | | | | | | This code is based on the linux skge driver. It supports Marvell Yukon and SysKonnect Gigabit chipsets. The code is based on code Michael Decker <mrd999@gmail.com> wrote for Google Summer of Code 2008. Support for dual-port cards is untested. The code, however, was left in. In my opinion it's easier to fix the code if we need to, instead of having to add support for it from scratch. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [myri10ge] Native driver for Myricom 10Gb Ethernet NICsGlenn Brown2010-01-142-0/+1555
| | | | | | | | | | This driver supports all current Myricom 10 gigabit Ethernet NICs. It was written from scratch for gPXE by Glenn Brown <glenn@myri.com>, referenencing Myricom's Linux and EFI drivers, with permission. Signed-off-by: Glenn Brown <glenn@myri.com> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [forcedeth] Add support for 10de:054c nforce 630a, MCP 67Thomas Horsten2010-01-141-0/+2
| | | | | | Tested-by: Boudhayan Gupta <bg13.ina@gmail.com> Signed-off-by: Thomas Horsten <thomas@horsten.com> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
* [e1000] Remove deprecated IRQ_FORCE action from e1000_irq()Thomas Miletich2010-01-051-23/+4Star
| | | | | | | The gPXE driver API does not have a "force interrupt" function. Remove legacy code. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [eepro100] Add missing FILE_LICENCE() to eepro100.hThomas Miletich2009-12-141-0/+2
| | | | Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
* [e1000] Enable interrupts in a more UNDI compatible wayThomas Miletich2009-11-251-2/+1Star
| | | | Signed-off-by: Marty Connor <mdc@etherboot.org>
* [eepro100] Convert to native gPXE APIThomas Miletich2009-11-222-639/+1197
| | | | | | | | | | | | This version is Based on Michael Decker's GSoC 2008 code. A number cleanups and fixes were applied. Earlier-version-reviewed-by: Marty Connor <mdc@etherboot.org> Earlier-version-tested-by: Marty Connor <mdc@etherboot.org> Earlier-version-tested-by: Shao Miller <Shao.Miller@yrdsb.edu.on.ca> Reviewed-by: Stefan Hajnoczi <stefanha@gmail.com> Reviewed-by: Joshua Oreman <oremanj@rwcr.net> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [e1000] Use the alternate MAC in NVRAM when availableAlex Williamson2009-11-222-3/+51
| | | | | | | | | | | | The 82571 supports an alternate MAC address location in NVRAM. When this is set, use this for the MAC rather than the default physical MAC address. Ported from linux-2.6.git 93ca161027eb6a1761fb674ad7b995aedccf5f6e Signed-off-by: Alex Williamson <alex.williamson@hp.com> Tested-by: Thomas Miletich <thomas.miletich@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [e1000] Implement zero-copy receiveThomas Miletich2009-11-221-63/+83
| | | | | Co-Authored by: Marty Connor <mdc@etherboot.org> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [linda] Re-import the latest register definitionsMichael Brown2009-11-161-6/+4Star
| | | | | Two registers have been renamed, and a bugfix to qib_genbits.pl removes a harmless excess padding field.
* [susieq] Update qib_genbits.pl to handle SusieQ definitionsMichael Brown2009-11-161-4/+24
| | | | | | The latest RTL-generated register lists include (mostly redundant) xxx_MSB values alongside xxx_LSB and xxx_RMASK, and also include default register values.
* [linda] Wait up to 20us for link state to updateMichael Brown2009-11-162-0/+35
| | | | | | | | | | Some subnet managers expect the GetResponse from a SetPortInfo MAD to contain the new link state. The transition is not immediate, so we often end up returning the previous link state. This can cause the SM to fail to activate the port. Fix by waiting for up to 20us for the link state transition to take effect.
* [ipoib] Mask out non-QPN bits in the IPoIB destination MAC when sendingMichael Brown2009-11-161-8/+7Star
| | | | | | | The first byte of the IPoIB MAC address is used for flags indicating support for "connected mode". Strip out the non-QPN bits of the first dword when constructing the address vector for transmitted IPoIB packets, so as not to end up passing an invalid QPN in the BTH.
* [ipoib] Always set the "full membership" bit in the IPv4 broadcast GIDMichael Brown2009-11-161-1/+2
| | | | | The SM always creates the IPoIB multicast groups with full membership partition keys.
* [infiniband] Report IB link status as IPoIB netdevice statusMichael Brown2009-11-161-5/+12
|
* [atl1e] Fix compilation on gcc-4.4.1-2.fc11.i586.Joshua Oreman2009-10-241-8/+9
| | | | | | | | | | | | | Error message was: [BUILD] bin/atl1e.oncc1: warnings being treated as errors drivers/net/atl1e.c: In function 'atl1e_get_permanent_address': drivers/net/atl1e.c:1326: error: dereferencing type-punned pointer will break strict-aliasing rules make: *** [bin/atl1e.o] Error 1 Reported-by: Giandomenico De Tullio <ghisha@email.it> Signed-off-by: Michael Brown <mcb30@etherboot.org> Modified-by: Michael Brown <mcb30@etherboot.org>
* [sis190] Hide the ISA bridge's PCI IDs from parserom.plThomas Miletich2009-10-241-3/+3
| | | | | Signed-off-by: Michael Brown <mcb30@etherboot.org> Modified-by: Michael Brown <mcb30@etherboot.org>
* [sis190] Insert forgotten FILE_LICENCE() to sis190.hThomas Miletich2009-10-241-1/+2
| | | | | Signed-off-by: Michael Brown <mcb30@etherboot.org> Modified-by: Michael Brown <mcb30@etherboot.org>
* [sis190] Make 'make allroms' happy.Thomas Miletich2009-10-241-2/+2
| | | | | | | | Remove spaces in 3rd PCI_ROM field. Debugged-by: Marty Connor <mdc@etherboot.org> Reported-by: Giandomenico De Tullio <ghisha@email.it> Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [netdevice] Add the concept of an "Ethernet-compatible" MAC addressMichael Brown2009-10-231-0/+57
| | | | | | | | | | | | | | The iBFT is Ethernet-centric in providing only six bytes for a MAC address. This is most probably an indirect consequence of a similar design flaw in the Windows NDIS stack. (The WinOF IPoIB stack performs all sorts of contortions in order to pretend to the NDIS layer that it is dealing with six-byte MAC addresses.) There is no sensible way in which to extend the iBFT without breaking compatibility with programs that expect to parse it. Add the notion of an "Ethernet-compatible" MAC address to our link layer abstraction, so that link layers can provide their own workarounds for this limitation.
* [sis190] Fix for gcc-3.3.3 compilationShao Miller2009-10-181-1/+1
| | | | | | | | | | | | | gcc 3.3.3 gave the following error when compiling sis190.c drivers/net/sis190.c: In function 'sis190_get_mac_addr_from_apc': drivers/net/sis190.c:966: warning: 'isa_bridge' might be used uninitialized in this function make: *** [bin/sis190.o] Error 1 This patch allows error-free compilation. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [ath5k] Save proper cacheline size when fixing PCI configurationJoshua Oreman2009-10-171-1/+2
| | | | | | | | | | | | Some BIOSes set the PCI cacheline size to zero for the card; the ath5k driver fixes it to a reasonable in PCI config space, but failed to correct the internal value it had already read. This resulted in divide-by-zero errors when cacheline-aligning various data structures. Fix by setting the internal cachelsz to a sane value at the same time as we write that value to PCI config space. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [ath5k] Update for changes in kernel 2.6.31Joshua Oreman2009-10-178-5/+147
| | | | | | | | | | | This adds basic rfkill support for enabling the wireless card on certain laptops, and changes miscellaneous other details that may help in obscure cases. Also change the error handling to not report CRC errors, which due to the basic facts of wireless may happen even more frequently than valid packets. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [sis190] Add sis190/191 ethernet driverThomas Miletich2009-10-162-0/+1489
| | | | | Tested-by: Paul Hackett <paulfxhackett@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [e1000] Add 82576 supportSimon Horman2009-10-163-24/+181
| | | | | | | | | | | | | | | | | | | Add the 82576 to the e1000 driver. - Examining the Linux 2.6.30-rc4 igb driver, which supports this card and; - Information available in the Intel® 82576 Gigabit Ethernet Controller Datasheet v2.1, which is available from Intel's web site. I only have a dual-ported card with Copper PHY, so any code paths relating to Fibre haven't been tested. Also, I have only tested using auto-negotiation of speed and duplex, and no flow control. Other code paths relating to those settings also have not been exercised. Signed-off-by: Simon Horman <horms@verge.net.au> Sponsored-by: Thomas Miletich <thomas.miletich@gmail.com> Modified-by: Thomas Miletich <thomas.miletich@gmail.com> Modified-by: Marty Connor <mdc@etherboot.org> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [atl1e] Add Attansic L1E gigabit Ethernet driverJoshua Oreman2009-10-162-0/+2788
| | | | Signed-off-by: Marty Connor <mdc@etherboot.org>
* [sis900] Enable interrupts to allow UNDI to workThomas Miletich2009-10-151-0/+6
| | | | | | | | Enable interrupts in sis900_irq(). Doing so allows some programs using gPXE's UNDI interface to work properly, including Symantec Ghost. Tested-by: Hubert Mercier <hubert.mercier@unilim.fr> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [3c90x] Fix a3c90x_close() and a3c90x_remove() methods.Thomas Miletich2009-10-151-3/+3
| | | | | | | | | | | Both methods disabled packet tx and rx just to have it enabled again by calling a3c90x_reset(). Fixed by disabling tx and rx after the call to a3c90x_reset(). Tested by booting Ubuntu intrepid(8.10) directly from gPXE and pxelinux. Tested on 3c905, 3c905B, 3c905C. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [hermon] Reset device during probe()Michael Brown2009-10-142-0/+28
| | | | | | | | | | | Some systems will retry their boot sequence in the event of a boot failure. On these systems, the second and subsequent boot attempts will fail to initialise the Hermon HCA. Fix by resetting the HCA during probe(). This incurs a one-second cost, but there seems to be no viable alternative. Originally-fixed-by: Itay Gazit <itaygazit@gmail.com>
* [pci] Add generic configuration space backup/restore facilityMichael Brown2009-10-141-0/+90
| | | | | | Some devices can only be reset via a mechanism that also resets the card's PCI core, thus necessitating a backup and restore of all or part of the PCI configuration space across a reset.
* [ath5k] Remove spurious debugging checkJoshua Oreman2009-08-181-10/+0Star
| | | | Signed-off-by: Marty Connor <mdc@etherboot.org>