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

102 lines
4.7 KiB
Plaintext

This is the current version of the 8390 ethercard driver.
The ether-994 drivers are for 0.99.4 and earlier.
The ether-995 drivers are for 0.99.5.
You should consult the list below for the specific #define for your
ethercard. If you don't have one specific #define the driver will
probe for all supported ethercard types.
Source Header #define to get Supported cards
8390.c 8390.h EI8390 (generic, needed for all)
3c503.c 3c503reg.h EL2 3c503, 3c503/16
ne.c NE2000 NE1000, NE2000, NatSemi, Cabletron
wd.c wd.h WD80x3 WD8003, WD8013, SMC elite
hp.c HPLAN HP LAN adaptors
Notes on each file
INSTALL
The installation directions -- "read this first, uhmmm, second".
GNUmakefile
The 'GNUmakefile' name is "magic". You just put it into the directory
and it is loaded instead of the regular Makefile (which it thenincludes).
Most people should never need to edit the Makefile, just the GNUmakefile.
3c503.c
o You'll need to '#define EI8390_THICK' or EL2_AUI if you are using the AUI port
instead of the thinnet connector. Russ Nelson <nelson@crynwr.com> sent me an
run-time method of selecting between the two, but I haven't put it in yet.
This _may_ generate a spurious error message when transmitting the first
packet, I haven't yet tracked down this bug report.
o If you want to check the shared memory, #define EL2MEMTEST. I don't think
the memory check is worth the effort -- it's missed obvious problems.
o You must jumper the board to use shared memory -- I don't test the
non-shared-memory mode and it's probably broken.
o Thanks to Chance Reschke at USRA <creschke@usra.edu> for providing the
3c503 and anonymous FTP space.
ne.c
o You'll need to #define EI_8BIT if you are using an 8-bit ethercard
such as the NE1000 or Cabletron E10xx. I might someday make a run-time
selection between the NE1000 and NE2000 (right now it screws up the
non-default bus-width) but I don't know how to distinguish the Cabletron
ethercards. I'm hoping to find a general way to identify the board's bus
width, but don't hold your breath.
wd.c
o Thanks to Russ Nelson (nelson@crynwr.com) for loaning me a WD8013.
o The 8013 doesn't work if it's probed by some other driver first: keep
it first in the probe list.
I could reset the board before looking at it to fix the probe problem, but
this involves an outb() which may disturb non-WD8013 devices.
o You _must_ run this board with shared memory enabled. Don't set the
jumper to the no-shared-memory setting.
o The driver now reads the EEPROM setting, so you can use the EEPROM
settings! And there is a new Linux 'wdsetup' program that replaces
MS-DOS 'EZSETUP'!
o You machine may fail to do a soft reboot if the packet buffer shared memory
is mapped in -- the machine might think its a boot PROM (since it
intentionally shares the same memory space as the optional on-board
boot PROM). "Live with it" for now.
o If the packet buffer memory is mapped into a cacheable region it won't work!
It's really easy to this with the map-it-anywhere EEPROM. Check your BIOS
setup.
o If you have an old non-EEPROM wd8003 and need to change the shared memory
address from the default 0xd0000 set WD_SHMEM to the desired address.
hp.c
o This has only been tested with a 27245A, 27247A, and 27250. It doesn't yet
work with the new 27247B!
o Thanks to Chance Reschke at USRA <creschke@usra.edu> for loaning me the
27247A ethercard.
BUGS
The "bogus packet header" is a bug in the 8390. I drop all of
the packets in the ring (usually just one) when this happens.
If you get this more than just occasionally please report it to me.
I don't yet distinguish between the problems with IRQ conflicts and
problems with the ethernet cable not being connected. If you get
a "transmit timed out" message check both! Your ethercard
probably will NOT work without proper termination.
A small number of people report continuous "RX transfer address mismatch"
errors with the NE2000. This is a bug in the 8390, and the reason
most designers use shared memory or design their own packet buffer access
circuitry rather than use what's provided by the 8390. An occasional
"mismatch" message (say, once a week) won't impact performance.
I've fixed most of the spurious "receiver overrun" messages. It
was a bug in the 8390 -- the overrun flag is sometimes set
when the boundary pointer is written. If you still get
isolated overrun errors please send me email.
The 3c501 driver isn't complete. This card is severely brain-damaged
anyway -- you won't notice the performance difference between working
and non-working versions anyway. If this source code is here, it is
only provided for a few people that wanted to write code for their 3c501
cards. Don't send me email about it unless it's a bug fix.