This is the experimental version of the 8390 ethercard driver. 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 package 3c503.c o You'll need to #define EI8390_THICK 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. Make it either first in the probe list or the only driver you compile in. Maybe I should reset the board before looking at it to fix the probe problem. 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). 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.