87 lines
3.4 KiB
Plaintext
87 lines
3.4 KiB
Plaintext
|
|
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.
|