summaryrefslogtreecommitdiffstats
path: root/src/include/gpxe
Commit message (Collapse)AuthorAgeFilesLines
...
* Update ftp.c and hello.c to use the generic async_operations API.Michael Brown2006-06-192-11/+12
|
* PlaceholderMichael Brown2006-06-181-0/+49
|
* Made the temporary buffer part of the TCP senddata() API, to ease theMichael Brown2006-06-181-3/+11
| | | | | | transition away from uIP. Prepared ipv4.c for transition away from uIP.
* Simplify RX data path.Michael Brown2006-06-185-181/+78Star
| | | | | | | | | | 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.
* Simplify TX datapath.Michael Brown2006-06-163-75/+47Star
|
* Added iSCSI boot test codeMichael Brown2006-06-141-0/+3
|
* Generalise three-wire interface to generic SPI interface.Michael Brown2006-06-143-102/+197
| | | | | Update rtl8139 driver to instantiate an SPI interface with a three-wire device attached.
* Move per-transition delays from generic bit-bashing layer to i2c layerMichael Brown2006-06-141-2/+0Star
| | | | (since SPI bit-bashing will require different delay semantics).
* Change read_bit() to return 0 or -1UL, rather than 0 or 1.Michael Brown2006-06-121-0/+2
|
* Added bit-bashing i2c interface codeMichael Brown2006-06-111-0/+109
|
* Added sketch of bit-bashing interface common codeMichael Brown2006-06-081-0/+44
|
* Improve tcpdump legibility.Michael Brown2006-06-011-0/+2
|
* Updated retry timer mechanism to incorporate smoothed RTT estimation.Michael Brown2006-06-011-11/+10Star
| | | | AoE now uses the retry timer mechanism.
* Backing out last change; no immediate plans to make the whole block-deviceMichael Brown2006-06-011-5/+3Star
| | | | | layer asynchronous, so keeping the sync/async boundary within aoedev.c seems cleanest for now.
* ATA devices are now asynchronous. The ATA layer itself now performs theMichael Brown2006-05-312-4/+7
| | | | | | | | 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).
* Added generic asynchronous operations code.Michael Brown2006-05-313-18/+82
| | | | | | | | | 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()).
* Added first sketch of a generic retry timer mechanism. The idea is to useMichael Brown2006-05-291-0/+36
| | | | | | | 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.
* Handle multi-sector reads by splitting them into subcommands.Michael Brown2006-05-292-0/+5
|
* Initial AoE implementation. Limitations are:Michael Brown2006-05-291-0/+124
| | | | | | | | | | | 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! :)
* Use separate data-in and data-out buffers.Michael Brown2006-05-291-29/+37
| | | | Increase code simplicity at the expense of around 64 bytes.
* Add ETH_P_AOEMichael Brown2006-05-281-0/+1
|
* Added tcp_kick(). This speed up LILO and GRUB booting by almost twoMichael Brown2006-05-271-0/+1
| | | | orders of magnitude.
* Make PKB_ZLEN the minimum possible size of packet buffer (to allow forMichael Brown2006-05-271-0/+9
| | | | hardware that can't autopad).
* Added abstraction layer for a three-wire serial device (e.g. the EEPROMMichael Brown2006-05-261-0/+102
| | | | used on RTL8139 cards).
* Removed some obsolete INIT_XXX constants.Michael Brown2006-05-251-5/+0Star
|
* Made the LBA48 example clearer.Michael Brown2006-05-211-4/+4
|
* Added (untested) support for ATA devices. This code should be genericMichael Brown2006-05-211-0/+193
| | | | enough to support both real IDE chipsets and AoE.
* Added missing @file blockMichael Brown2006-05-201-0/+6
|
* READ CAPACITY (16) turns out to be an optional command (even thoughMichael Brown2006-05-191-0/+27
| | | | | READ(16) is mandatory); we must use READ CAPACITY (10) first and then use READ CAPACITY (16) if the READ CAPACITY (10) returns "out of range".
* Add the concept of a "user pointer" (similar to the void __user * inMichael Brown2006-05-193-4/+33
| | | | | | | | | | | | | | | | | | | | the kernel), which encapsulates the information needed to refer to an external buffer. Under normal operation, this can just be a void * equivalent, but under -DKEEP_IT_REAL it would be a segoff_t equivalent. Use this concept to avoid the need for bounce buffers in int13.c, which reduces memory usage and opens up the possibility of using multi-sector reads. Extend the block-device API and the SCSI block device implementation to support multi-sector reads. Update iscsi.c to use user buffers. Move the obsolete portions of realmode.h to old_realmode.h. MS-DOS now boots an order of magnitude faster over iSCSI (~10 seconds from power-up to C:> prompt in bochs).
* iSCSI writes seem to be working (at least, the ethereal trace shows noMichael Brown2006-05-192-32/+116
| | | | | | | | | errors; still need to verify data integrity). SCSI response PDUs are handled: status and sense data (if available) are returned via the scsi_command structure. Updated iSCSI session parameter usage.
* All uses iscsi_state were removed some time ago; removing theMichael Brown2006-05-181-8/+0Star
| | | | declaration.
* Strip down i386 PCI configuration space I/O to the bare minimum. AMichael Brown2006-05-171-13/+1Star
| | | | | | | | | | typical build will now include 880 bytes of PCI support code, compared to 2327 bytes in Etherboot 5.4. (There is a slight cost of around 5 extra bytes per access to a non-constant config space address; this should be an overall win. Driver-specific accesses will usually be to constant addresses, for which there is no additional cost.)
* Restructured PCI subsystem to fit the new device model.Michael Brown2006-05-161-112/+107Star
| | | | | | | | | | | | | | Generic PCI code now handles 64-bit BARs correctly when setting "membase"; drivers should need to call pci_bar_start() only if they want to use BARs other than the first memory or I/O BAR. Split rarely-used PCI functions out into pciextra.c. Core PCI code is now 662 bytes (down from 1308 bytes in Etherboot 5.4). 284 bytes of this saving comes from the pci/pciextra split. Cosmetic changes to lots of drivers (e.g. vendor_id->vendor in order to match the names used in Linux).
* Tear out old heap code, replace with code that simply allocates memoryMichael Brown2006-05-161-0/+15
| | | | | | | | | for use by malloc(). This breaks the image-loading code (which previously used the heap to allocate the buffer for downloading the image), but that's not a major concern since I'm going to tear out all the image formats within the next couple of days anyway. Byebye, NBI! :)
* Add list_for_each_entry_safe.Michael Brown2006-05-161-1/+16
|
* Added generic device model.Michael Brown2006-05-161-0/+70
|
* Split "iSCSI as a SCSI device" out from "iSCSI as a TCP protocol".Michael Brown2006-05-151-0/+3
|
* Provide a SCSI device interface to the iSCSI protocolMichael Brown2006-05-131-35/+101
|
* Defined SCSI device interface, and added SCSI block deviceMichael Brown2006-05-131-7/+137
| | | | implementation.
* Defined a block device interface.Michael Brown2006-05-131-0/+39
|
* Merge TCP aborted(), timedout() and closed() methods into a singleMichael Brown2006-04-302-15/+17
| | | | closed() method with a reason code.
* Proof-of-concept FTP implementationMichael Brown2006-04-301-0/+68
|
* Make tcp_connect() void; it will eventually have no failure case.Michael Brown2006-04-302-2/+2
|
* Put the TCP connection periodic processing in tcp.c, where it belongs.Michael Brown2006-04-301-8/+2Star
|
* ConsistencyMichael Brown2006-04-301-3/+3
|
* Move init.h to gpxe/init.h.Michael Brown2006-04-301-0/+66
|
* Change semantics of network API so that packet-absorbing calls *always*Michael Brown2006-04-291-10/+9Star
| | | | | | | | | | | take ownership of the packet, rather than doing so only if they return success. This breaks semantic compatibility with Linux's hard_start_xmit() method, but means that we don't have to worry so much about error cases. Split mechanism of processing received packets (net_rx_process()) out from policy (net_step()), preparatory to putting net_step() in a separate object.
* Added basic code for implementing co-operative multitasking.Michael Brown2006-04-291-0/+32
| | | | Yes, you really can do it in 65 bytes.
* Network layer now works as a proof of conceptMichael Brown2006-04-282-28/+83
|