| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| |
|
|
|
|
| |
transition away from uIP.
Prepared ipv4.c for transition away from uIP.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
| |
Update rtl8139 driver to instantiate an SPI interface with a three-wire
device attached.
|
| |
|
|
| |
(since SPI bit-bashing will require different delay semantics).
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
AoE now uses the retry timer mechanism.
|
| |
|
|
|
| |
layer asynchronous, so keeping the sync/async boundary within aoedev.c
seems cleanest for now.
|
| |
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
| |
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()).
|
| |
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
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! :)
|
| |
|
|
| |
Increase code simplicity at the expense of around 64 bytes.
|
| | |
|
| |
|
|
| |
orders of magnitude.
|
| |
|
|
| |
hardware that can't autopad).
|
| |
|
|
| |
used on RTL8139 cards).
|
| | |
|
| | |
|
| |
|
|
| |
enough to support both real IDE chipsets and AoE.
|
| | |
|
| |
|
|
|
| |
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".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
declaration.
|
| |
|
|
|
|
|
|
|
|
| |
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.)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
| |
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! :)
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
implementation.
|
| | |
|
| |
|
|
| |
closed() method with a reason code.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
Yes, you really can do it in 65 bytes.
|
| | |
|