summaryrefslogtreecommitdiffstats
path: root/Documentation/networking
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/networking')
-rw-r--r--Documentation/networking/8139too.txt194
-rw-r--r--Documentation/networking/fore200e.txt55
-rw-r--r--Documentation/networking/tulip.txt244
-rw-r--r--Documentation/networking/wavelan.txt114
4 files changed, 461 insertions, 146 deletions
diff --git a/Documentation/networking/8139too.txt b/Documentation/networking/8139too.txt
new file mode 100644
index 000000000..6a75c7338
--- /dev/null
+++ b/Documentation/networking/8139too.txt
@@ -0,0 +1,194 @@
+
+ "8139too" Fast Ethernet driver for Linux
+ Improved support for RTL-8139 Fast Ethernet adapters
+
+ Copyright 2000 Jeff Garzik <jgarzik@mandrakesoft.com>
+
+
+ Architectures supported (all PCI platforms):
+ x86, Alpha AXP, PowerPC, Sparc64
+
+
+
+
+Disclaimer
+----------
+
+THIS DRIVER IS A DEVELOPMENT RELEASE FOR A DEVELOPMENT KERNEL. DO NOT
+USE IN A PRODUCTION ENVIRONMENT.
+
+DO NOT CONTACT DONALD BECKER FOR SUPPORT OF THIS DRIVER, his driver is
+completely different and maintained independently of the 8139too code base.
+
+
+
+Requirements
+------------
+Kernel 2.3.41 or later.
+A Fast Ethernet adapter containing an RTL8139-based chip.
+
+
+
+Introduction
+------------
+
+The "8139too" Fast Ethernet driver for Linux 2.4.0 is a substantial
+modification of the experimental rtl8139 driver from Donald Becker,
+some versions of which appeared in 2.2.x and 2.3.x kernels. The
+RTL-8139 is a very low-cost Fast Ethernet chip, which makes it very
+popular.
+
+The step from 2.2.x to 2.4.x kernels brings many new features to Linux
+device drivers. Features for MMIO resources, a standard hot-plug API,
+and other interfaces are now becoming requirements, as drivers move
+off the x86 platform. With that in mind, I have begun updating the
+RTL-8139 driver to current 2.3.x (2.4) kernel standards and APIs, and
+fixing the problems that users have been encountering.
+
+
+
+Features of 8139too
+-------------------
+[note - this list intended for people familiar with kernel drivers]
+
+** 100% MMIO, for full speed operation. All users (so far) have
+reported performance increases over their existing RTL drivers.
+
+** Multi-platform support: x86, Alpha, PPC, ...
+
+** Use proper SMP spinlocking, fixing SMP interrupt bugs, making the
+driver portable to non-x86 SMP platforms in the process.
+
+** Use new PCI driver API for seamless, low-maintenance hot-plug support
+
+** Several bugs fixes from original rtl8139 1.08r (October 5, 1999),
+including the very common "transmit timeout" problem.
+
+* Use new resource allocation API, required for hot-plug support
+* Use new register read/write macros
+* initcall support (module_init/exit)
+* vastly improved debug tracing support
+* code formatting in many places for readability
+* use new init_etherdev() facilities
+
+...and probably some other less important changes which I forgot.
+
+
+
+Installation
+------------
+
+OPTION 1: Build inside kernel tree (into kernel image, or as module)
+
+ (overwrite 8139too driver in kernel tree with different version)
+ 1) cp 8139too.c $my_source_tree/drivers/net/8139too.c
+
+OPTION 2: Build outside kernel tree
+
+ Use the included Makefile.
+
+
+
+Tested Adapters
+---------------
+AOpen ALN-325C
+KTI KF-230TX
+KTI KF-230TX/2
+
+(please add your adapter model to this list)
+
+
+
+Status of Platform Support
+--------------------------
+
+(see errata below for details)
+
+x86: tested, stable
+Alpha AXP: tested, stable
+PowerPC: tested, unstable
+Sparc64: not tested
+
+
+
+Special Thanks
+--------------
+The following people contributed invaluable testing time, feedback
+and/or patches during the development of this driver. Thanks to all
+of them.
+
+Donald Becker, Alan Cox, Richard Stallman, Linus Torvalds - inspiration
+
+Alan Cox, Gerard Roudier - insight on posted MMIO writes
+
+Martin Mares - code review
+
+Tigran Aivazian - testing, code review, and a bug fix
+
+Chmouel Boudjnah, Alexander Dietrich, Oleg Drokin,
+James Fidell, Taso Hatzi, Peter K - intrepid test team
+
+And thanks to every supporter free software.
+
+
+
+Known Bugs / Errata / To-Do
+---------------------------
+The following issues are known, and are actively being pursued. Patches
+to resolve these issues is welcome. If a problem occurs which is not in
+the list, please report it. That's why we do beta releases, after all...
+
+
+
+1) Work with Donald to merge fixes and updates into his driver.
+
+2) 2.2.x COMPATIBILITY SUPPORT IS BROKEN. DO NOT USE IT.
+It is included only for enterprising hackers willing to help fix it.
+
+3) PPC platform has stability problems.
+
+4) Sparc64 platform not tested at all.
+
+5) Identify and fix "rx wedge" when ping flooded.
+
+7) N-Way auto-negotiation is known to fail in some cases. This problem
+also occurs in the rtl8139 driver in kernels 2.2.x/2.3.x. Solution:
+Following technique in sunhme and sunbmac, use a kernel timer to
+manually perform autonegotiation in case the network or card cannot do
+it automatically. (patches welcome)
+
+8) Much improved command line / module parameter setup. (patches and
+suggestions welcome)
+
+9) Better documentation. (patches welcome)
+
+10) User-mode (or maybe optional /proc) diagnostics program.
+
+
+
+
+Change History
+--------------
+Version 0.9.3.3.2 - Feb 22, 2000 - second public beta release
+
+* Begin integration of Daniel Kobras' MMIO flush patch (disabled for now)
+* Softnet logic updates to fix bugs and improve performance
+* Dynamic sizing of I/O resources (0x80 for older chips, 0xFF for newer ones)
+* Remove bogus SiS entries from PCI probe table
+* Add support for cards
+ "Delta Electronics 8139 10/100BaseTX"
+ "Addtron Technolgy 8139 10/100BaseTX"
+* Fix major bug with rx ring buffer size (also present in rtl8139.c 1.08r)
+* PCI DMA mapping by Dave Miller
+* Complete rewrite of SMP locking logic
+* Hotplug support
+* Call rtl8139_hw_start from rtl8139_open, and remove duplicated code
+ from rtl8139_open
+* Reset NWay registers to sane defaults on rtl8139_open/hw_start
+* Miscellaneous code cleanup
+
+Version 0.7.0 - Feb 7, 2000 - first public beta release
+
+
+[EOF]
+
diff --git a/Documentation/networking/fore200e.txt b/Documentation/networking/fore200e.txt
new file mode 100644
index 000000000..13ee5327e
--- /dev/null
+++ b/Documentation/networking/fore200e.txt
@@ -0,0 +1,55 @@
+
+Fore PCA-200E/SBA-200E ATM NIC Firmware Copyright Notice
+--------------------------------------------------------
+
+Please read the fore200e_firmware_copyright file present
+in the linux/drivers/atm directory for details and restrictions.
+
+
+Firmware Updates
+----------------
+
+The FORE Systems 200E-series driver is shipped with firmware data being
+uploaded to the ATM adapters at system boot time or at module loading time.
+The supplied firmware images should work with all adapters.
+
+However, if you encounter problems (firmware doesn't start or the driver
+is unable to read PROM data), you may consider trying another firmware
+version. Alternative binary firmware images can be found somewhere on the
+ForeThough CD-ROM supplied with your adapter by FORE Systems.
+
+You can also get the latest firmware images from FORE Systems at
+http://www.fore.com. Register TACTics Online and go to
+the 'software updates' pages. The firmware binaries are part of
+the various ForeThough software distributions.
+
+Notice that different versions of the PCA-200E firmware exist, depending
+on the endianess of the host architecture. The driver is shipped with
+both little and big endian PCA firmware images.
+
+Name and location of the new firmware images can be set at kernel
+configuration time.
+
+
+Driver Rebuilding
+-----------------
+
+1. Copy the new firmware binary files (with .bin, .bin1 or .bin2 suffix)
+ to some directory, such as linux/drivers/atm.
+
+2. Reconfigure your kernel to set the new firmware name and location.
+ Expected pathnames are absolute or relative to the drivers/atm directory.
+
+3. Delete the files drivers/atm/fore200e_pca_fw.[co] and/or fore200e_sba_fw.[co]
+ to ensure that the new firmware will be used when rebuilding the kernel or
+ the module.
+
+4. Rebuild and re-install your kernel or your module.
+
+
+Feedback
+--------
+
+Feedback is welcome. Please send success stories/bug reports/
+patches/improvement/comments/flames to <lizzi@cnam.fr>.
+
diff --git a/Documentation/networking/tulip.txt b/Documentation/networking/tulip.txt
index 4a83d1bf2..ecef178b0 100644
--- a/Documentation/networking/tulip.txt
+++ b/Documentation/networking/tulip.txt
@@ -1,110 +1,144 @@
Tulip Ethernet Card Driver
+ Maintained by Jeff Garzik <jgarzik@mandrakesoft.com>
The Tulip driver is developed by Donald Becker and changed by
-Takashi Manabe. This driver is designed to work with PCI Ethernet
-cards which use the DECchip DC21x4x family. This driver hopefully
-works with all of 1.2.x and 1.3.x kernels, but I tested only
-with 1.2.13, 1.3.39, 1.3.49, 1.3.52, 1.3.57 and later.
-
-Hopefully, the de4x5.c driver will support all cards supported
-by the tulip.c driver. However, the SMC's 9332dst card and some
-cards do not work with the de4x5.c driver. So, if your card is
-not a 9332dst, please try the de4x5.c driver first.
-
-Success List
-============
-
-+-------------------------------------+-----------+-------------+
-|vendor/card |chip |system |
-+-------------------------------------+-----------+-------------+
-|SMC | | |
-| EtherPower 10 PCI(8432T/8432BT) |21040/21041|Pentium |
-+-------------------------------------+-----------+-------------+
-|SMC | | |
-| EtherPower 10/100 PCI(9332DST) |21140 |Pentium/UDB |
-+-------------------------------------+-----------+-------------+
-|DEC | | |
-| EtherWorks 100/10 PCI(DE500-XA) |21140 |Pentium |
-+-------------------------------------+-----------+-------------+
-|DEC | | |
-| EtherWorks 10 PCI(DE450) |21041 |Pentium |
-+-------------------------------------+-----------+-------------+
-|DEC | | |
-| QSILVER's |21040 |UDB |
-+-------------------------------------+-----------+-------------+
-|ZNYX | | |
-| 312 etherarray |21040 |Pentium |
-+-------------------------------------+-----------+-------------+
-|Allied Telesis | | |
-| LA100PCI-T |21140 |Pentium/UDB |
-+-------------------------------------+-----------+-------------+
-|Danpex ('Planet Japan' in Japan?) | | |
-| EN-9400 |21040 |Pentium |
-+-------------------------------------+-----------+-------------+
-|Cogent | | |
-| EM110 |21140 |Pentium |
-+-------------------------------------+-----------+-------------+
-
-Pentium: PCI machine with Pentium CPU
-UDB: Universal Desktop Box(aka Multia) with Alpha 21066 CPU
-
-Known bug(s)
-============
-This driver's media detection is very simple and sometimes
-it causes serious problem. The driver automatically switches
-media when it causes timeout. If you want to specify or to fix
-a media;
-
-- Modify TULIP_PORT in tulip.c, line 33.
-- Uncomment the definition of TULIP_FIX_PORT in tulip.c, line 40.
-
-or
-
-- Use patched ifconfig command and specify 'link='. The patch
- against ifconfig.c in net-tools-1.3.50-BETA6e is included in
- this file.
-
-Thanks
+Takashi Manabe and a cast of thousands.
+
+ This driver is for the Digital "Tulip" Ethernet adapter interface.
+ It should work with most DEC 21*4*-based chips/ethercards, as well as
+ with work-alike chips from Lite-On (PNIC) and Macronix (MXIC) and ASIX.
+
+ The author may be reached as becker@CESDIS.gsfc.nasa.gov, or C/O
+ Center of Excellence in Space Data and Information Sciences
+ Code 930.5, Goddard Space Flight Center, Greenbelt MD 20771
+
+ Additional information available at
+ http://cesdis.gsfc.nasa.gov/linux/drivers/tulip.html
+
+ Theory of Operation
+
+Board Compatibility
+===================
+
+This device driver is designed for the DECchip "Tulip", Digital's
+single-chip ethernet controllers for PCI. Supported members of the family
+are the 21040, 21041, 21140, 21140A, 21142, and 21143. Similar work-alike
+chips from Lite-On, Macronics, ASIX, Compex and other listed below are also
+supported.
+
+These chips are used on at least 140 unique PCI board designs. The great
+number of chips and board designs supported is the reason for the
+driver size and complexity. Almost of the increasing complexity is in the
+board configuration and media selection code. There is very little
+increasing in the operational critical path length.
+
+Board-specific settings
+=======================
+
+PCI bus devices are configured by the system at boot time, so no jumpers
+need to be set on the board. The system BIOS preferably should assign the
+PCI INTA signal to an otherwise unused system IRQ line.
+
+Some boards have EEPROMs tables with default media entry. The factory default
+is usually "autoselect". This should only be overridden when using
+transceiver connections without link beat e.g. 10base2 or AUI, or (rarely!)
+for forcing full-duplex when used with old link partners that do not do
+autonegotiation.
+
+Driver operation
+================
+
+Ring buffers
+------------
+
+The Tulip can use either ring buffers or lists of Tx and Rx descriptors.
+This driver uses statically allocated rings of Rx and Tx descriptors, set at
+compile time by RX/TX_RING_SIZE. This version of the driver allocates skbuffs
+for the Rx ring buffers at open() time and passes the skb->data field to the
+Tulip as receive data buffers. When an incoming frame is less than
+RX_COPYBREAK bytes long, a fresh skbuff is allocated and the frame is
+copied to the new skbuff. When the incoming frame is larger, the skbuff is
+passed directly up the protocol stack and replaced by a newly allocated
+skbuff.
+
+The RX_COPYBREAK value is chosen to trade-off the memory wasted by
+using a full-sized skbuff for small frames vs. the copying costs of larger
+frames. For small frames the copying cost is negligible (esp. considering
+that we are pre-loading the cache with immediately useful header
+information). For large frames the copying cost is non-trivial, and the
+larger copy might flush the cache of useful data. A subtle aspect of this
+choice is that the Tulip only receives into longword aligned buffers, thus
+the IP header at offset 14 isn't longword aligned for further processing.
+Copied frames are put into the new skbuff at an offset of "+2", thus copying
+has the beneficial effect of aligning the IP header and preloading the
+cache.
+
+Synchronization
+---------------
+The driver runs as two independent, single-threaded flows of control. One
+is the send-packet routine, which enforces single-threaded use by the
+dev->tbusy flag. The other thread is the interrupt handler, which is single
+threaded by the hardware and other software.
+
+The send packet thread has partial control over the Tx ring and 'dev->tbusy'
+flag. It sets the tbusy flag whenever it's queuing a Tx packet. If the next
+queue slot is empty, it clears the tbusy flag when finished otherwise it sets
+the 'tp->tx_full' flag.
+
+The interrupt handler has exclusive control over the Rx ring and records stats
+from the Tx ring. (The Tx-done interrupt can't be selectively turned off, so
+we can't avoid the interrupt overhead by having the Tx routine reap the Tx
+stats.) After reaping the stats, it marks the queue entry as empty by setting
+the 'base' to zero. Iff the 'tp->tx_full' flag is set, it clears both the
+tx_full and tbusy flags.
+
+Notes
+=====
+
+Thanks to Duke Kamstra of SMC for long ago providing an EtherPower board.
+Greg LaPolla at Linksys provided PNIC and other Linksys boards.
+Znyx provided a four-port card for testing.
+
+References
+==========
+
+http://cesdis.gsfc.nasa.gov/linux/misc/NWay.html
+http://www.digital.com (search for current 21*4* datasheets and "21X4 SROM")
+http://www.national.com/pf/DP/DP83840A.html
+http://www.asix.com.tw/pmac.htm
+http://www.admtek.com.tw/
+
+Errata
======
-o becker@CESDIS.gsfc.nasa.gov (author of the tulip.c driver)
-o davies@wanton.lkg.dec.com (author of the de4x5.c driver)
-
-o siekas@mailhost.tcs.tulane.edu
-
-o jheiss@calvin.caltech.edu (providing information about smc8432 card)
-o goto@plathome.co.jp (lending me a DE450 card)
-o ted@physics.ucsb.edu
-o pmheuvel@xs4all.nl
-o hjl@lucon.org (EN-9400)
-o niles@axp745.gsfc.nasa.gov (ZNYX312)
-o pkc@scs.carleton.ca (EM110)
-o and testers...
-
------------------------------------------------------------------------
-*** ifconfig.c-dist Wed Jan 17 07:25:36 1996
---- ifconfig.c Tue Apr 9 15:24:25 1996
-***************
-*** 765,770 ****
---- 766,786 ----
- continue;
- }
- ifr.ifr_map.irq = atoi(*spp);
-+ if (ioctl(skfd, SIOCSIFMAP, &ifr) < 0) {
-+ fprintf(stderr, "SIOCSIFMAP: %s\n", strerror(errno));
-+ goterr = 1;
-+ }
-+ spp++;
-+ continue;
-+ }
-+
-+ if (!strcmp(*spp, "link")) {
-+ if (*++spp == NULL) usage();
-+ if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
-+ goterr = 1;
-+ continue;
-+ }
-+ ifr.ifr_map.port = atoi(*spp);
- if (ioctl(skfd, SIOCSIFMAP, &ifr) < 0) {
- fprintf(stderr, "SIOCSIFMAP: %s\n", strerror(errno));
- goterr = 1;
+The old DEC databooks were light on details.
+The 21040 databook claims that CSR13, CSR14, and CSR15 should each be the last
+register of the set CSR12-15 written. Hmmm, now how is that possible?
+
+The DEC SROM format is very badly designed not precisely defined, leading to
+part of the media selection junkheap below. Some boards do not have EEPROM
+media tables and need to be patched up. Worse, other boards use the DEC
+design kit media table when it isn't correct for their board.
+
+We cannot use MII interrupts because there is no defined GPIO pin to attach
+them. The MII transceiver status is polled using an kernel timer.
+
+
+Source tree tour
+----------------
+The following is a list of files comprising the Tulip ethernet driver in
+drivers/net/tulip subdirectory.
+
+21142.c - 21142-specific h/w interaction
+eeprom.c - EEPROM reading and parsing
+interrupt.c - Interrupt handler
+media.c - Media selection and MII support
+pnic.c - PNIC-specific h/w interaction
+timer.c - Main driver timer, and misc h/w timers
+tulip.h - Private driver header
+tulip_core.c - Driver core (a.k.a. where "everything else" goes)
+
+
+
+[EOF]
+
diff --git a/Documentation/networking/wavelan.txt b/Documentation/networking/wavelan.txt
index a4a1f7921..82006e55d 100644
--- a/Documentation/networking/wavelan.txt
+++ b/Documentation/networking/wavelan.txt
@@ -1,41 +1,73 @@
-Sun Jul 2 01:38:33 EST 1995
-
- As the date above certify, this ``readme'' is mostly
-obsolete. Please read release notes and change list in
-driver/net/wavelan.p.h, and consult my web page at :
- http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wavelan.html
-
- Jean <jt@hpl.hp.com>
-
-1. At present the driver autoprobes for a WaveLAN card only at I/O address
- 0x390. The version of the card that I use (NCR) supports four I/O addresses
- (selectable via a pair of DIP switches). If you want the driver to
- autoprobe a different subset of the four valid addresses then you will need
- to edit .../drivers/net/wavelan.c (near line 714) and change the
- initialisation of the `iobase[]' array. Normally, I use a LILO
- configuration file directive to obviate the need for autoprobing entirely,
- a course of action I heartily recommend.
-
-2. By default, the driver uses the Network ID (NWID) stored in the card's
- Parameter Storage Area (PSA). However, the PSA NWID can be overridden by a
- value passed explicitly as the third numeric argument to LILO's "ether="
- directive, either at the LILO prompt at boot time or within LILO's
- configuration file.
- For example, the following line from such a LILO configuration file would
- auto-configure the IRQ value, set the I/O base to 0x390 and set the NWID to
- 0x4321, all on a WaveLAN card labelled "eth0":
-
- ..
- append ="ether=0,0x390,0x4321,eth0"
- ..
-
-3. The driver uses the IRQ stored in the card's PSA.
- To change this you will need to use the configuration/setup software that
- accompanies each WaveLAN device. Yes, the driver should use the value passed
- in via LILO and it will, just as soon as I can work out why that part of the
- code doesn't work :-(.
-
-4. If you encounter any problems send me some email.
-
-Good luck,
-Bruce Janson (bruce@cs.usyd.edu.au)
+ The Wavelan drivers saga
+ ------------------------
+
+ By Jean Tourrilhes <jt@hpl.hp.com>
+
+ The Wavelan is a Radio network adapter designed by
+Lucent. Under this generic name is hidden quite a variety of hardware,
+and many Linux driver to support it.
+ The get the full story on Wireless LANs, please consult :
+ http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
+
+"wavelan" driver (old ISA Wavelan)
+----------------
+ o Config : Network device -> Wireless LAN -> AT&T WaveLAN
+ o Location : .../drivers/net/wavelan*
+ o in-line doc : .../drivers/net/wavelan.p.h
+ o on-line doc :
+ http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wavelan.html
+
+ This is the driver for the ISA version of the first generation
+of the Wavelan, now discontinued. The device is 2 Mb/s, composed of a
+Intel 82586 controler and a Lucent Modem, and is NOT 802.11 compliant.
+ The driver has been tested with the following hardware :
+ o Wavelan ISA 915 MHz (full length ISA card)
+ o Wavelan ISA 915 MHz 2.0 (half length ISA card)
+ o Wavelan ISA 2.4 GHz (full length ISA card, fixed frequency)
+ o Wavelan ISA 2.4 GHz 2.0 (half length ISA card, frequency selectable)
+ o Above cards with the optional DES encryption feature
+
+"wavelan_cs" driver (old Pcmcia Wavelan)
+-------------------
+ o Config : Network device -> PCMCIA network ->
+ Pcmcia Wireless LAN -> AT&T/Lucent WaveLAN
+ o Location : .../drivers/net/pcmcia/wavelan*
+ o in-line doc : .../drivers/net/pcmcia/wavelan_cs.h
+ o on-line doc :
+ http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wavelan.html
+
+ This is the driver for the PCMCIA version of the first
+generation of the Wavelan, now discontinued. The device is 2 Mb/s,
+composed of a Intel 82593 controler (totally different from the 82586)
+and a Lucent Modem, and NOT 802.11 compatible.
+ The driver has been tested with the following hardware :
+ o Wavelan Pcmcia 915 MHz 2.0 (Pcmcia card + separate
+ modem/antenna block)
+ o Wavelan Pcmcia 2.4 GHz 2.0 (Pcmcia card + separate
+ modem/antenna block)
+
+"wvlan_cs" driver (Wavelan IEEE, GPL)
+-----------------
+ o Config : Not yet in kernel
+ o Location : Pcmcia package 3.1.10+
+ o on-line doc : http://www.fasta.fh-dortmund.de/users/andy/wvlan/
+
+ This is the driver for the current generation of Wavelan IEEE,
+which is 802.11 compatible. Depending on version, it is 2 Mb/s or 11
+Mb/s, with or without encryption, all implemented in Lucent specific
+DSP (the Hermes).
+ This is a GPL full source PCMCIA driver (ISA is just a Pcmcia
+card with ISA-Pcmcia bridge).
+
+"wavelan2_cs" driver (Wavelan IEEE, binary)
+--------------------
+ o Config : Not yet in kernel
+ o Location : ftp://sourceforge.org/pcmcia/contrib/
+
+ This driver support exactly the same hardware as the previous
+driver, the main difference is that it is based on a binary library
+and supported by Lucent.
+
+ I hope it clears the confusion ;-)
+
+ Jean