Michael Brown [Mon, 26 Jun 2006 16:10:34 +0000 (16:10 +0000)]
Simplify ipv4_tx() by not having a separate "source" variable now that
we are constructing the IP header ourselves.
Formatting fix-ups (80 column limit is mandatory!)
Michael Brown [Mon, 26 Jun 2006 16:01:24 +0000 (16:01 +0000)]
Factorise out common code
Michael Brown [Mon, 26 Jun 2006 15:33:46 +0000 (15:33 +0000)]
Split ipv6 functions out from ipv4.c
Michael Brown [Mon, 26 Jun 2006 13:45:24 +0000 (13:45 +0000)]
Whitespace fixes
Dan Lynch [Mon, 26 Jun 2006 08:24:34 +0000 (08:24 +0000)]
first working version - nasty, but mostly works
Nikhil Chandru Rao [Sun, 25 Jun 2006 05:18:24 +0000 (05:18 +0000)]
added generalized sockaddr structure and ip6 sockaddr
Nikhil Chandru Rao [Sun, 25 Jun 2006 05:16:54 +0000 (05:16 +0000)]
added support for processing and transmitting without uIP
Nikhil Chandru Rao [Sun, 25 Jun 2006 05:13:17 +0000 (05:13 +0000)]
updated UDP interface
Nikhil Chandru Rao [Sun, 25 Jun 2006 05:12:07 +0000 (05:12 +0000)]
created interface for transport-network interface
Derek Pryor [Thu, 22 Jun 2006 17:15:45 +0000 (17:15 +0000)]
Added gpxe-0.5/src/crypto/ for the SSL Library
Dan Lynch [Wed, 21 Jun 2006 15:09:55 +0000 (15:09 +0000)]
- proper layout formatted soft label array, with justification formatted labels
- some minor preventatives
Dan Lynch [Wed, 21 Jun 2006 10:38:03 +0000 (10:38 +0000)]
- erradicate compiler warning due to possibility of uninitialised variables (switch statement)
Dan Lynch [Wed, 21 Jun 2006 10:35:46 +0000 (10:35 +0000)]
- added doxygen @file header
- no longer depends on slk
Dan Lynch [Wed, 21 Jun 2006 10:31:59 +0000 (10:31 +0000)]
- added doxygen @file header
Dan Lynch [Wed, 21 Jun 2006 10:31:20 +0000 (10:31 +0000)]
- added doxygen @file header
- some more minor functionality implemented
Dan Lynch [Wed, 21 Jun 2006 10:30:03 +0000 (10:30 +0000)]
added doxygen @file header
Dan Lynch [Wed, 21 Jun 2006 10:29:13 +0000 (10:29 +0000)]
- removed slk references
- corrected minor algo errors in primitives
- added doxygen @file header
Dan Lynch [Wed, 21 Jun 2006 10:27:52 +0000 (10:27 +0000)]
- added doxygen @file header
- wdeleteln function implemented
Dan Lynch [Wed, 21 Jun 2006 10:26:01 +0000 (10:26 +0000)]
added doxygen file header
Dan Lynch [Wed, 21 Jun 2006 10:21:40 +0000 (10:21 +0000)]
- major implementation work completed (testing in progress)
- some optimisation done
Dan Lynch [Wed, 21 Jun 2006 10:20:39 +0000 (10:20 +0000)]
initial check in
Michael Brown [Mon, 19 Jun 2006 15:46:58 +0000 (15:46 +0000)]
Update ftp.c and hello.c to use the generic async_operations API.
Michael Brown [Sat, 17 Jun 2006 23:34:48 +0000 (23:34 +0000)]
Placeholder
Michael Brown [Sat, 17 Jun 2006 23:20:54 +0000 (23:20 +0000)]
Made the temporary buffer part of the TCP senddata() API, to ease the
transition away from uIP.
Prepared ipv4.c for transition away from uIP.
Michael Brown [Sat, 17 Jun 2006 22:36:27 +0000 (22:36 +0000)]
Simplify RX data path.
Kill off the static single net device and move to proper dynamic
registration (which we need with the new device model).
Break the (flawed) assumption that all network-layer protocols can use
ARP; such network-layer protocols (i.e. IPv4) must now register as an ARP
protocol using ARP_NET_PROTOCOL() and provide a single method for checking
the existence of a local network-layer address.
Michael Brown [Fri, 16 Jun 2006 14:48:31 +0000 (14:48 +0000)]
Remove dependency on arptable[] (which is no longer used).
Michael Brown [Fri, 16 Jun 2006 14:38:16 +0000 (14:38 +0000)]
Temporary hack to work around the "TX overflow" problem in the interim
period before updating to the new driver API (which can cope with
having TX packets in progress).
Michael Brown [Fri, 16 Jun 2006 14:30:41 +0000 (14:30 +0000)]
Add 4 bytes to maximum frame length to allow for the frame checksum.
(This actually matters once you try using TCP, because you *will*
receive full-sized frames.)
Michael Brown [Fri, 16 Jun 2006 14:27:04 +0000 (14:27 +0000)]
Improve debugging output for legacy wrapper
Michael Brown [Fri, 16 Jun 2006 14:05:43 +0000 (14:05 +0000)]
Forward-port event queue fixes from 5.4 tree.
Michael Brown [Fri, 16 Jun 2006 14:03:43 +0000 (14:03 +0000)]
Forward-port start-of-day fixes from 5.4 tree
Michael Brown [Fri, 16 Jun 2006 14:00:43 +0000 (14:00 +0000)]
Forward-port reset-related changes from 5.4 tree.
Michael Brown [Fri, 16 Jun 2006 13:17:40 +0000 (13:17 +0000)]
For consistency
Michael Brown [Fri, 16 Jun 2006 13:16:59 +0000 (13:16 +0000)]
32kB window is actually larger than our typical receive ring size.
Shrink to 4kB for now. We might want to see if it can be made
genuinely indicative of the RX ring size in the new TCP
implementation.
Michael Brown [Fri, 16 Jun 2006 00:19:46 +0000 (00:19 +0000)]
Simplify TX datapath.
Michael Brown [Wed, 14 Jun 2006 17:00:25 +0000 (17:00 +0000)]
Added iSCSI boot test code
Michael Brown [Wed, 14 Jun 2006 00:22:50 +0000 (00:22 +0000)]
Generalise three-wire interface to generic SPI interface.
Update rtl8139 driver to instantiate an SPI interface with a three-wire
device attached.
Michael Brown [Wed, 14 Jun 2006 00:20:35 +0000 (00:20 +0000)]
Move per-transition delays from generic bit-bashing layer to i2c layer
(since SPI bit-bashing will require different delay semantics).
Michael Brown [Wed, 14 Jun 2006 00:18:13 +0000 (00:18 +0000)]
Translate between "0 = success" and "0 = failure" call standards.
Michael Brown [Mon, 12 Jun 2006 19:29:50 +0000 (19:29 +0000)]
Change read_bit() to return 0 or -1UL, rather than 0 or 1.
Michael Brown [Mon, 12 Jun 2006 01:10:08 +0000 (01:10 +0000)]
Updated debug message to reflect change in data structure.
Michael Brown [Mon, 12 Jun 2006 01:07:43 +0000 (01:07 +0000)]
Add "addr32" required explicitly by older gas.
Michael Brown [Sun, 11 Jun 2006 01:55:43 +0000 (01:55 +0000)]
Add NULL_TRAP as a config option
Michael Brown [Sun, 11 Jun 2006 01:55:12 +0000 (01:55 +0000)]
Fix typo
Michael Brown [Sun, 11 Jun 2006 01:48:29 +0000 (01:48 +0000)]
Added null trap code for debugging. (Must be included by adding
--nulltrap to the make target at the moment.)
Michael Brown [Sun, 11 Jun 2006 00:57:38 +0000 (00:57 +0000)]
Update to use the generic i2c bit-bashing code.
Michael Brown [Sun, 11 Jun 2006 00:57:00 +0000 (00:57 +0000)]
Added bit-bashing i2c interface code
Michael Brown [Fri, 9 Jun 2006 12:20:03 +0000 (12:20 +0000)]
Windows Server 2003 sulks if we feed it an empty region in base memory
as a result of our memory map editing, so strip out any empty regions.
Michael Brown [Fri, 9 Jun 2006 10:19:17 +0000 (10:19 +0000)]
Added missing check-in
Michael Brown [Thu, 8 Jun 2006 19:47:09 +0000 (19:47 +0000)]
Added sketch of bit-bashing interface common code
Michael Brown [Thu, 8 Jun 2006 19:28:08 +0000 (19:28 +0000)]
Fix bug with >256 cylinders.
Allow our functions to return a non-zero, non-error status (since the
INT 13 Extensions Check has to return the API version in the register
that is otherwise always used for the error code).
Report a non-zero API version from the INT 13 Extensions Check; GRUB
now uses extended reads.
Dan Lynch [Thu, 8 Jun 2006 17:23:37 +0000 (17:23 +0000)]
- separated curses.c out into separate source files to optimise
library use later on
- some small mods to existing functions
Michael Brown [Thu, 8 Jun 2006 15:18:27 +0000 (15:18 +0000)]
Legacy drivers cannot cope with multiple active devices.
Michael Brown [Thu, 8 Jun 2006 15:06:09 +0000 (15:06 +0000)]
It's astonishing how long really fundamental bugs can survive without
being noticed...
Michael Brown [Thu, 8 Jun 2006 14:57:04 +0000 (14:57 +0000)]
Fix some remarkably obvious mistakes in pcidirect.h
Michael Brown [Tue, 6 Jun 2006 15:41:21 +0000 (15:41 +0000)]
We now have just romprefix, rather than having isaprefix and pciprefix
Michael Brown [Tue, 6 Jun 2006 15:33:39 +0000 (15:33 +0000)]
Cut out almost all the optional code paths, drastically simplifying the
flow of control through this code.
We now always add PCI and PnP headers even for ISA ROMs; there's no harm
in doing so.
UNDI loader is still missing.
Michael Brown [Tue, 6 Jun 2006 15:30:28 +0000 (15:30 +0000)]
Code segment may not be writable; create the temporary pointer to the GDT
on the stack.
Michael Brown [Tue, 6 Jun 2006 15:29:39 +0000 (15:29 +0000)]
Calculate _rom_size for the ROM prefix
Michael Brown [Tue, 6 Jun 2006 15:29:14 +0000 (15:29 +0000)]
Use byte 6 for the checksum, rather than byte 5. (Byte 5 may be part of
the jmp instruction).
Michael Brown [Mon, 5 Jun 2006 16:17:52 +0000 (16:17 +0000)]
Force pci.o to be included.
Print warning message at probe time.
Michael Brown [Mon, 5 Jun 2006 16:10:36 +0000 (16:10 +0000)]
Legacy drivers will not pad when necessary
Michael Brown [Mon, 5 Jun 2006 16:10:14 +0000 (16:10 +0000)]
PNIC doesn't auto-pad.
Michael Brown [Mon, 5 Jun 2006 15:45:21 +0000 (15:45 +0000)]
Added a very quick and dirty compatibility layer, to allow
not-yet-updated drivers to at least function.
Michael Brown [Mon, 5 Jun 2006 15:41:22 +0000 (15:41 +0000)]
Added soon-to-be-requisite missing include.
Dan Lynch [Mon, 5 Jun 2006 15:03:11 +0000 (15:03 +0000)]
- added most slk functions
Michael Brown [Thu, 1 Jun 2006 19:23:52 +0000 (19:23 +0000)]
Improve tcpdump legibility.
Michael Brown [Thu, 1 Jun 2006 15:53:05 +0000 (15:53 +0000)]
Quick hack to avoid trying to use an uninitialised net device.
Michael Brown [Thu, 1 Jun 2006 14:33:52 +0000 (14:33 +0000)]
Updated retry timer mechanism to incorporate smoothed RTT estimation.
AoE now uses the retry timer mechanism.
Michael Brown [Thu, 1 Jun 2006 12:11:09 +0000 (12:11 +0000)]
Make DBG_DISCARD correct
Michael Brown [Thu, 1 Jun 2006 11:14:59 +0000 (11:14 +0000)]
Backing out last change; no immediate plans to make the whole block-device
layer asynchronous, so keeping the sync/async boundary within aoedev.c
seems cleanest for now.
Michael Brown [Thu, 1 Jun 2006 11:07:31 +0000 (11:07 +0000)]
Until we have a functioning UDP stack and PXE API again, there's not much
point trying to use the old boot sequence. Replaced with a call to the
AoE demo code, so that people can at least build and try something useful.
Michael Brown [Thu, 1 Jun 2006 11:05:36 +0000 (11:05 +0000)]
Added sample AoE test code to tree
Michael Brown [Wed, 31 May 2006 19:12:17 +0000 (19:12 +0000)]
Put in a method to get the MAC address for the AoE target. (It's not
elegant, but it works).
Michael Brown [Wed, 31 May 2006 18:57:11 +0000 (18:57 +0000)]
ATA devices are now asynchronous. The ATA layer itself now performs the
async_wait(), though we may wish to move this higher up the stack, and
consider making the block device model asynchronous. (There is only a
marginal cost for synchronous devices, since they can simply call
async_done() before returning; async_wait() will work seamlessly in this
situation).
Michael Brown [Wed, 31 May 2006 18:45:43 +0000 (18:45 +0000)]
Missing from previous checkin.
This is the core portion of the async I/O interface.
Michael Brown [Wed, 31 May 2006 14:34:17 +0000 (14:34 +0000)]
Added generic asynchronous operations code.
Removed data_in_len and data_out_len from ata_command structure; the
lengths are implied by the sector count and the presence of the data_in
or data_out pointers.
Changed AoE code to use subcommands by default, and made aoe_issue()
nonblocking (with completion via async_wait()).
Michael Brown [Wed, 31 May 2006 14:31:48 +0000 (14:31 +0000)]
Added drivers/ata directory (forgot to check this in previously).
Michael Brown [Mon, 29 May 2006 21:00:00 +0000 (21:00 +0000)]
One bit of an ASCII character can make a big difference.
Michael Brown [Mon, 29 May 2006 14:55:07 +0000 (14:55 +0000)]
Added first sketch of a generic retry timer mechanism. The idea is to use
these timer objects in AoE and UDP protocols (where there is no underlying
retransmission mechanism) without requiring each protocol to implement its
own individual retry logic. Eventually, we should be able to use the same
timer code for TCP retransmissions as well.
Michael Brown [Mon, 29 May 2006 08:25:31 +0000 (08:25 +0000)]
Handle multi-sector reads by splitting them into subcommands.
Michael Brown [Sun, 28 May 2006 23:29:43 +0000 (23:29 +0000)]
Initial AoE implementation. Limitations are:
Cannot yet handle reads of more than two sectors
No retransmission
No way to find out a target's MAC address (this proof of concept uses
broadcasts)
These limitations shall not last long! :)
Michael Brown [Sun, 28 May 2006 23:26:42 +0000 (23:26 +0000)]
Use separate data-in and data-out buffers.
Increase code simplicity at the expense of around 64 bytes.
Michael Brown [Sun, 28 May 2006 21:47:52 +0000 (21:47 +0000)]
Add ETH_P_AOE
Michael Brown [Sun, 28 May 2006 14:40:04 +0000 (14:40 +0000)]
Tidy up comment
Michael Brown [Sun, 28 May 2006 14:21:29 +0000 (14:21 +0000)]
Fixed assembly on old versions of gas
Michael Brown [Sat, 27 May 2006 19:01:20 +0000 (19:01 +0000)]
Added tcp_kick(). This speed up LILO and GRUB booting by almost two
orders of magnitude.
Michael Brown [Sat, 27 May 2006 13:55:36 +0000 (13:55 +0000)]
Avoid causing TX overflow on small TX queues.
Michael Brown [Sat, 27 May 2006 13:45:14 +0000 (13:45 +0000)]
Rewrote to use the new net driver API, the updated PCI API, and the
generic three-wire serial device support for EEPROM access.
Michael Brown [Sat, 27 May 2006 13:43:56 +0000 (13:43 +0000)]
I have no idea how this ever worked before.
Michael Brown [Sat, 27 May 2006 13:39:45 +0000 (13:39 +0000)]
Make PKB_ZLEN the minimum possible size of packet buffer (to allow for
hardware that can't autopad).
Michael Brown [Sat, 27 May 2006 13:38:49 +0000 (13:38 +0000)]
Tidied up debugging messages
Michael Brown [Fri, 26 May 2006 15:39:24 +0000 (15:39 +0000)]
Added abstraction layer for a three-wire serial device (e.g. the EEPROM
used on RTL8139 cards).
Michael Brown [Fri, 26 May 2006 08:15:31 +0000 (08:15 +0000)]
Need write permission to /dev/net/tun, not just read.
Michael Brown [Thu, 25 May 2006 22:04:47 +0000 (22:04 +0000)]
Updated to work with libprefix.
Michael Brown [Thu, 25 May 2006 22:04:17 +0000 (22:04 +0000)]
Documented the fact that the prefix can prot_call(main) without
worrying about its stack being destroyed during the Etherboot run.
Michael Brown [Thu, 25 May 2006 01:34:13 +0000 (01:34 +0000)]
relocate.o is now dragged in by the objects that require it; there is no
need for a CONFIG_RELOCATE.
Michael Brown [Thu, 25 May 2006 01:09:06 +0000 (01:09 +0000)]
Removed some obsolete INIT_XXX constants.
Michael Brown [Thu, 25 May 2006 00:10:58 +0000 (00:10 +0000)]
Also hide base memory region from E820 map.
Michael Brown [Thu, 25 May 2006 00:06:45 +0000 (00:06 +0000)]
init_librm() and prot_call() are now real-mode far calls.
install() now calls relocate(), moves the protected-mode code to the new
location, and calls hide_etherboot().