summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* [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.
* [Hermon] Donate joint copyright on Hermon driver to Mellanox.Michael Brown2008-02-231-4/+2Star
|
* [Hermon] Add driver for Mellanox Hermon (ConnectX) cards.Michael Brown2008-02-234-0/+5941
|
* [Infiniband] Fix typo in debug statementMichael Brown2008-02-231-1/+1
|
* [Infiniband] Add missing list_del()s in ib_create_qp() failure path.Michael Brown2008-02-231-0/+2
|
* Add DBGLVL_IO to trace all memory-mapped I/O.Michael Brown2008-02-212-7/+51
|
* Remove reference to COFF support. I can find no trace of ever having ↵Michael Brown2008-02-212-4/+0Star
| | | | supported it.
* Make tarball generation quieterv0.9.3Marty Connor2008-02-141-1/+1
| | | | | Deleting bin/deps after "make veryclean" keeps deps from being regenerated in the tarball.
* Updated $(VERSION) for release. Change tarball generation.Marty Connor2008-02-141-14/+19
| | | | | Added 'install' and 'configure' targets for those who are used to other build setups.
* Added mtnic driver provided by Mellanox.Michael Brown2008-02-132-0/+2474
| | | | Stripped out trailing whitespace to keep git happy.
* Guard against corruption of top half of %esp during UNDI ISRMichael Brown2008-02-131-0/+3
|
* If no shell was requested via Ctrl-B, exit immediately if boot fails.Michael Brown2008-02-111-6/+3Star
|
* Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxeMichael Brown2008-02-111-0/+2
|\
| * undiisr.S: save/restore upper half of %eflagsH. Peter Anvin2008-02-111-0/+2
| | | | | | | | | | | | Since we don't know what the UNDI code does, it is safest to save/restore %eflags even though the lower half of %eflags is automatically saved by the interrupt itself.
| * UNDI ISR: save and restore 32-bit registersH. Peter Anvin2008-02-111-4/+7
| | | | | | | | | | | | | | | | | | | | | | As written, if the if the UNDI ISR call clobbers the upper halves of any of the GPRs (which by convention it is permitted to do, and by paranoia should be expected to do) then nothing in the interrupt handler will recover the state. Additionally, save/restore %fs and %gs out of sheer paranoia - it's a cheap enough operation, and may prevent problems due to poorly written UNDI stacks.
* | UNDI ISR: save and restore 32-bit registersH. Peter Anvin2008-02-111-4/+7
| | | | | | | | | | | | | | | | | | | | | | As written, if the if the UNDI ISR call clobbers the upper halves of any of the GPRs (which by convention it is permitted to do, and by paranoia should be expected to do) then nothing in the interrupt handler will recover the state. Additionally, save/restore %fs and %gs out of sheer paranoia - it's a cheap enough operation, and may prevent problems due to poorly written UNDI stacks.
* | Use internal 16-bit stack for added safety.Michael Brown2008-02-111-0/+4
|/
* Fixes for EqualLogic iSCSI targets:Michael Brown2008-02-071-7/+19
| | | | | | | Allow port numbers in iSCSI redirection. Wait for SCSI status, not just the final data-in (which may be followed by an explicit SCSI Response PDU if the S bit is not set).
* Start restructuring pxe_tftp.c to cope with multicast (MTFTP) receives.Michael Brown2008-02-021-147/+231
|
* Merge commit 'laptop/master'Michael Brown2008-01-222-112/+297
|\
| * Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxeMichael Brown2008-01-2224-226/+254
| |\
| * | Add preliminary support for MTFTP.Michael Brown2007-12-262-112/+297
| | |
* | | Add pxe_set_cached_filename() so that pxe_tftp.c can also update theMichael Brown2008-01-222-12/+22
| | | | | | | | | | | | stored DHCP packets.
* | | Use XFER_INIT() macro.Michael Brown2008-01-221-7/+1Star
| | |