Linux and the 3Com EtherLink III Series Ethercards (driver v1.18c and higher)
----------------------------------------------------------------------------

This file contains the instructions and caveats for v1.18c and higher versions
of the 3c509 driver. You should not use the driver without reading this file.

release 1.0
28 February 2002
Current maintainer (corrections to):
  David Ruggiero <jdr@farfalle.com>

----------------------------------------------------------------------------

(0) Introduction

The following are notes and information on using the 3Com EtherLink III series
ethercards in Linux. These cards are commonly known by the most widely-used
card's 3Com model number, 3c509. They are all 10mb/s ISA-bus cards and shouldn't
be (but sometimes are) confused with the similarly-numbered PCI-bus "3c905"
(aka "Vortex" or "Boomerang") series.  Kernel support for the 3c509 family is
provided by the module 3c509.c, which has code to support all of the following
models:

  3c509 (original ISA card)
  3c509B (later revision of the ISA card; supports full-duplex)
  3c589 (PCMCIA)
  3c589B (later revision of the 3c589; supports full-duplex)
  3c529 (MCA)
  3c579 (EISA)

Large portions of this documentation were heavily borrowed from the guide
written the original author of the 3c509 driver, Donald Becker. The master
copy of that document, which contains notes on older versions of the driver,
currently resides on Scyld web server: http://www.scyld.com/network/3c509.html.


(1) Special Driver Features

Overriding card settings

The driver allows boot- or load-time overriding of the card's detected IOADDR,
IRQ, and transceiver settings, although this capability shouldn't generally be
needed except to enable full-duplex mode (see below). An example of the syntax
for LILO parameters for doing this:

    ether=10,0x310,3,0x3c509,eth0 

This configures the first found 3c509 card for IRQ 10, base I/O 0x310, and
transceiver type 3 (10base2). The flag "0x3c509" must be set to avoid conflicts
with other card types when overriding the I/O address. When the driver is
loaded as a module, only the IRQ may be overridden. For example,
setting two cards to IRQ10 and IRQ11 is done by using the irq module
option:

   options 3c509 irq=10,11


(2) Full-duplex mode

The v1.18c driver added support for the 3c509B's full-duplex capabilities.
In order to enable and successfully use full-duplex mode, three conditions
must be met: 

(a) You must have a Etherlink III card model whose hardware supports full-
duplex operations. Currently, the only members of the 3c509 family that are
positively known to support full-duplex are the 3c509B (ISA bus) and 3c589B
(PCMCIA) cards. Cards without the "B" model designation do *not* support
full-duplex mode; these include the original 3c509 (no "B"), the original
3c589, the 3c529 (MCA bus), and the 3c579 (EISA bus).

(b) You must be using your card's 10baseT transceiver (i.e., the RJ-45
connector), not its AUI (thick-net) or 10base2 (thin-net/coax) interfaces.
AUI and 10base2 network cabling is physically incapable of full-duplex
operation.

(c) Most importantly, your 3c509B must be connected to a link partner that is
itself full-duplex capable. This is almost certainly one of two things: a full-
duplex-capable  Ethernet switch (*not* a hub), or a full-duplex-capable NIC on
another system that's connected directly to the 3c509B via a crossover cable.

Full-duplex mode can be enabled using 'ethtool'.
 
/////Extremely important caution concerning full-duplex mode/////
Understand that the 3c509B's hardware's full-duplex support is much more
limited than that provide by more modern network interface cards. Although
at the physical layer of the network it fully supports full-duplex operation,
the card was designed before the current Ethernet auto-negotiation (N-way)
spec was written. This means that the 3c509B family ***cannot and will not
auto-negotiate a full-duplex connection with its link partner under any
circumstances, no matter how it is initialized***. If the full-duplex mode
of the 3c509B is enabled, its link partner will very likely need to be
independently _forced_ into full-duplex mode as well; otherwise various nasty
failures will occur - at the very least, you'll see massive numbers of packet
collisions. This is one of very rare circumstances where disabling auto-
negotiation and forcing the duplex mode of a network interface card or switch
would ever be necessary or desirable.


(3) Available Transceiver Types

For versions of the driver v1.18c and above, the available transceiver types are:
 
0  transceiver type from EEPROM config (normally 10baseT); force half-duplex
1  AUI (thick-net / DB15 connector)
2  (undefined)
3  10base2 (thin-net == coax / BNC connector)
4  10baseT (RJ-45 connector); force half-duplex mode
8  transceiver type and duplex mode taken from card's EEPROM config settings
12 10baseT (RJ-45 connector); force full-duplex mode

Prior to driver version 1.18c, only transceiver codes 0-4 were supported. Note
that the new transceiver codes 8 and 12 are the *only* ones that will enable
full-duplex mode, no matter what the card's detected EEPROM settings might be.
This insured that merely upgrading the driver from an earlier version would
never automatically enable full-duplex mode in an existing installation;
it must always be explicitly enabled via one of these code in order to be
activated.

The transceiver type can be changed using 'ethtool'.
  

(4a) Interpretation of error messages and common problems

Error Messages

eth0: Infinite loop in interrupt, status 2011. 
These are "mostly harmless" message indicating that the driver had too much
work during that interrupt cycle. With a status of 0x2011 you are receiving
packets faster than they can be removed from the card. This should be rare
or impossible in normal operation. Possible causes of this error report are:
 
   - a "green" mode enabled that slows the processor down when there is no
     keyboard activity. 

   - some other device or device driver hogging the bus or disabling interrupts.
     Check /proc/interrupts for excessive interrupt counts. The timer tick
     interrupt should always be incrementing faster than the others. 

No received packets 
If a 3c509, 3c562 or 3c589 can successfully transmit packets, but never
receives packets (as reported by /proc/net/dev or 'ifconfig') you likely
have an interrupt line problem. Check /proc/interrupts to verify that the
card is actually generating interrupts. If the interrupt count is not
increasing you likely have a physical conflict with two devices trying to
use the same ISA IRQ line. The common conflict is with a sound card on IRQ10
or IRQ5, and the easiest solution is to move the 3c509 to a different
interrupt line. If the device is receiving packets but 'ping' doesn't work,
you have a routing problem.

Tx Carrier Errors Reported in /proc/net/dev 
If an EtherLink III appears to transmit packets, but the "Tx carrier errors"
field in /proc/net/dev increments as quickly as the Tx packet count, you
likely have an unterminated network or the incorrect media transceiver selected. 

3c509B card is not detected on machines with an ISA PnP BIOS. 
While the updated driver works with most PnP BIOS programs, it does not work
with all. This can be fixed by disabling PnP support using the 3Com-supplied
setup program. 

3c509 card is not detected on overclocked machines 
Increase the delay time in id_read_eeprom() from the current value, 500,
to an absurdly high value, such as 5000. 


(4b) Decoding Status and Error Messages

The bits in the main status register are: 

value 	description
0x01 	Interrupt latch
0x02 	Tx overrun, or Rx underrun
0x04 	Tx complete
0x08 	Tx FIFO room available
0x10 	A complete Rx packet has arrived
0x20 	A Rx packet has started to arrive
0x40 	The driver has requested an interrupt
0x80 	Statistics counter nearly full

The bits in the transmit (Tx) status word are: 

value 	description
0x02 	Out-of-window collision.
0x04 	Status stack overflow (normally impossible).
0x08 	16 collisions.
0x10 	Tx underrun (not enough PCI bus bandwidth).
0x20 	Tx jabber.
0x40 	Tx interrupt requested.
0x80 	Status is valid (this should always be set).


When a transmit error occurs the driver produces a status message such as 

   eth0: Transmit error, Tx status register 82

The two values typically seen here are:

0x82 
Out of window collision. This typically occurs when some other Ethernet
host is incorrectly set to full duplex on a half duplex network. 

0x88 
16 collisions. This typically occurs when the network is exceptionally busy
or when another host doesn't correctly back off after a collision. If this
error is mixed with 0x82 errors it is the result of a host incorrectly set
to full duplex (see above).

Both of these errors are the result of network problems that should be
corrected. They do not represent driver malfunction.


(5) Revision history (this file)

28Feb02 v1.0  DR   New; major portions based on Becker original 3c509 docs

