Files
2024-02-19 00:25:04 -05:00
..
2024-02-19 00:25:04 -05:00
2024-02-19 00:25:04 -05:00
2024-02-19 00:25:04 -05:00
2024-02-19 00:25:04 -05:00
2024-02-19 00:25:04 -05:00
2024-02-19 00:25:04 -05:00
2024-02-19 00:25:04 -05:00

Directory:  ~ftp/pub/linux/

WARNING -- read the bugs section at the end of this file before getting
	the ethernet board driver!!!

Files:
    README	This file, updated Tuesday Nov. 24, 1992  18:34.
    3c501.c	The 3c501 ethernet driver source 
    3c503.c	The 3c503, 3c503/16, NE1000 and NE2000 ethernet driver source.
    3c503reg.h	Definitions specific to the 3c503
    8390.h	Generic definitions for the NS8390 chip. 
    Space.c	Added the table entries for the new ethernet drivers.
		This file is modified from the 0.98.4 release.

    Image	A pre-built Linux 0.98.4 kernel with MathEmu, no SCSI, mount
		patch, serial patch, CapsLck mapped to Cntrl, and the
		3c503 and NE2000 ethernet drivers.  This kernel usually has
		massive ethernet debugging turned on (debugging the kernel
		and setting ei_debug = 0  and el_debug = 0 will turn it off)
		and this version may not really work.  Also the address and
		IRQ settings are hard-coded for most ethercards.  Making your
		own kernel is usually a much better choice.

    linux-0.98.3-E	If it exists, the last Image file that worked OK.


Directions:

You might want to rename "3c503.c" to "ne2000.c".

Put the files (3c503.c, 3c503reg.h, 8390.h, and Space.c) into linux/net/tcp/.
Space.c is the only tricky one -- it overwrites the old Space.c, and
you'll need to edit it to add your IRQ and base address.

Next add 3c503.o to to linux/net/tcp/Makefile
	tcpip.o: ... 3c503.o

Edit linux/include/linux/config.h and/or config.site.h and insert the following
(see below for other details).
#undef CONFIG_DISTRIBUTION	/* Use config.site.h instead. */
#define EI8390 0x300		/* Then these should be in config.site.h */
#define EI8390IRQ 5		/* Not used yet, edit Space.c instead. */
#define EI_DEBUG 2

Make and install your new kernel.

To actually use this driver you must get the TCP/IP package and edit
your /usr/etc/inet/rc.net file to config device "eth_if" instead of
"eth0" (the WD8003).

BUGS
	None know right now.  I haven't tested the NS8390 overrun code -- it
	worked OK the last time I had other bugs to trigger it, but I've
	changed it since.

	Two errors in some versions of the 8390/83901/83902 may not
	be handled correctly: the first is a bug where the RX status bytes
	is missing from the header -- I try to recover first rather than
	resetting the chip (which I do afterwards).

	The second is the 8390 problem with writes to the ethercard
	RAM: the first write may be corrupted if you don't do a read
	first -- I've never seen this corruption happen, but it may
	just be masked by higher level protocols.
	I have put in the read-first code, but it's a frequent
	source of problems...  The timing is really tricky.

	The 3c501 driver isn't complete.  This card severely brain-damaged
	anyway -- you won't notice the performance diffence when it does work.

Please send me email if you do try out the drivers, even if you don't
encounter bugs.

Important defines

EI_DEBUG   Set to the desired numeric debugging level.  Use 3 or
	greater when actively debugging a problem, '1' for a
	casual interest in what's going on, and '0' for normal
	use. (Most of the debugging stuff has been taken out recently,
	so this won't have much effect.)
EI8390	Define (probably in config.site.h) this to the base address
	of your ethernet card.   You will also have to set the base
	address and irq in net/tcp/Space.c.
ETHERLINK1 Define this to the base address of a 3c501 card.  You will
	also have to set the base address and irq in net/tcp/Space.c.