summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* [xfer] Send xfer_window_changed() after xfer_vredirect()Michael Brown2011-06-281-1/+16
| | | | | | | | | | Modify the default action for xfer_vredirect() to automatically send xfer_window_changed() messages to both the new child and the parent interfaces. This will allow the elimination of processes that simply poll on xfer_window() to determine when a redirection has completed successfully. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [tcp] Send xfer_window_changed() when window opensMichael Brown2011-06-281-19/+27
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [infiniband] Send xfer_window_changed() when CMRC connection is establishedMichael Brown2011-06-281-0/+3
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [tls] Send xfer_window_changed() when TLS session is establishedMichael Brown2011-06-281-0/+4
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [fc] Send xfer_window_changed() when FCP link is establishedMichael Brown2011-06-283-13/+100
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [fc] Maintain a list of Fibre Channel upper-layer protocol usersMichael Brown2011-06-284-39/+73
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ftp] Remove redundant ftp_data_deliver() methodMichael Brown2011-06-281-25/+4Star
| | | | | | | | ftp_data_deliver() does nothing except pass through the received data to the xfer interface, and so can be eliminated by using a pass-through interface. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [prefix] Cope with BOOT_IMAGE= anywhere within command lineMichael Brown2011-06-281-4/+14
| | | | | | | | Some bootloaders seem to add "BOOT_IMAGE=..." at the end of the command line; some at the start. Cope with either variation. Reported-by: Dave Hansen <dave@sr71.net> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ipv4] Record ARP resolution errorsMichael Brown2011-06-281-0/+2
| | | | | | | | | At the time of attempting ARP resolution, we already know the transmitting network device. We can therefore record ARP errors using netdev_tx_err() so that they show up in the output of "ifstat". Inspired-by: Dominik Russenberger <dominik.russenberger@terreactive.ch> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [netdevice] Allow non-completion TX errors to be recordedMichael Brown2011-06-282-7/+27
| | | | | | | | Allow TX errors to be recorded against a network device even when the packet didn't make it as far as netdev_tx(). Inspired-by: Dominik Russenberger <dominik.russenberger@terreactive.ch> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Allow APPEND lines in ipxe.iso to function as expectedDominic Cleal2011-05-191-1/+1
| | | | | Signed-off-by: Dominic Cleal <dcleal@redhat.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [parseopt] Disambiguate the various EINVAL errorsMichael Brown2011-05-181-2/+16
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [romprefix] Force PnP header to a 16-byte boundary for IBM BIOSesMichael Brown2011-05-171-0/+5
| | | | | | | | | | IBM BIOSes ignore the PnP header offset stored at address 0x1a and instead scan for the $PnP signature on a 16-byte boundary. (This alignment is not mandated by the PnP specification.) Force PnP header to a 16-byte boundary to work around these BIOSes. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [romprefix] Do not fall back to hooking INT19 by defaultMichael Brown2011-05-172-0/+8
| | | | | | | | | | | | | | | | | | | | Several BIOSes (including most IBM BIOSes and many virtual machine BIOSes) do not provide detectable PnP support, but will use the BEV entry point for a PnP option ROM. On these semi-PnP BIOSes, iPXE will respond to the absence of detectable PnP support by hooking INT19, which disrupts the boot order. BIOSes that genuinely require hooking INT19 seem to be very rare nowadays. It may therefore be preferable to assume that the absence of detectable PnP support indicates a semi-PnP BIOS rather than a non-PnP BIOS. Change the default behaviour so that INT19 will never be hooked unless the compile-time option NONPNP_HOOK_INT19 is enabled. Leave the redundant PnP detection routine in-place to allow for debugging via the ROM banner line. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [romprefix] Remove special treatment for IBM BIOSesMichael Brown2011-05-171-20/+6Star
| | | | | | | | Revert commit 38cd351 ("[romprefix] Attempt to gracefully handle semi-PnP IBM BIOSes"), since the test for the "IBM " signature in %edi is not sufficient to identify an IBM BIOS. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ipv4] Include network device metadata in packet tracesMichael Brown2011-05-051-3/+10
| | | | | | | | | | | | | | | | | (Ab)use the "ident" field in transmitted IPv4 packets to convey metadata about the network device. In particular: bits 0-3 represent the low bits of the "RX" good packet counter bits 4-7 represent the low bits of the "RXE" bad packet counter bits 8-15 represent the transmitted packet sequence number This allows some relevant information about the internal state of the network device to be read out from a packet trace from a non-debug build of iPXE. In particular, it allows a packet trace containing packets transmitted by iPXE to indicate whether or not any packets have been received by iPXE. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [bofm] Pass BOFM version 2 table to SetStatus() if applicableMichael Brown2011-05-051-10/+29
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [http] Support chunked transfer encodingMichael Brown2011-05-051-44/+119
| | | | | | | | Booting from an HTTP SAN will require HTTP range requests, which are defined only in HTTP/1.1 and above. HTTP/1.1 mandates support for "Transfer-Encoding: chunked", so we must support it. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [bofm] Increase amount of debugging availableMichael Brown2011-05-051-32/+48
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [forcedeth] Ensure that IRQ line is deasserted when disabling interruptsMichael Brown2011-05-041-3/+2Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Remove temporary workaround for missing BOFM mport supportMichael Brown2011-05-041-39/+15Star
| | | | | | | This reverts commit 15c1200 ("[hermon] Work around missing mport support in current BOFM implementations"). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [bofm] Report {slot,port} to {bus:dev.fn,mport} mapping on newer BOFM buildsMichael Brown2011-05-041-2/+7
| | | | | | | | | | | | | Newer BOFM builds provide support for mapping multiple physical ports to a single PCI bus:dev.fn via PCI VPD descriptions. These builds will also leave the {slot,port} field intact, and will populate the mport field with a meaningful value. Older BOFM builds will zero out the {slot,port} field. A zero value in this field may indicate either a genuine zero value (i.e. slot 0 first port) or an older build. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [bofm] Use "mport" rather than "port" to describe mport valueMichael Brown2011-05-041-5/+5
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [bofm] Match port numbering as used in CSV fileMichael Brown2011-05-041-1/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [romprefix] Attempt to gracefully handle semi-PnP IBM BIOSesMichael Brown2011-05-041-6/+20
| | | | | | | | | | | Some IBM BIOSes provide partial support for PnP: they will use the BEV entry point but will not advertise PnP support. This causes iPXE to hook INT 19, which disrupts the boot process. Attempt to improve this situation by detecting an IBM BIOS and treating it as a PnP BIOS despite the absence of a PnP signature. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [netdevice] Improve detection of bugs in drivers' TX completion handlingMichael Brown2011-05-031-2/+1Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [list] Add list_check_contains()Michael Brown2011-05-031-0/+19
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [netdevice] Move high-frequency debug messages to DBGLVL_EXTRAMichael Brown2011-05-031-9/+9
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [efi] Ensure that each HII package list and formset has a unique GUIDMichael Brown2011-05-031-3/+6
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Fix building on mildly deranged versions of binutilsMichael Brown2011-04-291-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some versions of binutils have curious concepts of what constitutes subtraction. For example: 0x00000000000000f0 _text16_late = . 0x0000000000000898 _mtext16 = . 0x0000000000000898 _etext16 = . 0x0000000000000898 _text16_late_filesz = ABSOLUTE ((_mtext16 - _text16_late)) 0x00000000000007a8 _text16_late_memsz = ABSOLUTE ((_etext16 - _text16_late)) This has interesting side-effects such as producing sizes for .bss segments that are negative, causing the majority of addressable memory to be zeroed out. Fix by using the form ABSOLUTE ( x ) - ABSOLUTE ( y ) rather than ABSOLUTE ( x - y ) Reported-by: H. Peter Anvin <hpa@zytor.com> Suggested-by: H. Peter Anvin <hpa@zytor.com> Tested-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [int13] Catch INT 13,4b when no explicit drive number is presentMichael Brown2011-04-281-2/+7
| | | | | | | | | This allows older versions of ELTORITO.SYS (such as the version found on the FreeDOS installation CD-ROM) to use iPXE's emulated CD-ROM drive. Reported-by: Robin Smidsrød <robin@smidsrod.no> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Accept EMBED=... as a synonym for EMBEDDED_IMAGE=...Michael Brown2011-04-281-5/+6
| | | | | | | | | | | | Make the build command line less cumbersome by accepting make DEBUG=int13 EMBED=test.ipxe rather then make DEBUG=int13 EMBEDDED_IMAGE=test.ipxe Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [int13] Add support for INT 13,4bMichael Brown2011-04-281-4/+46
| | | | | | | This allows the ELTORITO.SYS driver for MS-DOS to access our emulated CD-ROM drives. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [int13] Add support for El Torito bootable CD-ROM imagesMichael Brown2011-04-272-48/+486
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [linux] Avoid building Linux-specific prefix on non-Linux buildsMichael Brown2011-04-272-0/+0
| | | | | Reported-by: David Yeske <dyeske@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [sanboot] Add "sanhook" and "sanunhook" commandsMichael Brown2011-04-2410-77/+215
| | | | | | | Expose the multiple-SAN-drive capability of the iPXE core via the iPXE command line by adding commands to hook and unhook additional drives. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [parseopt] Allow for pre-initialised option setsMichael Brown2011-04-242-7/+24
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [undi] Assume that interrupts are not supported if IRQ=0Michael Brown2011-04-231-1/+3
| | | | | | | | | Some PXE stacks (notably old Etherboot/gPXE stacks) will claim to use the timer interrupt, rather than reporting that interrupts are not supported. Since using the timer interrupt is equivalent to polling anyway, we may as well genuinely poll these stacks. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Run parserom.pl only on potential driver filesMichael Brown2011-04-101-1/+2
| | | | | | | | | | | PCI_ROM() and ISA_ROM() macros occur only within driver files. Running parserom.pl on non-driver files is therefore redundant. Skip running parserom.pl on any files outside a "drivers" directory. This reduces the time taken to generate build rules and dependencies after a "make veryclean" by around 12%. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [cmdline] Add "iseq" commandGreg Jednaszewski2011-04-081-0/+37
| | | | | Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [cmdline] Simplify "isset" commandMichael Brown2011-04-081-10/+3Star
| | | | | | | | There is no plausible scenario I can think of in which "isset" would be used with more than one argument. Simplify the code by specifying that exactly one argument is required. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Work around missing mport support in current BOFM implementationsMichael Brown2011-04-081-15/+39
| | | | | | | | | | | | | | | | | | | | | | | Current BOFM versions are unable to create entries with mport>1, which means that only the port 1 MAC address can be explicitly specified. Work around this by using the provided MAC address as a base address for all subsequent ports. For example, if BOFM assigns the address 00:1A:64:76:00:09 for port 1 then we will assign the addresses 00:1A:64:76:00:09 for port 1 00:1A:64:76:00:0a for port 2 Future BOFM versions that may correctly support mport will work with this scheme without modification provided that the BOFM entries are created in increasing order of mport. Since BOFM tools tend to generate entries in increasing order (of slot, port, etc), this is not an unreasonable compromise. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [arbel] Stop firmware only once on shutdownMichael Brown2011-04-081-1/+0Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Stop firmware only once on shutdownMichael Brown2011-04-081-1/+0Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [efi] Add support for HIIMichael Brown2011-04-087-0/+1690
| | | | | | | Some EFI platforms expect us to provide an HII interface to display information about the driver. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [efi] Include MdeModulePkg directory in header import listMichael Brown2011-04-081-1/+2
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [efi] Add EFI string formatting functionsMichael Brown2011-04-084-15/+179
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [device] Make driver name a generic device propertyMichael Brown2011-04-0812-16/+14Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Refuse to attempt building with the GNU gold linkerMichael Brown2011-04-051-0/+7
| | | | | | | | | | | | | | GNU gold (part of newer binutils builds) does not appear to be designed to support generic linker functionality, since its source code contains several Linux-specific hard-coded assumptions about the layout of ELF binaries. Attempting to build iPXE using GNU gold will generally cause some kind of "linker internal error". Provide an explicit error message suggesting the use of GNU ld instead. Reported-by: Chris Hills <chaz@chaz6.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Perform tool checks on each make invocationMichael Brown2011-04-051-15/+17
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>