summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* [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-163-10/+13
| | | | | | | 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-162-1/+5
| | | | | The SM always creates the IPoIB multicast groups with full membership partition keys.
* [infiniband] Rename IB_PKEY_NONE to IB_PKEY_DEFAULTMichael Brown2009-11-163-3/+3
| | | | There is no such thing as a non-existent partition.
* [infiniband] Report IB link status as IPoIB netdevice statusMichael Brown2009-11-163-5/+41
|
* [infiniband] Include hostname in node description, if availableMichael Brown2009-11-161-1/+7
|
* [infiniband] Make node description invariant across all portsMichael Brown2009-11-161-4/+5
| | | | | | | IBA section 14.2.5.2 states that "the contents of the NodeDescription attribute are the same for all ports on a node". Satisfy this by using the HCA GUID rather than the port GUID to form the node description string.
* [ipv4] Ignore non-open net devices when performing routingMichael Brown2009-11-161-0/+2
| | | | | | | | | We do not discard routing table entries when closing an interface. It is plausible that multiple interfaces may be on the same physical network; if so, then we may end up in a situation whereby outbound packets attempt to route via a closed interface. Fix by ignoring non-open net devices in ipv4_route().
* [ipv4] Allow calculation of default subnet maskMichael Brown2009-11-161-11/+11
| | | | | | | | | | | | | ipv4.c calculates the default subnet mask before calling fetch_ipv4_setting() to retrieve the configured subnet mask (if any). However, as of commit 612f4e7 "[settings] Avoid returning uninitialised data on error in fetch_xxx_setting()", fetch_ipv4_setting() will zero the IP address if the setting does not exist, rather than leaving it unaltered. Fix by fetching the setting first and calculating the default subnet mask only if necessary.
* [ipv4] Use a zero address to indicate "no gateway", rather than INADDR_NONEMichael Brown2009-11-162-8/+7Star
| | | | | | | | | | | | | | | ipv4.c uses a gateway address of INADDR_NONE to represent "no gateway". It initialises the gateway address to INADDR_NONE before calling fetch_ipv4_setting() to retrieve the configured gateway address (if any). However, as of commit 612f4e7 "[settings] Avoid returning uninitialised data on error in fetch_xxx_setting()", fetch_ipv4_setting() will zero the IP address if the setting does not exist, rather than leaving it unaltered. Fix by using a zero IP address to indicate "no gateway", so that a non-existent gateway address setting will be treated as such.
* [libc] Use only generic errortab entries to match generic errorsMichael Brown2009-11-161-5/+4Star
|
* [sanboot] Extend the "keep-san" option to non-iSCSI SAN protocolsMichael Brown2009-11-045-17/+37
| | | | This disgustingly ugly hack just keeps getting worse.
* [pxebs] Correct endianness of PXE typeJoshua Oreman2009-10-241-2/+2
| | | | | | | | | | The PXE type field is canonically little-endian, but the pxebs command treats it as big-endian in converting the type number passed on the command line to a field value to search against. Fix, to prevent the necessity of incantations like "pxebs net0 1536" to select menu item #6. Signed-off-by: Michael Brown <mcb30@etherboot.org> Modified-by: Michael Brown <mcb30@etherboot.org>
* [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-242-4/+9
| | | | | 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>
* [iscsi] Use the "Ethernet-compatible" MAC address in the iBFTMichael Brown2009-10-231-4/+8
|
* [netdevice] Add the concept of an "Ethernet-compatible" MAC addressMichael Brown2009-10-235-6/+84
| | | | | | | | | | | | | | 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.
* [iscsi] Fix printing of non-existent strings in iBFT debug messagesMichael Brown2009-10-231-1/+2
|
* [release] Update version to 0.9.9+ post releaseMarty Connor2009-10-211-1/+1
|
* [release] Update version to 0.9.9 for releasev0.9.9Marty Connor2009-10-211-2/+2
|
* [zbin] Fix 64-bit compilation warnings for util/zbin.cJoshua Oreman2009-10-201-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent gcc versions generate more warnings when compiling util/zbin.c on a 64-bit system: util/zbin.c: In function `read_file': util/zbin.c:85: warning: format `%d' expects type `int', but argument 3 has type `size_t' util/zbin.c:91: warning: format `%d' expects type `int', but argument 3 has type `size_t' util/zbin.c: In function `read_zinfo_file': util/zbin.c:119: warning: format `%d' expects type `int', but argument 4 has type `size_t' util/zbin.c: In function `alloc_output_file': util/zbin.c:134: warning: format `%d' expects type `int', but argument 3 has type `size_t' util/zbin.c: In function `process_zinfo_add': util/zbin.c:244: warning: format `%d' expects type `int', but argument 3 has type `size_t' util/zbin.c:266: warning: format `%d' expects type `int', but argument 7 has type `size_t' util/zbin.c:286: warning: format `%#x' expects type `unsigned int', but argument 7 has type `size_t' util/zbin.c: In function `write_output_file': util/zbin.c:348: warning: format `%d' expects type `int', but argument 3 has type `size_t' This patch eliminates these warnings. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [util] Change gensdsk file permissions to include executeMarty Connor2009-10-201-0/+0
| | | | | | src/util/gensdsk is a shell script and should have execute permission. Reported-by: sobtwmxt sobtwmxt@sdf.lonestar.org
* [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>
* [zbin] Fix compilation warnings for util/zbin.cThomas Miletich2009-10-171-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Recent gcc versions generate warnings when compiling util/zbin.c ( tested with gcc-4.3.3 ): util/zbin.c: In function ‘process_zinfo_pack’: util/zbin.c:200: warning: format ‘%#zx’ expects type ‘size_t’, but argument 6 has type ‘long unsigned int’ util/zbin.c: In function ‘process_zinfo_add’: util/zbin.c:257: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 4 has type ‘int’ util/zbin.c:266: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 4 has type ‘int’ util/zbin.c:266: warning: format ‘%d’ expects type ‘int’, but argument 8 has type ‘long unsigned int’ util/zbin.c:286: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 6 has type ‘int’ util/zbin.c:286: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 7 has type ‘size_t’ This patch eliminates these warnings. Tested with gcc-4.3.3 on Ubuntu 9.04 and gcc-4.1.2 on Debian Etch. 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>
* [infiniband] Send CM requests to target node's GSI rather than SM's GSIMichael Brown2009-10-171-1/+3
|
* [sis190] Add sis190/191 ethernet driverThomas Miletich2009-10-163-0/+1490
| | | | | 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-163-0/+2789
| | | | 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>
* [util] Make mtools check detect new versionsStefan Hajnoczi2009-10-152-2/+2
| | | | | | | | | The mtools version check does not handle GNU mtools 4.0.10. This commit makes the pattern more general so it matches older mtools as well as the newer "mtools (GNU mtools) 4.0.10" string. Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [modrom] Avoid clobbering near jump with checksumJoshua Oreman2009-10-151-2/+2
| | | | | | | | | | | | | | A jump instruction starts at the third byte of an option ROM image, and it is required that the bytes in the whole image add up to zero. To achieve this, a checksum byte is usually placed after the jump. The jump can be either a short jump (2 bytes, EB xx) or a near jump (3 bytes, E9 xx xx). gPXE's romprefix.S uses a near jump, but modrom.pl assumed a short jump, and clobbered the high byte of the offset. This caused modrom-modified gPXE ROM images to crash the system during POST. Fix by making modrom.pl place the checksum at byte 6, like makerom.pl does. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [build] Fix DEBUG builds for filenames with hyphensJoshua Oreman2009-10-151-1/+1
| | | | | | | | | | | | | | | | | | | Debug builds for filenames with hyphens such as: $ make bin/via-rhine.dsk DEBUG=via-rhine fail with: [BUILD] bin/via-rhine.dbg1.o <command-line>: error: missing whitespace after the macro name make: *** [bin/via-rhine.dbg1.o] Error 1 This is because "-" is not a legal character in C identifiers, and gcc rejects "-Ddebug_via-rhine=1" as an argument. Signed-off-by: Daniel Verkamp <daniel@drv.nu> Signed-off-by: Joshua Oreman <oremanj@rwcr.net> 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>
* [release] Update version to 0.9.8+ post releaseMarty Connor2009-10-141-1/+1
|
* [release] Update version to 0.9.8 for releasev0.9.8Marty Connor2009-10-141-2/+2
|
* [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-142-0/+123
| | | | | | 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.
* [job] Report progress of downloader jobs via job_progress()Michael Brown2009-08-311-2/+21
|
* [job] Add missing job_progress() interface methodMichael Brown2009-08-312-0/+10
|
* [ath5k] Remove spurious debugging checkJoshua Oreman2009-08-181-10/+0Star
| | | | Signed-off-by: Marty Connor <mdc@etherboot.org>
* [802.11] Support multicast hashingMichael Brown2009-08-123-22/+4Star
| | | | | | | 802.11 multicast hashing is the same as standard Ethernet hashing, so just expose and use eth_mc_hash(). Signed-off-by: Joshua Oreman <oremanj@rwcr.net>
* [802.11] Properly initialize autoassociation processJoshua Oreman2009-08-121-1/+2
| | | | | | | | | | | | | The recent change to process_add() to detect duplicate process additions relies on the fact that all processes will be initialized using process_init_stopped() before being passed to that function. The autoassociation process was not initialized in this fashion, so process_add() erroneously detected it as a duplicate. Fix by using process_init_stopped() to initialize the autoassociation process instead of setting the step member directly. Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [dhcp] Fall back to using the hardware address to populate the chaddr fieldMichael Brown2009-08-123-12/+52
| | | | | | | | | | | | | | | | | | | | | | | | For IPoIB, the chaddr field is too small (16 bytes) to contain the 20-byte IPoIB link-layer address. RFC4390 mandates that we should pass an empty chaddr field and rely on the DHCP client identifier instead. This has many problems, not least of which is that a client identifier containing an IPoIB link-layer address is not very useful from the point of view of creating DHCP reservations, since the QPN component is assigned at runtime and may vary between boots. Leave the DHCP client identifier as-is, to avoid breaking existing setups as far as possible, but expose the real hardware address (the port GUID) via the DHCP chaddr field, using the broadcast flag to instruct the DHCP server not to use this chaddr value as a link-layer address. This makes it possible (at least with ISC dhcpd) to create DHCP reservations using host declarations such as: host duckling { fixed-address 10.252.252.99; hardware unknown-32 00:02:c9:02:00:25:a1:b5; }
* [netdevice] Allow the hardware and link-layer addresses to differ in sizeMichael Brown2009-08-128-17/+66
| | | | | | | | | | IPoIB has a 20-byte link-layer address, of which only eight bytes represent anything relating to a "hardware address". The PXE and EFI SNP APIs expect the permanent address to be the same size as the link-layer address, so fill in the "permanent address" field with the initial link layer address (as generated by register_netdev() based upon the real hardware address).
* [netdevice] Separate out the concept of hardware and link-layer addressesMichael Brown2009-08-1222-82/+71Star
| | | | | | | | | | | The hardware address is an intrinsic property of the hardware, while the link-layer address can be changed at runtime. This separation is exposed via APIs such as PXE and EFI, but is currently elided by gPXE. Expose the hardware and link-layer addresses as separate properties within a net device. Drivers should now fill in hw_addr, which will be used to initialise ll_addr at the time of calling register_netdev().
* [doc] Expand scope of doxygen-generated documentationMichael Brown2009-08-114-30/+45
|