/* eth16i.c An ICL EtherTeam 16i and 32 EISA ethernet driver for Linux
Written 1994-1999 by Mika Kuoppala
Copyright (C) 1994-1999 by Mika Kuoppala
Based on skeleton.c and heavily on at1700.c by Donald Becker
This software may be used and distributed according to the terms
of the GNU General Public License, incorporated herein by reference.
The author may be reached as miku@iki.fi
This driver supports following cards :
- ICL EtherTeam 16i
- ICL EtherTeam 32 EISA
(Uses true 32 bit transfers rather than 16i compability mode)
Example Module usage:
insmod eth16i.o io=0x2a0 mediatype=bnc
mediatype can be one of the following: bnc,tp,dix,auto,eprom
'auto' will try to autoprobe mediatype.
'eprom' will use whatever type defined in eprom.
I have benchmarked driver with PII/300Mhz as a ftp client
and 486/33Mhz as a ftp server. Top speed was 1128.37 kilobytes/sec.
Sources:
- skeleton.c a sample network driver core for linux,
written by Donald Becker <becker@scyld.com>
- at1700.c a driver for Allied Telesis AT1700, written
by Donald Becker.
- e16iSRV.asm a Netware 3.X Server Driver for ICL EtherTeam16i
written by Markku Viima
- The Fujitsu MB86965 databook.
Author thanks following persons due to their valueble assistance:
Markku Viima (ICL)
Ari Valve (ICL)
Donald Becker
Kurt Huwig <kurt@huwig.de>
Revision history:
Version Date Description
0.01 15.12-94 Initial version (card detection)
0.02 23.01-95 Interrupt is now hooked correctly
0.03 01.02-95 Rewrote initialization part
0.04 07.02-95 Base skeleton done...
Made a few changes to signature checking
to make it a bit reliable.
- fixed bug in tx_buf mapping
- fixed bug in initialization (DLC_EN
wasn't enabled when initialization
was done.)
0.05 08.02-95 If there were more than one packet to send,
transmit was jammed due to invalid
register write...now fixed
0.06 19.02-95 Rewrote interrupt handling
0.07 13.04-95 Wrote EEPROM read routines
Card configuration now set according to
data read from EEPROM
0.08 23.06-95 Wrote part that tries to probe used interface
port if AUTO is selected
0.09 01.09-95 Added module support
0.10 04.09-95 Fixed receive packet allocation to work
with kernels > 1.3.x
0.20 20.09-95 Added support for EtherTeam32 EISA
0.21 17.10-95 Removed the unnecessary extern
init_etherdev() declaration. Some
other cleanups.
0.22 22.02-96 Receive buffer was not flushed
correctly when faulty packet was
received. Now fixed.
0.23 26.02-96 Made resetting the adapter
more reliable.
0.24 27.02-96 Rewrote faulty packet handling in eth16i_rx
0.25 22.05-96 kfree() was missing from cleanup_module.
0.26 11.06-96 Sometimes card was not found by
check_signature(). Now made more reliable.
0.27 23.06-96 Oops. 16 consecutive collisions halted
adapter. Now w