Michael Brown [Sat, 23 Feb 2008 10:36:52 +0000 (10:36 +0000)]
[Infiniband] Fix typo in debug statement
Michael Brown [Sat, 23 Feb 2008 04:03:31 +0000 (04:03 +0000)]
[Infiniband] Add missing list_del()s in ib_create_qp() failure path.
Michael Brown [Thu, 21 Feb 2008 12:39:00 +0000 (12:39 +0000)]
Add DBGLVL_IO to trace all memory-mapped I/O.
Michael Brown [Thu, 21 Feb 2008 04:11:56 +0000 (04:11 +0000)]
Remove reference to COFF support. I can find no trace of ever having supported it.
Marty Connor [Thu, 14 Feb 2008 22:40:45 +0000 (17:40 -0500)]
Make tarball generation quieter
Deleting bin/deps after "make veryclean" keeps deps from being
regenerated in the tarball.
Marty Connor [Thu, 14 Feb 2008 22:26:47 +0000 (17:26 -0500)]
Updated $(VERSION) for release. Change tarball generation.
Added 'install' and 'configure' targets for those who are used
to other build setups.
Marty Connor [Thu, 14 Feb 2008 21:42:38 +0000 (16:42 -0500)]
Remove obsolete files (INSTALL, RELNOTES)
Copyrights was renamed to COPYRIGHTS to match case with other top-level files
Marty Connor [Thu, 14 Feb 2008 21:34:49 +0000 (16:34 -0500)]
Update VERSION for 0.9.3
Marty Connor [Thu, 14 Feb 2008 21:33:43 +0000 (16:33 -0500)]
Update LOG for 0.9.3 release
Marty Connor [Thu, 14 Feb 2008 21:21:51 +0000 (16:21 -0500)]
Rename Copyrights to COPYRIGHTS for consistency with other filenames
Marty Connor [Thu, 14 Feb 2008 21:17:30 +0000 (16:17 -0500)]
Add README file which replaces INSTALL and gives pointers to more information.
Michael Brown [Wed, 13 Feb 2008 15:01:18 +0000 (15:01 +0000)]
Added mtnic driver provided by Mellanox.
Stripped out trailing whitespace to keep git happy.
Michael Brown [Wed, 13 Feb 2008 14:58:20 +0000 (14:58 +0000)]
Guard against corruption of top half of %esp during UNDI ISR
Michael Brown [Mon, 11 Feb 2008 17:51:44 +0000 (17:51 +0000)]
If no shell was requested via Ctrl-B, exit immediately if boot fails.
Michael Brown [Mon, 11 Feb 2008 16:33:37 +0000 (16:33 +0000)]
Merge branch 'master' of rom.etherboot.org:/gpxe
H. Peter Anvin [Sat, 9 Feb 2008 00:19:02 +0000 (16:19 -0800)]
UNDI ISR: save and restore 32-bit registers
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.
Michael Brown [Mon, 11 Feb 2008 15:06:26 +0000 (15:06 +0000)]
Use internal 16-bit stack for added safety.
H. Peter Anvin [Mon, 11 Feb 2008 02:13:06 +0000 (18:13 -0800)]
undiisr.S: save/restore upper half of %eflags
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.
H. Peter Anvin [Sat, 9 Feb 2008 00:19:02 +0000 (16:19 -0800)]
UNDI ISR: save and restore 32-bit registers
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.
Michael Brown [Thu, 7 Feb 2008 22:46:26 +0000 (22:46 +0000)]
Fixes for EqualLogic iSCSI targets:
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).
Michael Brown [Sat, 2 Feb 2008 15:59:32 +0000 (15:59 +0000)]
Start restructuring pxe_tftp.c to cope with multicast (MTFTP) receives.
Michael Brown [Tue, 22 Jan 2008 18:57:01 +0000 (18:57 +0000)]
Merge commit 'laptop/master'
Michael Brown [Tue, 22 Jan 2008 18:53:01 +0000 (18:53 +0000)]
Merge branch 'master' of rom.etherboot.org:/gpxe
Michael Brown [Tue, 22 Jan 2008 18:51:12 +0000 (18:51 +0000)]
Add pxe_set_cached_filename() so that pxe_tftp.c can also update the
stored DHCP packets.
Michael Brown [Tue, 22 Jan 2008 18:50:24 +0000 (18:50 +0000)]
Use XFER_INIT() macro.
Michael Brown [Tue, 22 Jan 2008 18:48:47 +0000 (18:48 +0000)]
Add XFER_INIT() macro.
Michael Brown [Tue, 8 Jan 2008 16:46:55 +0000 (16:46 +0000)]
Make seek information part of the xfer metadata, rather than an entirely
separate xfer method.
Add missing .alloc_iob entries to several xfer_interface_operations
structures.
Michael Brown [Tue, 8 Jan 2008 15:51:36 +0000 (15:51 +0000)]
Added the embedded pxelinux payload patch from hpa.
Michael Brown [Mon, 7 Jan 2008 13:50:32 +0000 (13:50 +0000)]
When the DHCP file/sname fields are empty, don't allow them to override
their equivalent DHCP-option-specified values.
Michael Brown [Mon, 7 Jan 2008 13:15:12 +0000 (13:15 +0000)]
Use .SECONDARY instead of .PRECIOUS for bin/%.tmp targets.
Michael Brown [Mon, 7 Jan 2008 13:12:43 +0000 (13:12 +0000)]
Fix off-by-one error (discovered by Shao Miller).
Marty Connor [Wed, 2 Jan 2008 17:50:30 +0000 (12:50 -0500)]
Unconditionally set utility program variables in Makefile to allow CROSS_COMPILE to work.
stappers and xl0 pointed out that gnu make sets some variables, so ?=
is ineffective in some cases where we use it.. Cross-compilation
requires that some variables can be overridden in the
src/$(ARCH)/Config file, so include that file _after_ utility program
variables are set.
Marty Connor [Fri, 28 Dec 2007 19:33:11 +0000 (14:33 -0500)]
Retain some intermediate object files, suggested by Geert Stappers and Alexey Zaytsev.
src/bin/%.tmp files can be useful for debugging, so let's keep them.
Michael Brown [Wed, 26 Dec 2007 18:51:20 +0000 (18:51 +0000)]
Add preliminary support for MTFTP.
Marty Connor [Thu, 20 Dec 2007 16:53:00 +0000 (11:53 -0500)]
3c90x driver fix (legacy) from Geert Staapers
From: Geert Stappers <stappers@stappers.nl>
To: etherboot-developers@lists.sourceforge.net
Subject: [Etherboot-developers] 3c90x polling again [patch]
Date: Thu, 29 Nov 2007 09:22:36 +0100
User-Agent: Mutt/1.5.16 (2007-06-11)
Hello,
gPXE didn't work on 3COM 905C Tornado cards for me.
It did transmit the DHCP request, but it didn't see the DHCP offer.
Adding debug print statements allready solved the problem.
Attached is a patch that has a cleaner delay then print statements.
The core of it is
- for(i=0;i<40000;i++);
+ mdelay(1);
There was no research if the change is about a longer delay
or about code NOT being optimized away. It works for me :-)
Cheers
Geert Stappers
Marty Connor [Mon, 17 Dec 2007 18:07:29 +0000 (13:07 -0500)]
Fix e1000 receive tail pointer (RDT) handling
e1000 should now work in VMware.
Michael Brown [Sat, 15 Dec 2007 19:40:55 +0000 (19:40 +0000)]
Kill off the now-obsolete *_fill_nic() functions.
Michael Brown [Sat, 15 Dec 2007 19:37:44 +0000 (19:37 +0000)]
Merge branch 'master' of rom.etherboot.org:/gpxe
Michael Brown [Sat, 15 Dec 2007 19:37:21 +0000 (19:37 +0000)]
Autodetect whether or not we need to be using -fno-stack-protector.
Michael Brown [Sat, 15 Dec 2007 19:32:32 +0000 (19:32 +0000)]
Overwrite the device descriptor's IRQ number with whatever the legacy
driver's probe() routine fills in in nic->irqno. This is so that
non-interrupt-capable legacy drivers which set nic->irqno=0 will end
up reporting IRQ#0 via PXENV_UNDI_GET_INFORMATION; this in turn means
that the calling PXE NBP will (should) hook the timer interrupt, and
everything will sort of work.
Marty Connor [Thu, 13 Dec 2007 16:20:45 +0000 (11:20 -0500)]
Correct e1000 interrupt routine to enable on 1 disable on 0. duh.
The e1000_irq() routine should (per mcb30) do enable on non-zero,
disable on zero. This is not consistent in all drivers, so I'll
wait to update it when doing a global sweep.
Marty Connor [Thu, 13 Dec 2007 16:08:40 +0000 (11:08 -0500)]
Remove *_fill_nic() calls, and directly set nic->ioaddr and nic->irqno .
This needs to be done manually because if the irq() routine is
implemented then we want something like "nic->irqno = pci->irqno;",
else we do "nic->irqno = 0;" nic->ioaddr may also need to be set
carefully.
Also added local variables to end of many files, for emacs indentation
to match kernel style (tab does 8 space indent).
Michael Brown [Wed, 12 Dec 2007 14:32:02 +0000 (14:32 +0000)]
Remove the obsolete pre-aBFT AoE boot table.
Michael Brown [Fri, 7 Dec 2007 20:25:02 +0000 (14:25 -0600)]
Yet another attempt to autodetect an appropriate "echo -e".
Michael Brown [Sat, 8 Dec 2007 00:51:24 +0000 (00:51 +0000)]
Ignore .echocheck internal housekeeping file.
Michael Brown [Sat, 8 Dec 2007 00:50:57 +0000 (00:50 +0000)]
Another (hopefully more robust) attempt to find a usable substitute
for "echo -e" on the host system.
Michael Brown [Fri, 7 Dec 2007 07:34:11 +0000 (01:34 -0600)]
Remove the (unused) option to override _prefix_link_addr,
_textdata_link_addr, _load_addr and _max_align in the linker scripts.
A bug in some versions of ld causes segfaults if the DEFINED() macro
is used in a linker script *and* the -Map option to ld is present.
We don't currently need to override any of these values; if we need to
do so in future then the solution will probably be to always specify
the values on the ld command line, and have the linker script not
define them at all.
Michael Brown [Fri, 7 Dec 2007 04:14:06 +0000 (04:14 +0000)]
Avoid Makefile syntax that requires make >= 3.81.
Michael Brown [Fri, 7 Dec 2007 03:35:32 +0000 (03:35 +0000)]
Try to fix echo-detection to work on all systems that provide any
suitable "echo -e" substitute.
Michael Brown [Thu, 6 Dec 2007 20:16:46 +0000 (14:16 -0600)]
Fix compiler warnings that appear only on OpenBSD.
Michael Brown [Fri, 7 Dec 2007 01:51:08 +0000 (01:51 +0000)]
Kill off some warnings-problematic debug statements in ndp.c; the code
is non-functional anyway.
Michael Brown [Fri, 7 Dec 2007 01:06:37 +0000 (01:06 +0000)]
Don't complain when callers provide too-short buffers for
PXENV_GET_CACHED_INFO. NTLDR does this.
Michael Brown [Fri, 7 Dec 2007 00:52:48 +0000 (00:52 +0000)]
Fix a minor logical error in posix_io.c
Michael Brown [Fri, 7 Dec 2007 00:11:43 +0000 (00:11 +0000)]
Various warnings fixups for OpenBSD with gcc-3.3.5.
Michael Brown [Thu, 6 Dec 2007 23:35:37 +0000 (23:35 +0000)]
Fix prototype mismatch.
Michael Brown [Thu, 6 Dec 2007 21:38:23 +0000 (21:38 +0000)]
Add missing format qualifier
Marty Connor [Mon, 3 Dec 2007 06:17:14 +0000 (01:17 -0500)]
Add copyright, clean up comments a bit, remove unnecessary code.
Cleanups for e1000.c.
Michael Brown [Thu, 29 Nov 2007 19:10:10 +0000 (19:10 +0000)]
Reallocate memory for bitmaps only when necessary.
Michael Brown [Wed, 28 Nov 2007 11:56:14 +0000 (11:56 +0000)]
udp_open_promisc() calls udp_open_common() with peer==NULL.
Michael Brown [Wed, 28 Nov 2007 10:57:26 +0000 (10:57 +0000)]
Add RFC2090 TFTP multicast support.
Michael Brown [Sun, 25 Nov 2007 16:06:29 +0000 (16:06 +0000)]
Quick hack to be able to accept transfers from servers that don't
supply options.
Marty Connor [Sat, 24 Nov 2007 02:54:26 +0000 (21:54 -0500)]
Merge branch 'mdc-working' of ssh://git.etherboot.org//people/mdc/gpxe
Michael Brown [Thu, 22 Nov 2007 04:43:11 +0000 (04:43 +0000)]
Provide individually cached constructed copies of DHCP packets via
PXENV_GET_CACHED_INFO. If we dont do this, Altiris' NBP screws up; it
relies on being able to grab pointers to each of the three packets and
then read them at will later.
Michael Brown [Thu, 22 Nov 2007 00:31:21 +0000 (00:31 +0000)]
Do not fill in the BufferLimit field in struct
s_PXENV_GET_CACHED_INFO, because this field doesn't exist in earlier
versions of the PXE spec, and some callers don't allocate space for it.
Michael Brown [Wed, 21 Nov 2007 22:10:04 +0000 (22:10 +0000)]
Allow DHCP server to instruct gPXE to ignore ProxyDHCP (which will
also avoid waiting for ProxyDHCP offers).
Also reduce the ProxyDHCP timeout, because it's already irritating me.
Michael Brown [Wed, 21 Nov 2007 21:51:43 +0000 (21:51 +0000)]
Add ProxyDHCP support.
Marty Connor [Wed, 21 Nov 2007 15:33:51 +0000 (10:33 -0500)]
Added netdev_nullify to natsemi_remove()
Michael Brown [Wed, 21 Nov 2007 15:37:58 +0000 (15:37 +0000)]
Removed old e1000 driver.
Michael Brown [Wed, 21 Nov 2007 15:35:08 +0000 (15:35 +0000)]
Merge commit 'origin/mdc-working'
Marty Connor [Wed, 21 Nov 2007 15:33:51 +0000 (10:33 -0500)]
Added netdev_nullify to natsemi_remove()
Michael Brown [Wed, 21 Nov 2007 04:48:18 +0000 (04:48 +0000)]
Remove some assumptions about DHCP obtaining only a single options block.
Michael Brown [Wed, 21 Nov 2007 03:57:30 +0000 (03:57 +0000)]
Add PXE-required DHCP options to DHCPDISCOVER and DHCPREQUEST packets.
Michael Brown [Wed, 21 Nov 2007 03:29:53 +0000 (03:29 +0000)]
Add UUID to DHCP request as option 97 (if available).
Marty Connor [Wed, 21 Nov 2007 02:33:42 +0000 (21:33 -0500)]
Fixed receive instability by not enabling interrupts. duh.
I have successfully booted DOS via iSCSI and PXELINUX via TFTP with this
version of the e1000 driver.
Michael Brown [Wed, 21 Nov 2007 02:27:07 +0000 (02:27 +0000)]
Added definition of a UUID and uuid_ntoa() (for debugging), and
implemented smbios_get_uuid().
Michael Brown [Wed, 21 Nov 2007 01:58:27 +0000 (01:58 +0000)]
Update SMBIOS internal API to be easier to use, and not to require
potentially exorbitant amounts of stack space.
Marty Connor [Tue, 20 Nov 2007 21:23:12 +0000 (16:23 -0500)]
This version now transmits and receives.
There may still be an issue with memory handling, since it seems to
die ungracefully when ARP packets come in after loading a kernel.
Something to debug.
Marty Connor [Tue, 20 Nov 2007 17:06:22 +0000 (12:06 -0500)]
Autonegotiation fixes. NIC now autonegotiates to whatever the switch supports.
Marty Connor [Tue, 20 Nov 2007 15:23:32 +0000 (10:23 -0500)]
A version of the new e1000 driver that transmits.
autonegotiation still needs work. receive is not working yet.
Michael Brown [Tue, 20 Nov 2007 02:00:54 +0000 (02:00 +0000)]
Replace "Etherboot" strings with "gPXE".
Michael Brown [Mon, 19 Nov 2007 20:14:49 +0000 (20:14 +0000)]
Merge branch 'master' of rom.etherboot.org:/gpxe
Michael Brown [Mon, 19 Nov 2007 20:14:20 +0000 (20:14 +0000)]
Add bin/pci_VVVV_DDDD target to allow building ROM images without
needing to know the gPXE internal ROM name.
Marty Connor [Sun, 18 Nov 2007 16:12:54 +0000 (11:12 -0500)]
Fix typo.
Marty Connor [Sun, 18 Nov 2007 15:57:20 +0000 (10:57 -0500)]
Add e1000 directory to build, since the driver compiles cleanly.
Marty Connor [Sun, 18 Nov 2007 15:54:42 +0000 (10:54 -0500)]
Rename e1000_main.c to e1000.c to so we can type 'make bin/e1000.dsk' instead of 'make bin/e1000_main.dsk'
Marty Connor [Sun, 18 Nov 2007 15:45:20 +0000 (10:45 -0500)]
Add errfile definition for new e1000.c
Marty Connor [Sun, 18 Nov 2007 15:31:00 +0000 (10:31 -0500)]
Introduce files for new e1000 driver
Marty Connor [Sun, 18 Nov 2007 15:28:25 +0000 (10:28 -0500)]
Add src/drivers/net/e1000 as home of new e1000 driver
Marty Connor [Sun, 18 Nov 2007 14:58:28 +0000 (09:58 -0500)]
Move current e1000 driver files to e1000-old/ directory to avoid collisions
Marty Connor [Sun, 18 Nov 2007 14:51:21 +0000 (09:51 -0500)]
Add ERRFILE information for e1000_main and e1000_hw, part of the new e1000 driver
It is likely we will rename e1000_main to e1000 when the new e1000 driver is debugged.
Marty Connor [Sun, 18 Nov 2007 08:11:02 +0000 (03:11 -0500)]
Remove unnecessary variable.
Michael Brown [Mon, 5 Nov 2007 13:29:05 +0000 (13:29 +0000)]
Work around a bug in the OpenSolaris iSCSI target.
We didn't specify values for MaxRecvDataSegmentLength and
MaxBurstLength (to save space, since we were happy with the
RFC-defined default values of 8kB and 256kB respectively). However,
the OpenSolaris target (incorrectly) assumes default values of zero
for these parameters.
The upshot was that the OpenSolaris target would get stuck in an
endless loop trying to send us the first 512-byte sector, zero bytes
at a time, and would eventually run out of memory and core-dump.
Fixed by explicitly specifying the default values for these two
parameters.
Michael Brown [Sun, 4 Nov 2007 04:27:38 +0000 (04:27 +0000)]
Allow space for the kernel's real-mode .bss. Previously we weren't
allowing any space for this, which makes it surprising that bzImage
loading ever worked.
Michael Brown [Mon, 29 Oct 2007 21:22:00 +0000 (21:22 +0000)]
Add missing attribute(packed) to two structures.
Michael Brown [Mon, 29 Oct 2007 17:22:27 +0000 (17:22 +0000)]
Merge branch 'master' of rom.etherboot.org:/gpxe
Michael Brown [Mon, 29 Oct 2007 17:21:58 +0000 (17:21 +0000)]
Merge branch '3leaf'
Michael Brown [Mon, 22 Oct 2007 15:24:09 +0000 (16:24 +0100)]
Added one more PCI ID
Michael Brown [Wed, 10 Oct 2007 23:43:21 +0000 (00:43 +0100)]
Change ROM names to lower case.
Michael Brown [Wed, 10 Oct 2007 19:12:25 +0000 (20:12 +0100)]
Ensure that empty e820 regions are skipped even at the end of the
memory map. (We achieve this by setting CF on the last entry if it is
zero-length; this avoids the need to look ahead to see at each entry
if the *next* entry would be both the last entry and zero-length).
This fixes the "0kB base memory" error message upon starting Windows
2003 on a SunFire X2100.
Michael Brown [Wed, 10 Oct 2007 19:12:25 +0000 (20:12 +0100)]
Ensure that empty e820 regions are skipped even at the end of the
memory map. (We achieve this by setting CF on the last entry if it is
zero-length; this avoids the need to look ahead to see at each entry
if the *next* entry would be both the last entry and zero-length).
This fixes the "0kB base memory" error message upon starting Windows
2003 on a SunFire X2100.