Michael Brown
d88832ad7e
Support PXE and iSCSI by default
2006-12-05 23:26:07 +00:00
Michael Brown
b9f9230661
Work around another instance of the port re-use bug.
2006-12-05 23:15:35 +00:00
Michael Brown
8c3d09c564
Tweaked retry messages
2006-12-05 23:12:54 +00:00
Michael Brown
9600af14a3
Added debug messages
2006-12-05 22:53:49 +00:00
Michael Brown
cc0b92652f
Call closed() method only when the connection is genuinely in the
...
TCP_CLOSED state (i.e. after the final FIN/ACK exchange), and has been
removed from the list of TCP connections.
2006-12-05 22:53:28 +00:00
Michael Brown
fcc70c9d60
Ensure that tcp_rx() always frees its received packet buffer.
2006-12-05 21:23:23 +00:00
Michael Brown
28c711b91d
Killed off spurious <stdio.h> inclusion
2006-12-05 21:16:52 +00:00
Michael Brown
3fbfbad0f7
Avoid calling NULL methods!
2006-12-05 21:09:37 +00:00
Michael Brown
89bcb57201
Update ftp.c to work with Nikhil's TCP stack.
...
Remove the now-totally-obsolete sockaddr_in field from tcp.h.
2006-12-05 19:07:47 +00:00
Michael Brown
a128b33b8b
The VPD engine is broken and can't actually handle placing VPD
...
anywhere other than offset 0 within the EEPROM, so we have to put our
settings at 0x100 instead.
2006-12-05 17:56:13 +00:00
Michael Brown
4c3e0fede5
Adjust EEPROM/flash detection to fit expected manufacturing practice.
2006-12-05 16:00:06 +00:00
Michael Brown
6a91a03409
Added options listed in
...
http://www.microsoft.com/whdc/winlogo/hwrequirements.mspx as required
for iSCSI boot. Note that options 204-206 are listed in the document
but don't seem to be defined anywhere on the web.
2006-12-05 15:40:28 +00:00
Michael Brown
c6060a8fea
Tidy up some more output. The command-line code needs some severe
...
overhauling, but this is not the time to do it.
2006-12-05 10:27:16 +00:00
Michael Brown
e852f8e504
Slightly tidied up console messages.
2006-12-05 10:14:58 +00:00
Michael Brown
cb883b3faf
Change some debugging messages to use DBG()
2006-12-05 10:01:00 +00:00
Michael Brown
8bff0f0619
Avoid draining the keyboard buffer during gateA20_set(). It shouldn't
...
technically be necessary, because the "enable A20" command requires
only that the keyboard controller is ready to accept input (i.e. that
its input buffer is empty), and shouldn't also require that the
keyboard is ready to send output (i.e. that its output buffer is also
empty). See http://www.smsc.com/main/tools/io-bios/42i.pdf section
3.1 ("Command Invocation") for a justification.
gateA20_set() is called on every real-mode transition (in case some
idiot piece of external code such as Intel's PXE stack decided it
would be fun to re-disable A20), so draining the keyboard buffer means
that we end up losing keypresses on some systems. In particular, this
makes typing at the command line almost impossible, and causes
Etherboot to ignore Ctrl-Alt-Del.
We should really implement a gateA20_test() function to verify that
gate A20 has been correctly enabled, and think about adding other
commonly-used methods such as Fast Gate A20.
2006-12-05 09:45:39 +00:00
Michael Brown
d041d74054
Tied NVO commands into the human-interactable settings code that I
...
completely forgot I'd written ages ago.
2006-12-05 02:40:03 +00:00
Michael Brown
6842dd3222
Handle TargetAddress
2006-12-05 01:41:32 +00:00
Michael Brown
67577556a2
Handle strings as complete units, instead of a byte at a time.
2006-12-05 01:08:56 +00:00
Michael Brown
3a7d762c1c
Add iscsi_rx_buffered_data() and supporting infrastructure.
2006-12-05 00:39:05 +00:00
Michael Brown
16b81e442f
Added more debug messages
2006-12-04 23:47:44 +00:00
Michael Brown
d9f32726b4
Added quick and dirty commands for testing the new NVO code.
2006-12-04 23:40:35 +00:00
Michael Brown
6b45947a59
Added debug statements
2006-12-04 23:20:56 +00:00
Michael Brown
052ef6dc5a
Added nvs_write(). This shares a lot of code in common with nvs_read();
...
this can probably be optimised down quite a lot.
2006-12-04 22:06:54 +00:00
Michael Brown
ab4e1dba3f
Added nvo_save()
2006-12-04 22:04:10 +00:00
Michael Brown
cc9bcb99a0
Add the concept of a fragment list for non-volatile stored options.
2006-12-04 21:46:13 +00:00
Michael Brown
f944737045
Fixed two logic errors that were cancelling each other out.
2006-12-04 21:12:52 +00:00
Michael Brown
d62c83a350
Migrated etherfabric driver to using generic SPI layer.
2006-12-04 20:47:51 +00:00
Michael Brown
2d8d21fe74
Added the generic block-splitting code to nvs.c
2006-12-04 19:06:07 +00:00
Michael Brown
1961ba44e1
Added generic SPI protocol handler with read and write support.
2006-12-04 18:32:55 +00:00
Michael Brown
946967f09c
Abstracted out part of the concept of an SPI device to a generalised NVS
...
device.
Separated the mechanisms of non-volatile storage access and non-volatile
stored options.
2006-12-04 18:23:06 +00:00
Michael Brown
dc06c895fc
Changed length parameter in SPI methods to be a byte length, rather than
...
a word length.
2006-12-04 16:09:59 +00:00
Michael Brown
931f94dca3
Generalised the SPI abstraction layer to also be able to handle interfaces
...
that don't provide the full flexibility of a bit-bashing interface.
Temporarily hacked rtl8139.c to use the new interface.
2006-12-04 15:36:51 +00:00
Michael Brown
2e41bfd268
Force syntax-checking on assertions even in non-asserting builds.
2006-12-04 15:09:57 +00:00
Michael Brown
3e0286dee3
Move ANSI C standard prototypes to stdlib.h; leave the gPXE-specific
...
function prototypes (e.g. malloc_dma()) in malloc.h.
2006-12-02 20:10:21 +00:00
Michael Brown
4cd56820ea
Basic non-volatile storage support
2006-11-29 02:41:08 +00:00
Michael Brown
70d4b4f7cf
Make the "drive number" option apply to iSCSI as well as AoE
2006-11-29 00:27:10 +00:00
Michael Brown
3234ef1b0b
Merged changes from Solarflare
2006-11-28 13:25:23 +00:00
Michael Brown
74c41fac06
Create "username" and "password" DHCP options, ready for placing this
...
information in NVS.
2006-11-28 02:14:20 +00:00
Michael Brown
3f0b4d9ed8
Updated to use asynchronous operation model for iSCSI requests
...
Added CHAP authentication
2006-11-28 00:29:02 +00:00
Michael Brown
82342e0b8f
Marked memcmp/strcmp as "pure" functions, to allow gcc to optimise
...
away code such as
if ( strcmp ( some_string, "some_value" ) != 0 ) {
DBG ( "Bad value received!" );
}
2006-11-27 23:50:24 +00:00
Michael Brown
c4677c7e73
Implemented realloc(), and changed the semantics of malloc(0) to allow
...
for realloc(0) being a valid way to free memory.
2006-11-24 16:51:18 +00:00
Michael Brown
6a18721ce8
Fixed off-by-one error
2006-11-22 04:54:17 +00:00
Michael Brown
fdaddd969a
Added "name" field to digest algorithms
2006-11-21 16:14:50 +00:00
Michael Brown
d37f82509f
Added debug statements.
...
Don't crash when called on an uninitialised chap structure; this
allows us to avoid extra checks within iscsi.c to make sure that we
receive the CHAP_XXX keys in a sensible order.
2006-11-21 16:14:17 +00:00
Michael Brown
a9415d3da2
Reduce from 157 to 123 bytes
2006-11-21 16:01:12 +00:00
Michael Brown
c5428303e4
Added generic CHAP layer, independent of iSCSI
2006-11-21 13:26:59 +00:00
Michael Brown
57d539aab0
Made it temporarily possible to call MD5 routines directly from external
...
code, rather than going through the digest layer.
Removed a spurious line of constants.
2006-11-15 04:22:22 +00:00
Michael Brown
ea97fe42dd
Note to self: do not write code late at night
2006-11-15 04:16:26 +00:00
Michael Brown
5753f2c58b
May as well add octal support to strtoul()
2006-11-15 02:57:24 +00:00