489a4004d7
Give UNDI device a more meaningful name.
Michael Brown
2007-01-10 05:52:04 +00:00
f396f1f9d3
Force ordering of commands within help list.
Michael Brown
2007-01-10 05:13:20 +00:00
cef551376f
Force ordering of commands in help list.
Michael Brown
2007-01-10 05:10:30 +00:00
77bb7b13a7
Having forced __table() to natural structure alignment, it now seems that we *can* place arrays in tables, which means we can force the order within a table without having to resort to explicitly numbered sections on everything.
Michael Brown
2007-01-10 05:08:05 +00:00
dad5274522
Add "name" field to struct device to allow human-readable hardware device names.
Michael Brown
2007-01-10 04:22:09 +00:00
cc9b32c405
Remove uIP; we haven't used it for quite some time now.
Michael Brown
2007-01-10 02:52:58 +00:00
753e156844
Allow udp_{send,sendto,sendto_via} to be called outside of the udp_senddata() callback. This will simplify any UDP protocols that don't need the temporary buffer.
Michael Brown
2007-01-10 02:46:39 +00:00
649b789e93
DHCP transmits via specified net device, so no need to create a dummy routing table entry just to fool ipv4.c any more.
Michael Brown
2007-01-10 02:37:23 +00:00
c821a7b20d
Add udp_sendto_via() to allow e.g. DHCP to transmit without first having to set up dummy routing entries.
Michael Brown
2007-01-10 02:31:38 +00:00
f008b77ba2
Allow an explicit network device to be specified for IP-layer transmissions.
Michael Brown
2007-01-10 02:25:11 +00:00
9869659895
Add interface management commands
Michael Brown
2007-01-10 02:04:07 +00:00
55e590ab3a
Move header file for usr/autoboot.c to include/usr
Michael Brown
2007-01-10 02:03:20 +00:00
d24b80acf2
Added network interface management commands
Michael Brown
2007-01-10 01:55:07 +00:00
98b6154c3e
Add "name" field to network device, to facilitate netdev commands.
Michael Brown
2007-01-09 23:48:18 +00:00
c65fae2475
Add RX quotas to the net device poll() method. This avoids the problem of alloc_pkb() exhaustion when e.g. an iSCSI-booted DOS session is left idle for a long time at the C:\ prompt and builds up a huge packet backlog.
Michael Brown
2007-01-09 21:47:01 +00:00
e822bc2a90
Autopadding was sometimes overwriting the struct list_head at the end of the packet buffer. Although pkbuffs are guaranteed to be at least PKB_ZLEN bytes long, there's no guarantee that the data starts at the start of the packet buffer.
Michael Brown
2007-01-09 21:01:55 +00:00
18e5353bed
Rename pkb_available() to pkb_tailroom() for consistency with Linux's skb_tailroom(). Add pkb_headroom().
Michael Brown
2007-01-09 20:56:31 +00:00
b7fcfe8ece
Added net device TX queue; this will be needed to support the PXE UNDI API (which will need us to wait for TX completions).
Michael Brown
2007-01-09 20:18:31 +00:00
8a268073a7
Move start/stop/expire debug messages to DBG2() level.
Michael Brown
2007-01-09 17:39:52 +00:00
3c2cc59d25
Added ability to break ISR processing over several calls to poll(). This will allow us to implement RX quotas.
Michael Brown
2007-01-09 17:04:10 +00:00
aa7bda7b47
Send EOI after enabling interrupt, in case the device had asserted IRQ to the PIC while it was disabled.
Michael Brown
2007-01-09 14:53:19 +00:00
a2ffe8c123
Allow boot sector to completely destroy real-mode stack, but still manage to return control.
Michael Brown
2007-01-09 14:13:59 +00:00
a9369bb503
Leave protected-mode return address on PM stack when issuing a real_call(), rather than moving it to the RM stack and back again. This allows the real-mode function to completely destroy the stack contents, provided that it manages to return to real_call().
Michael Brown
2007-01-09 14:13:06 +00:00
2eeb7c4fe7
Define "connected" as
Michael Brown
2007-01-09 05:01:22 +00:00
70cc3a164a
Reset character attributes before start of welcome banner, in case it's a serial console and remembers state from the previous program run.
Michael Brown
2007-01-09 04:51:27 +00:00
aaca21a2b6
We can't assert that the RX engine is idle in iscsi_done(), because it may be called during the RX data processor, before the RX engine transitions back to idle. It doesn't really matter if the RX engine isn't idle when iscsi_done() is called, because it will just pick up where it left off on the next call. (The same is not true for the TX engine, so keep the TX engine assertion.)
Michael Brown
2007-01-09 04:42:23 +00:00
6ea07b9247
Use debug auto-colourisation.
Michael Brown
2007-01-09 04:38:39 +00:00
76525294ee
Clean up connection closing and permanent failure logic.
Michael Brown
2007-01-09 04:31:33 +00:00
2738bdf74b
Obsoleted by drivers/net/undionly.c
Michael Brown
2007-01-09 03:22:11 +00:00
d606edb41d
Added UNDI root bus driver (which saves including all the PCI bus code, UNDI ROM code etc. when you just want a "undi.kpxe"-type image).
Michael Brown
2007-01-09 03:20:22 +00:00
159930862f
Added missing call to undinet_remove()
Michael Brown
2007-01-09 03:08:01 +00:00
6b09dd8244
undipci_probe() has to calculate busdevfn anyway, so we may as well pass it directly to undi_load_pci().
Michael Brown
2007-01-09 02:58:07 +00:00
ed44e3730d
Avoid erasing non-existent signatures in undi_unload()
Michael Brown
2007-01-09 02:53:24 +00:00
a2be828a33
Avoid leaving preloaded_undi with invalid PXENV+/!PXE structure addresses if the signature checks fail.
Michael Brown
2007-01-09 02:52:28 +00:00
697bcc9d24
Since we now always unload the base code stack (even if we keep UNDI), we can never return to the PXE stack and must always use INT 18.
Michael Brown
2007-01-09 02:46:58 +00:00
f2f492a536
If preloaded device matches, use that rather than going via the UNDI loader.
Michael Brown
2007-01-09 02:32:06 +00:00
2436dac281
Populate preloaded_undi device when applicable.
Michael Brown
2007-01-09 02:29:54 +00:00
937289cdc8
Provide storage for an undi_device structure representing the preloaded UNDI stack.
Michael Brown
2007-01-09 02:29:18 +00:00
47222d5ed8
Call PXENV_UNDI_GET_NIC_TYPE to identify NIC physical device.
Michael Brown
2007-01-09 01:42:28 +00:00
cea2221737
Use fixed-width fields in struct undi_device, so that pxeprefix.S will be able to populate the structure.
Michael Brown
2007-01-09 01:41:26 +00:00
fbdebac5f4
Copy pxelinux's shutdown sequence: use UNLOAD_STACK without STOP_BASE, and call UNDI_SHUTDOWN first to make sure the NIC is in a safe state.
Michael Brown
2007-01-08 05:06:26 +00:00
8f8af10b22
New strategy: always stop both base code and UNDI. Always free base code memory (unless we get an error while stopping the base code). Leave UNDI resident (though stopped) for .kpxe.
Michael Brown
2007-01-08 03:48:26 +00:00
075d79f6d4
Checking in obsolete but working memory-scanning code just for the record
Michael Brown
2007-01-08 03:45:00 +00:00
67e824b539
Neaten up debug messages
Michael Brown
2007-01-08 03:42:19 +00:00
f08093b0d9
Remove spurious debug message
Michael Brown
2007-01-08 03:37:32 +00:00
f0edd11c7d
Now split out into undirom.c and undiload.c
Michael Brown
2007-01-08 03:35:51 +00:00
07e5d4e3dc
Added any-PCI-device UNDI driver
Michael Brown
2007-01-08 03:34:47 +00:00
66f7bcc785
Tidied up debug messages
Michael Brown
2007-01-08 03:34:06 +00:00
79c5f0ba04
Added PCI_BASE_CLASS() macro
Michael Brown
2007-01-08 03:32:41 +00:00
5af4918356
Added support for wildcard device/vendor ID matches
Michael Brown
2007-01-08 03:23:38 +00:00
20c9fc407e
Remove types and prototypes now provided in the undi*.h headers.
Michael Brown
2007-01-08 03:05:34 +00:00
a6ba48e51e
Added debugging statements
Michael Brown
2007-01-08 03:04:54 +00:00
239965ff3b
Added missing includes
Michael Brown
2007-01-08 03:03:42 +00:00
6115356859
Added missing declarations
Michael Brown
2007-01-08 02:51:27 +00:00
aff96c13d2
Added missing include
Michael Brown
2007-01-08 02:51:04 +00:00
afc01a1a7f
Split UNDI load/unload out into undiload.c.
Michael Brown
2007-01-08 02:48:17 +00:00
359c888aec
Remove obsolete includes
Michael Brown
2007-01-08 02:39:56 +00:00
6fc75f659b
Separated out UNDI ROM location code into undirom.c, and use struct undi_rom rather than struct pxe_driver. (This is part of the naming consistency fixes).
Michael Brown
2007-01-08 02:38:10 +00:00
675fe200e5
Use "struct undi_device" instead of "struct pxe_device", and use the function prefix "undinet_" and the variable name "undinic" in undinet.c, so that we can reserve the variable name "undi" for a struct undi_device.
Michael Brown
2007-01-08 02:24:53 +00:00
36c1e1aa57
Renamed undi.c to undinet.c. (undi.c will become the UNDI PCI driver)
Michael Brown
2007-01-08 02:02:07 +00:00
234d81728a
Obsolete
Michael Brown
2007-01-08 02:00:55 +00:00
7b9617f5df
Add device to hierarchy before calling the driver's probe() function; this way everything remains consistent if the probe() ends up creating child devices.
Michael Brown
2007-01-08 01:29:51 +00:00
d3558fdd3a
Remove accidentally checked-in code
Michael Brown
2007-01-07 19:05:28 +00:00
85a41b25fe
Move START_UNDI, UNDI_STARTUP, UNDI_INITIALIZE and UNDI_GET_INFORMATION calls into drivers/net/undi.c. undi_probe() now gets given a pxe_device representing a PXE stack that has been loaded into memory but not initialised in any way.
Michael Brown
2007-01-07 19:02:17 +00:00
23cb837951
Remember to enable/disable the interrupt at the PIC.
Michael Brown
2007-01-07 13:31:39 +00:00
9ab5c0dde7
Remove redundant debug message
Michael Brown
2007-01-05 16:15:50 +00:00
fa9055197d
UNDI loader routine now works
Michael Brown
2007-01-05 16:11:05 +00:00
477a70697a
Added PnP BIOS scanning code, separated out from the UNDI driver
Michael Brown
2007-01-05 16:10:03 +00:00
d0a3cc3417
Avoid creating implicit memcpy()s
Michael Brown
2007-01-05 14:48:20 +00:00
9780fef360
Partial implementation of UNDI loader caller.
Michael Brown
2007-01-05 03:24:39 +00:00
0638945c7e
Add PXE driver-scanning code, capable of locating all PXE ROMs in a system and matching them up to (e.g. PCI) devices.
Michael Brown
2007-01-05 01:52:06 +00:00
ef50ea0b2b
Renamed undi_net.c to undi.c.
Michael Brown
2007-01-04 19:43:35 +00:00
6cf488dcf7
Obsolete; net driver functionality is now in undi_net.c and bus driver functionality is now in pxebus.c. (Not all bus functionality is ported across yet.)
Michael Brown
2007-01-04 19:42:05 +00:00
7e07dfb2f4
Added PXE bus driver (with support only for using PXE structures found lying about in memory, not for loading from ROM), and UNDI net driver.
Michael Brown
2007-01-04 19:38:34 +00:00
e28db95de6
Obsolete
Michael Brown
2007-01-04 19:37:31 +00:00
3b2f6e4585
Currently unusable; do not attempt to compile
Michael Brown
2007-01-04 19:37:21 +00:00
70acce06e4
This file is no longer used
Michael Brown
2007-01-04 19:36:31 +00:00
b12cd68726
Ripped out everything except the ability to send EOI to the PIC.
Michael Brown
2007-01-04 19:36:18 +00:00
de2fc50f4c
Add as a separate file so that we can do "make bin/xxxx.kpxe" rather than having to edit PXELOADER_KEEP_ALL as a config option.
Michael Brown
2007-01-04 19:35:10 +00:00
350603cb86
Don't include __FUNCTION__ in assert() messages; it was causing the function name to appear within the objects even in non-asserting builds. (This could be considered a gcc bug.)
Michael Brown
2007-01-04 13:48:13 +00:00
20681d6168
Allow empty checksums on received packets
Michael Brown
2007-01-04 05:17:28 +00:00
290c5ee779
Don't automatically call gateA20_set() when returning from a real-mode call.
Michael Brown
2007-01-04 04:32:18 +00:00
0c03bb5a9a
Make open() and close() an official part of the netdevice API.
Michael Brown
2007-01-04 04:20:08 +00:00
d4894f0127
We *should* use the persistent reference API for our netdev reference, but there's so much else missing that it's not worth doing right now.
Michael Brown
2007-01-04 03:44:36 +00:00
7fafa89258
A DHCP session holds a persistent reference to a network device
Michael Brown
2007-01-04 03:42:28 +00:00
ac53da1790
Added missing #include
Michael Brown
2007-01-04 03:40:07 +00:00
b29861a5aa
IPv6 minirouting table entries hold persistent references to net devices.
Michael Brown
2007-01-04 03:28:30 +00:00
b22d4405c0
An AoE session holds a persistent reference to a net device.
Michael Brown
2007-01-04 03:21:45 +00:00
35b5e5d3f5
Minirouting table entries hold a persistent reference to a net_device.
Michael Brown
2007-01-04 03:10:21 +00:00
bdf79ec8dc
Use hotplug support to notify persistent reference holders when a net_device is unregistered.
Michael Brown
2007-01-04 03:09:28 +00:00
0063725d28
Minimal hotplug support: provide a facility for notifying persistent reference holders that their reference is about to become invalid.
Michael Brown
2007-01-04 03:08:16 +00:00
b0daa99dce
Send RST packets when we get a non-matching connection, or receive an out-of-range ACK.
Michael Brown
2007-01-03 22:21:59 +00:00
eea1167a85
Accept RST on received packets
Michael Brown
2007-01-03 21:51:36 +00:00
94fc68895d
Improve consistency between TCP and UDP RX datapaths
Michael Brown
2007-01-03 21:13:11 +00:00
a0525a4ed3
Verify checksums on the RX datapath.
Michael Brown
2007-01-03 20:48:52 +00:00
285beeff7c
Tidy up debug messages
Michael Brown
2007-01-03 16:39:11 +00:00
718294553b
Fix compiler warning
Michael Brown
2007-01-03 15:56:15 +00:00
b91b9d3d88
Use whole bytes for the ACKED and RCVD portions of tcp_state; it produces slightly smaller code.
Michael Brown
2006-12-30 01:32:22 +00:00
83e1340d88
Use autocolourisation
Michael Brown
2006-12-29 14:09:23 +00:00