summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* [pci] Modularise PCI device supportMichael Brown2011-02-172-47/+107
| | | | | | | | Some operating environments require (or at least prefer) that we do not perform our own PCI bus scan, but deal only with specified devices. Modularise the PCI core to allow for this. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pci] Make driver PCI ID a property of the PCI deviceMichael Brown2011-02-1745-107/+77Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pci] Replace pci_max_bus() with pci_num_bus()Michael Brown2011-02-177-19/+19
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pci] Use single "busdevfn" field in struct pci_deviceMichael Brown2011-02-1710-101/+97Star
| | | | | | | Merge the "bus" and "devfn" fields into a single "busdevfn" field, to match the format used by the majority of external code. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [bitops] Add missing __attribute__ (( packed ))Michael Brown2011-02-171-1/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Add missing __attribute__ (( packed ))Michael Brown2011-02-171-2/+2
| | | | | | | | | | On 64-bit builds, MLX_DECLARE_STRUCT() produces a structure that is always a multiple of 64 bits long, causing the HCR structure to be over-length by one dword. This in turn causes hermon_cmd() to write beyond the end of the HCR, which causes commands to fail. Reported-by: Itay Gazit <itayg@mellanox.co.il> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Force link speed to SDRItay Gazit2011-02-173-5/+62
| | | | | | | SDR link comes up much faster than other speeds. Signed-off-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Use circular event queueItay Gazit2011-02-172-4/+10
| | | | | | | | | Avoid memory leak of untreated events by having circular event queue operation. Signed-off-by: Itay Gazit <itaygazit@gmail.com> Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Update PRM file with latest changesItay Gazit2011-02-171-20/+18Star
| | | | | Signed-off-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Fix hermon_cmd_sense_port() to use inline outputItay Gazit2011-02-171-3/+3
| | | | | Signed-off-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pcbios] Merge adjacent memory regions of same typeEduardo Habkost2011-02-171-2/+10
| | | | | | | | | | Some BIOSes can report multiple memory regions which may be adjacent and the same type. Since only the first region is used in the mboot.c32 layer it's possible to run out of memory when loading all of the boot modules. One may get around this problem by having iPXE merge these memory regions internally. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [3c90x] Clean up reset codeThomas Miletich2011-02-082-15/+16
| | | | | | | | | | | | | Remove duplicate hardware resets, remove network interface logic reset. This also fixes a bug where some 3c905C variants would return bogus EEPROM values because of a too short delay after the network reset. Signed-off-by: Thomas Miletich <thomas.miletich@gmail.com> Reported-by: Peter Huewe <peterhuewe@gmx.de> Tested-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [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>
* [autoboot] Cope properly with empty DHCP filenamesMichael Brown2011-02-011-3/+3
| | | | | | | This (hopefully) fixes a regression introduced in commit e088892 ("[autoboot] Connect SAN disk during a filename boot, if applicable"). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [uri] Add uri_has_path()Michael Brown2011-02-011-0/+10
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [autoboot] Avoid using uri_dup() for constructed TFTP URIMichael Brown2011-02-011-6/+6
| | | | | | | uri_dup() chokes on duplicating a URI with a path that does not begin with a slash. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [autoboot] Allow setting expansions in filename and root-pathMichael Brown2011-01-281-10/+32
| | | | | | | | | | Allow the DHCP filename and root-path to contain settings expansions, such as http://boot.ipxe.org/demo/boot.php?mac=${mac:hexhyp} Originally-implemented-by: Jarrod Johnson <jarrod.b.johnson@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Generalise expand_command() to expand_settings()Michael Brown2011-01-283-75/+83
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [autoboot] Connect SAN disk during a filename boot, if applicableMichael Brown2011-01-277-159/+257
| | | | | | | | | | | | | | | | | | | For performing installations direct to a SAN target, it can be very useful to hook a SAN disk and then proceed to perform a filename boot. For example, the user may wish to hook the (empty) SAN installation disk and then boot into the OS installer via TFTP. This provides an alternative mechanism to using "keep-san" and relying on the BIOS to fall through to boot from the installation media, which is unreliable on many BIOSes. When a root-path is specified in addition to a boot filename, attempt to hook the root-path as a SAN disk before booting from the specified filename. Since the root-path may be used for non-SAN purposes (e.g. an NFS root mount point), ignore the root-path if it contains a URI scheme that we do not support. Originally-implemented-by: Jarrod Johnson <jarrod.b.johnson@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [init] Remove concept of "shutdown exit flags"Michael Brown2011-01-2717-37/+64
| | | | | | | | 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>
* [xfer] Expose xfer_uri_opener()Michael Brown2011-01-272-14/+40
| | | | 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>
* [liba20] Rename libflat to liba20Michael Brown2011-01-271-0/+0
| | | | | | | libflat no longer has anything to do with flat real mode; it handles only the A20 gate. Update library name to match. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [libflat] Remove now-obsolete flatten_real_mode callMichael Brown2011-01-272-122/+5Star
| | | | | | | | Flat real mode will have been set up as a side-effect of the protected-mode call invoked during install_block() for .text16.early; there is no need to do so explicitly. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [prefix] Use 16-bit protected mode for access to high memoryMichael Brown2011-01-272-42/+195
| | | | | | | | | | | | Flat real mode works perfectly on real hardware, but seems to cause problems for some hypervisors. Revert to using 16-bit protected mode (and returning to real mode with 4GB limits, so as not to break PMM BIOSes). Allow the code specific to the .mrom format to continue to assume that flat real mode works, since this format is specific to real hardware. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Indicate that device does not support interruptsMichael Brown2011-01-251-12/+0Star
| | | | 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>
* [pxe] Report SUPPORTED_IRQ only if device supports interruptsMichael Brown2011-01-251-1/+3
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [netdevice] Allow devices to indicate that interrupts are not supportedMichael Brown2011-01-252-0/+18
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pci] Auto-resize VPD fields used for non-volatile storageMichael Brown2011-01-193-40/+151
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pci] Add ability to resize a VPD fieldMichael Brown2011-01-192-0/+166
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pci] Allow pci_vpd_init() return status to be ignoredMichael Brown2011-01-192-0/+19
| | | | | | | | Most xxx_init() functions are void functions with no failure cases. Allow pci_vpd_init() to be used in the same way. (Subsequent calls to pci_vpd_read() etc. will fail if pci_vpd_init() fails.) Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [nvo] Allow resizing of non-volatile stored option blocksMichael Brown2011-01-198-54/+120
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [nvo] Remove the non-volatile options fragment listMichael Brown2011-01-116-111/+50Star
| | | | | | | | | 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>
* [nvs] Allow for non-volatile storage devices without block boundariesMichael Brown2011-01-112-17/+32
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [dhcp] Allow use of custom reallocation functions for DHCP option blocksMichael Brown2011-01-114-62/+74
| | | | | | | | Allow functions other than realloc() to be used to reallocate DHCP option block data, and specify the reallocation function at the time of calling dhcpopt_init(). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [dhcp] Rename length fields for DHCP optionsMichael Brown2011-01-104-24/+25
| | | | | | Rename "len" to "used_len" and "max_len" to "alloc_len". Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [dhcp] Remove redundant length fields in struct dhcp_packetMichael Brown2011-01-103-16/+12Star
| | | | | | | | The max_len field is never used, and the len field is used only by dhcp_tx(). Remove these two fields, and perform the necessary trivial calculation in dhcp_tx() instead. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [hermon] Fix incorrectly-padded sense_port structureMichael Brown2010-12-241-1/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [igbvf] Add igbvf driverAlex Williamson2010-12-1611-0/+4477
| | | | | | | | | | | | 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>
* [dhcp] Use Ethernet-compatible chaddr, if possibleMichael Brown2010-12-153-30/+38
| | | | | | | | | | | | | | | For IPoIB, we currently use the hardware address (i.e. the eight-byte GUID) as the DHCP chaddr. This works, but some PXE servers (notably Altiris RDP) refuse to respond if the chaddr field is anything other than six bytes in length. We already have the notion of an Ethernet-compatible link-layer address, which is used in the iBFT (the design of which similarly fails to account for non-Ethernet link layers). Use this as the first preferred alternative to the actual link-layer address when constructing the DHCP chaddr field. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pxe] Improve pxe_udp debug messagesMichael Brown2010-12-151-9/+14
| | | | | | | | | | The PXE debugging messages have remained pretty much unaltered since Etherboot 5.4, and are now difficult to read in comparison to most of the rest of iPXE. Bring the pxe_udp debug messages up to normal iPXE standards. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [iscsi] Include both DNS addresses in iBFT, if availableMichael Brown2010-12-091-9/+17
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Add fetch_ipv4_array_setting()Michael Brown2010-12-092-5/+25
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [debug] Add DBG_MD5() and related macrosMichael Brown2010-12-092-0/+108
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [legal] Add missing copyright header and FILE_LICENCE macroMichael Brown2010-12-091-0/+20
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [fnrec] Enhance function recordingMichael Brown2010-12-094-71/+265
| | | | | | | | | | | | | | | | | | | | | | | | | Enhance the information collected by the function recorder to include the call site and entry/exit counts. This allows fnrec.pl to produce a call tree such as: step (from core/getkey.c:46 = 0x17e90) { ref_increment (from core/process.c:93 = 0x73ec) { } net_step (from core/process.c:96 = 0x73f1) { net_poll (from net/netdevice.c:741 = 0xbce6) { netdev_poll (from net/netdevice.c:700 = 0xbc58) { } netdev_rx_dequeue (from net/netdevice.c:709 = 0xbc65) { } } } ref_decrement (from core/process.c:96 = 0x73f9) { } } Note that inlined functions are reported, confusingly, as extra calls to the *containing* function. Minimise this confusion by adding the attribute "no_instrument_function" to all functions declared as inline. (Static functions that have been inlined autonomously by gcc will still be problematic, but these are far fewer in number.) Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pxe] Set correct PktType in PXENV_UNDI_ISRMichael Brown2010-12-091-1/+9
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [pxe] Avoid touching fields that may not exist in PXENV_UNDI_GET_NIC_TYPEMichael Brown2010-12-091-5/+5
| | | | | | | | | | | Earlier versions of the PXE specification do not have the SubVendor_ID and SubDevice_ID fields, and some NBPs may not provide space for them. Avoid overwriting the contents of these fields, just in case. This is similar to the problem with the BufferLimit field in PXENV_GET_CACHED_INFO. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [cmdline] Add "reboot" commandMichael Brown2010-12-093-0/+70
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>