summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [IPv4] Use default netmasks when no subnet mask is specified.Michael Brown2008-03-232-8/+27
|
* [IPv4] Tidy up some header files.Michael Brown2008-03-236-63/+25Star
|
* [DHCP] Fix up fake-packet creation as used by PXENV_GET_CACHED_INFOMichael Brown2008-03-235-79/+148
| | | | | | | | | | | Add dedicated functions create_dhcpdiscover(), create_dhcpack() and create_proxydhcpack() for use by external code such as the PXE preboot code. Register ProxyDHCP options under the global scope "proxydhcp". Unregister previously-acquired DHCP and ProxyDHCP settings when DHCP succeeds.
* [DHCP] FIXME: quick temporary settings fix, needs update for new APIMarty Connor2008-03-221-0/+4
|
* Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxeMichael Brown2008-03-223-0/+56
|\
| * ]Drivers] Update licensing for cs89x0.[ch] and cs89x0.txtMarty Connor2008-03-193-0/+56
| | | | | | | | | | Russ Nelson sent an email requesting the license change to GPL Version 2.
* | [Settings] Bugfix: store_setting() now applies changes even on root blockMichael Brown2008-03-221-3/+2Star
| |
* | [Settings] Implement simple_settings backed with extensible DHCP optionsMichael Brown2008-03-224-26/+72
| |
* | [Settings] DHCP is now working using the new settings API.Michael Brown2008-03-214-18/+29
| |
* | [Settings] Migrate DHCP and NVO code to the new settings API (untested)Michael Brown2008-03-2116-936/+966
| |
* | [DHCP] Kill off some no-longer-used DHCP functionsMichael Brown2008-03-212-128/+0Star
| |
* | [Settings] Use a settings applicator in ibft.cMichael Brown2008-03-211-31/+46
| |
* | [Settings] Use a settings applicator to set the default TFTP URI.Michael Brown2008-03-213-38/+43
| |
* | [Misc] Kill off long-redundant tests/dhcptest.cMichael Brown2008-03-211-270/+0Star
| |
* | [IPv4] Add a config option for IPv4Michael Brown2008-03-212-11/+22
| | | | | | | | | | IPv4 may not always be dragged into the link, so add a specific configuration option for it.
* | [Settings] Use a settings applicator to configure IPv4 routes.Michael Brown2008-03-217-88/+53Star
| |
* | [Settings] Convert code in src/usr to use settings API.Michael Brown2008-03-215-10/+41
| |
* | [Settings] Introduce settings applicators.Michael Brown2008-03-216-138/+222
| | | | | | | | | | | | | | Convert DHCP option applicators in dns.c and iscsi.c to settings applicators. Kill off DHCP option applicators.
* | [Settings] Add per-netdevice settings blockMichael Brown2008-03-206-1/+126
| | | | | | | | | | | | | | | | | | Add a configuration settings block for each net device. This will provide the parent scope for settings applicable only to that network device (e.g. non-volatile options stored on the NIC, options obtained via DHCP, etc.). Expose the MAC address as a setting.
* | [Settings] Add settings hierarchyMichael Brown2008-03-205-210/+321
| | | | | | | | | | | | | | | | Add the notion of the settings hierarchy, complete with register/unregister routines. Rename set->store and get->fetch to avoid naming conflicts with get/put as used in reference counting.
* | [Settings] Start revamping the configuration settings API.Michael Brown2008-03-206-481/+787
|/ | | | | | | | | | | | | | | | Add the concept of an abstract configuration setting, comprising a (DHCP) tag value and an associated byte sequence. Add the concept of a settings namespace. Add functions for extracting string, IPv4 address, and signed and unsigned integer values from configuration settings (analogous to dhcp_snprintf(), dhcp_ipv4_option(), etc.). Update functions for parsing and formatting named/typed options to work with new settings API. Update NVO commands and config UI to use new settings API.
* [Settings] Allow named settings to have their type specified explicitlyMichael Brown2008-03-181-45/+48
| | | | Allow setting names such as "ip:hex".
* [Timers] Initialise timers on first useMichael Brown2008-03-182-27/+26Star
| | | | | | | Timers are sometimes required before the call to initialise(), so we cannot rely on initialise() to set up the timers before use. Also fix a potential integer overflow issue in generic_currticks_udelay()
* [Timers] Miscellaneous timer system fixesMichael Brown2008-03-184-44/+60
| | | | | | | | | Add missing comments to timer code. Lock system if no suitable timer source is found. Fix initialisation order so that timers are initialised before code that needs to use them.
* [Settings] Allow encapsulated options to be specified as named settingsMichael Brown2008-03-181-4/+10
| | | | | | Allow encapsulated options to be specified as e.g. "175.3". As a side-effect, change the separator character for the type field from "." to ":"; for example, the IP address pseudo-option is now "175.3:ipv4".
* [Settings] Add int16, int32 and hex-string configuration setting typesMichael Brown2008-03-181-5/+131
| | | | | | | | | | Add parse and display routines for 16-bit and 32-bit integer configuration settings. Add parse and display routines for hex-string configuration settings. Assume hex-string as a configuration setting type if no type is explicitly specified.
* [libc] Fix a validation bug in strtoul()Michael Brown2008-03-181-1/+1
| | | | | strtoul() was accepting the characters immediately above ASCII 0..9 as valid hex digits, due to a missing comparison.
* [Settings] show_setting() functions return snprintf()-style length.Michael Brown2008-03-184-14/+11Star
| | | | | | show_setting() and related functions now return an "actual length" in the style of snprintf(). This is to allow consumers to allocate buffers large enough to hold the formatted setting.
* Merge branch 'pxerom-pmm'Michael Brown2008-03-114-305/+482
|\
| * [PXE] PMM now tested and workingMichael Brown2008-03-111-1/+1
| | | | | | | | Minor bugfix: 4 x 2 = 8, not 16
| * [prefix] Cope with image source addresses outside base memoryMichael Brown2008-03-111-121/+114Star
| | | | | | | | | | | | When PMM is used, the gPXE image source will no longer be in base memory. Decompression of .text16 and .data16 can therefore no longer be done in real mode.
| * [PXE] Improve PnP/BBS detectionMichael Brown2008-03-111-19/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | Use BBS installation check to see if we need to hook INT19 even on a PnP BIOS. Verify that $PnP signature is paragraph-aligned; bochs/qemu BIOS provides a dummy $PnP signature with no valid entry point, and deliberately unaligns the signature to indicate that it is not properly valid. Print message if INT19 is hooked. Attempt to use PMM even if BBS check failed.
| * [prefix] Add printing functions to libprefix.SMichael Brown2008-03-113-128/+112Star
| | | | | | | | | | Move the printing functions from pxeprefix.S into libprefix.S, so they are available for debug from any prefix.
| * [PXE] Add PMM support to romprefix.S (untested)Michael Brown2008-03-093-73/+243
| | | | | | | | | | | | | | | | | | | | ROM initialisation vector now attempts to allocate a 2MB block using PMM. If successful, it copies the ROM image to this block, then shrinks the ROM image to allow for more option ROMs. If unsuccessful, it leaves the ROM as-is. ROM BEV now attempts to return to the BIOS, resorting to INT 18 only if the BIOS stack has been corrupted.
* | Merge branch 'xl0-timer'Michael Brown2008-03-1070-398/+412
|\ \
| * | Use plain C in timer_rdtsc for division instead of inline asssembly.Alexey Zaytsev2008-03-061-43/+21Star
| | | | | | | | | | | | | | | | | | This also fixes a bug in rdtsc_currticks when the result did not fix in %eax Signed-off-by: Alexey Zaytsev <zaytsev.a@protei.ru>
| * | [Timers] Move TIMER_BIOS and TIMER_RDTSC to their own config.h section.Michael Brown2008-03-021-3/+10
| | |
| * | [Timers] Do not enable serial console by default; this change should notMichael Brown2008-03-021-1/+1
| | | | | | | | | | | | be propagated to master.
| * | fix the rdtsc namimgAlexey Zaytsev2008-03-024-11/+11
| | |
| * | CleanupsAlexey Zaytsev2008-03-023-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | Replace a printf with a DBG in timer_rtdsc.c Replace a printf in timer.c with assert Return proper error codes from timer drivers Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
| * | Modify gPXE core and drivers to work with the new timer subsystemAlexey Zaytsev2008-03-0258-121/+62Star
| | | | | | | | | | | | Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
| * | Introduce the new timer subsystem.Alexey Zaytsev2008-03-0213-296/+384
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Timer subsystem initialization code in core/timer.c Split the BIOS and RTDSC timer drivers from i386_timer.c Split arch/i386/firmware/pcbios/bios.c into the RTSDC timer driver and arch/i386/core/nap.c Split the headers properly: include/unistd.h - delay functions to be used by the gPXE core and drivers. include/gpxe/timer.h - the fimer subsystem interface to be used by the timer drivers and currticks() to be used by the code gPXE subsystems. include/latch.h - removed include/timer.h - scheduled for removal. Some driver are using currticks, which is only for core subsystems. Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
* | | [PXE] Work around a buffer-size bug in WinPEMichael Brown2008-03-101-2/+12
| |/ |/| | | | | | | | | | | | | | | | | | | WinPE's pxeboot.n12 takes the BufferLimit returned by gPXE (indicating the size of gPXE's internal DHCP packet buffers) and erroneously passes it in as BufferSize (indicating the size of pxeboot.n12's DHCP packet buffer). If these don't match, then pxeboot.n12 ends up instructing gPXE to overwrite parts of its data segment. Change gPXE's internal DHCP packet buffers to be exactly sizeof(BOOTPLAYER_t) bytes to work around this problem.
* | [Makefile] Use bin/VVVVDDDD.rom instead of bin/pci_VVVV_DDDD.romMichael Brown2008-03-061-1/+1
| | | | | | | | | | | | | | | | The generate-by-PCI-device-ID rules (bin/pci_VVVV_DDDD.rom) are generally used for building actual ROM images to be burned, and the burning utilities generally run under some DOS variant. Change the filename from pci_VVVV_DDDD.rom to VVVVDDDD.rom so that it is compatible with the DOS 8.3-character filename limit.
* | [tg3] Added device ID for rebranded HP card.Michael Brown2008-03-061-0/+1
| |
* | [PXEXT] Add PXENV_FILE_EXEC call to PXE extensions API.Michael Brown2008-03-044-1/+67
| | | | | | | | | | | | | | | | This allows pxelinux to execute arbitrary gPXE commands. This is remarkably unsafe (not least because some of the commands will assume full ownership of memory and do nasty things like edit the e820 map underneath the calling pxelinux), but it does allow access to the "sanboot" command.
* | [Command] Add "sanboot" command.Michael Brown2008-03-045-1/+74
|/
* [DHCP] Fix RFC4390 client identifier constructions.Michael Brown2008-02-271-1/+1
| | | | | | RFC 4390 provides for the DHCP client identifier to contain the link-layer hardware type and MAC address when the MAC address exceeds 16 bytes. However, the hardware type field is only 8 bits; we were assuming 16 bits.
* [Infiniband] Add preliminary support for multi-port devices.Michael Brown2008-02-277-119/+284
| | | | | | | | | | Arbel and Hermon cards both have multiple ports. Add the infrastructure required to register each port as a separate IB device. Don't yet register more than one port, since registration will currently fail unless a valid link is detected. Use ib_*_{set,get}_{drv,owner}data wrappers to access driver- and owner-private data on Infiniband structures.
* [Infiniband] Centralise MAD operationsMichael Brown2008-02-264-550/+499Star
| | | | | | | | | Pull out common code for handling management datagrams from arbel.c and hermon.c into infiniband.c. Add port number to struct ib_device. Add open(), close() and mad() methods to struct ib_device_operations.