~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/networking/device_drivers/ethernet/3com/3c509.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 =============================================================================
  4 Linux and the 3Com EtherLink III Series Ethercards (driver v1.18c and higher)
  5 =============================================================================
  6 
  7 This file contains the instructions and caveats for v1.18c and higher versions
  8 of the 3c509 driver. You should not use the driver without reading this file.
  9 
 10 release 1.0
 11 
 12 28 February 2002
 13 
 14 Current maintainer (corrections to):
 15   David Ruggiero <jdr@farfalle.com>
 16 
 17 Introduction
 18 ============
 19 
 20 The following are notes and information on using the 3Com EtherLink III series
 21 ethercards in Linux. These cards are commonly known by the most widely-used
 22 card's 3Com model number, 3c509. They are all 10mb/s ISA-bus cards and shouldn't
 23 be (but sometimes are) confused with the similarly-numbered PCI-bus "3c905"
 24 (aka "Vortex" or "Boomerang") series.  Kernel support for the 3c509 family is
 25 provided by the module 3c509.c, which has code to support all of the following
 26 models:
 27 
 28  - 3c509 (original ISA card)
 29  - 3c509B (later revision of the ISA card; supports full-duplex)
 30  - 3c589 (PCMCIA)
 31  - 3c589B (later revision of the 3c589; supports full-duplex)
 32  - 3c579 (EISA)
 33 
 34 Large portions of this documentation were heavily borrowed from the guide
 35 written the original author of the 3c509 driver, Donald Becker. The master
 36 copy of that document, which contains notes on older versions of the driver,
 37 currently resides on Scyld web server: http://www.scyld.com/.
 38 
 39 
 40 Special Driver Features
 41 =======================
 42 
 43 Overriding card settings
 44 
 45 The driver allows boot- or load-time overriding of the card's detected IOADDR,
 46 IRQ, and transceiver settings, although this capability shouldn't generally be
 47 needed except to enable full-duplex mode (see below). An example of the syntax
 48 for LILO parameters for doing this::
 49 
 50     ether=10,0x310,3,0x3c509,eth0
 51 
 52 This configures the first found 3c509 card for IRQ 10, base I/O 0x310, and
 53 transceiver type 3 (10base2). The flag "0x3c509" must be set to avoid conflicts
 54 with other card types when overriding the I/O address. When the driver is
 55 loaded as a module, only the IRQ may be overridden. For example,
 56 setting two cards to IRQ10 and IRQ11 is done by using the irq module
 57 option::
 58 
 59    options 3c509 irq=10,11
 60 
 61 
 62 Full-duplex mode
 63 ================
 64 
 65 The v1.18c driver added support for the 3c509B's full-duplex capabilities.
 66 In order to enable and successfully use full-duplex mode, three conditions
 67 must be met:
 68 
 69 (a) You must have a Etherlink III card model whose hardware supports full-
 70 duplex operations. Currently, the only members of the 3c509 family that are
 71 positively known to support full-duplex are the 3c509B (ISA bus) and 3c589B
 72 (PCMCIA) cards. Cards without the "B" model designation do *not* support
 73 full-duplex mode; these include the original 3c509 (no "B"), the original
 74 3c589, the 3c529 (MCA bus), and the 3c579 (EISA bus).
 75 
 76 (b) You must be using your card's 10baseT transceiver (i.e., the RJ-45
 77 connector), not its AUI (thick-net) or 10base2 (thin-net/coax) interfaces.
 78 AUI and 10base2 network cabling is physically incapable of full-duplex
 79 operation.
 80 
 81 (c) Most importantly, your 3c509B must be connected to a link partner that is
 82 itself full-duplex capable. This is almost certainly one of two things: a full-
 83 duplex-capable  Ethernet switch (*not* a hub), or a full-duplex-capable NIC on
 84 another system that's connected directly to the 3c509B via a crossover cable.
 85 
 86 Full-duplex mode can be enabled using 'ethtool'.
 87 
 88 .. warning::
 89 
 90   Extremely important caution concerning full-duplex mode
 91 
 92   Understand that the 3c509B's hardware's full-duplex support is much more
 93   limited than that provide by more modern network interface cards. Although
 94   at the physical layer of the network it fully supports full-duplex operation,
 95   the card was designed before the current Ethernet auto-negotiation (N-way)
 96   spec was written. This means that the 3c509B family ***cannot and will not
 97   auto-negotiate a full-duplex connection with its link partner under any
 98   circumstances, no matter how it is initialized***. If the full-duplex mode
 99   of the 3c509B is enabled, its link partner will very likely need to be
100   independently _forced_ into full-duplex mode as well; otherwise various nasty
101   failures will occur - at the very least, you'll see massive numbers of packet
102   collisions. This is one of very rare circumstances where disabling auto-
103   negotiation and forcing the duplex mode of a network interface card or switch
104   would ever be necessary or desirable.
105 
106 
107 Available Transceiver Types
108 ===========================
109 
110 For versions of the driver v1.18c and above, the available transceiver types are:
111 
112 == =========================================================================
113 0  transceiver type from EEPROM config (normally 10baseT); force half-duplex
114 1  AUI (thick-net / DB15 connector)
115 2  (undefined)
116 3  10base2 (thin-net == coax / BNC connector)
117 4  10baseT (RJ-45 connector); force half-duplex mode
118 8  transceiver type and duplex mode taken from card's EEPROM config settings
119 12 10baseT (RJ-45 connector); force full-duplex mode
120 == =========================================================================
121 
122 Prior to driver version 1.18c, only transceiver codes 0-4 were supported. Note
123 that the new transceiver codes 8 and 12 are the *only* ones that will enable
124 full-duplex mode, no matter what the card's detected EEPROM settings might be.
125 This insured that merely upgrading the driver from an earlier version would
126 never automatically enable full-duplex mode in an existing installation;
127 it must always be explicitly enabled via one of these code in order to be
128 activated.
129 
130 The transceiver type can be changed using 'ethtool'.
131 
132 
133 Interpretation of error messages and common problems
134 ----------------------------------------------------
135 
136 Error Messages
137 ^^^^^^^^^^^^^^
138 
139 eth0: Infinite loop in interrupt, status 2011.
140 These are "mostly harmless" message indicating that the driver had too much
141 work during that interrupt cycle. With a status of 0x2011 you are receiving
142 packets faster than they can be removed from the card. This should be rare
143 or impossible in normal operation. Possible causes of this error report are:
144 
145    - a "green" mode enabled that slows the processor down when there is no
146      keyboard activity.
147 
148    - some other device or device driver hogging the bus or disabling interrupts.
149      Check /proc/interrupts for excessive interrupt counts. The timer tick
150      interrupt should always be incrementing faster than the others.
151 
152 No received packets
153 ^^^^^^^^^^^^^^^^^^^
154 
155 If a 3c509, 3c562 or 3c589 can successfully transmit packets, but never
156 receives packets (as reported by /proc/net/dev or 'ifconfig') you likely
157 have an interrupt line problem. Check /proc/interrupts to verify that the
158 card is actually generating interrupts. If the interrupt count is not
159 increasing you likely have a physical conflict with two devices trying to
160 use the same ISA IRQ line. The common conflict is with a sound card on IRQ10
161 or IRQ5, and the easiest solution is to move the 3c509 to a different
162 interrupt line. If the device is receiving packets but 'ping' doesn't work,
163 you have a routing problem.
164 
165 Tx Carrier Errors Reported in /proc/net/dev
166 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
167 
168 
169 If an EtherLink III appears to transmit packets, but the "Tx carrier errors"
170 field in /proc/net/dev increments as quickly as the Tx packet count, you
171 likely have an unterminated network or the incorrect media transceiver selected.
172 
173 3c509B card is not detected on machines with an ISA PnP BIOS.
174 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
175 
176 While the updated driver works with most PnP BIOS programs, it does not work
177 with all. This can be fixed by disabling PnP support using the 3Com-supplied
178 setup program.
179 
180 3c509 card is not detected on overclocked machines
181 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
182 
183 Increase the delay time in id_read_eeprom() from the current value, 500,
184 to an absurdly high value, such as 5000.
185 
186 
187 Decoding Status and Error Messages
188 ----------------------------------
189 
190 
191 The bits in the main status register are:
192 
193 =====   ======================================
194 value   description
195 =====   ======================================
196 0x01    Interrupt latch
197 0x02    Tx overrun, or Rx underrun
198 0x04    Tx complete
199 0x08    Tx FIFO room available
200 0x10    A complete Rx packet has arrived
201 0x20    A Rx packet has started to arrive
202 0x40    The driver has requested an interrupt
203 0x80    Statistics counter nearly full
204 =====   ======================================
205 
206 The bits in the transmit (Tx) status word are:
207 
208 =====   ============================================
209 value   description
210 =====   ============================================
211 0x02    Out-of-window collision.
212 0x04    Status stack overflow (normally impossible).
213 0x08    16 collisions.
214 0x10    Tx underrun (not enough PCI bus bandwidth).
215 0x20    Tx jabber.
216 0x40    Tx interrupt requested.
217 0x80    Status is valid (this should always be set).
218 =====   ============================================
219 
220 
221 When a transmit error occurs the driver produces a status message such as::
222 
223    eth0: Transmit error, Tx status register 82
224 
225 The two values typically seen here are:
226 
227 0x82
228 ^^^^
229 
230 Out of window collision. This typically occurs when some other Ethernet
231 host is incorrectly set to full duplex on a half duplex network.
232 
233 0x88
234 ^^^^
235 
236 16 collisions. This typically occurs when the network is exceptionally busy
237 or when another host doesn't correctly back off after a collision. If this
238 error is mixed with 0x82 errors it is the result of a host incorrectly set
239 to full duplex (see above).
240 
241 Both of these errors are the result of network problems that should be
242 corrected. They do not represent driver malfunction.
243 
244 
245 Revision history (this file)
246 ============================
247 
248 28Feb02 v1.0  DR   New; major portions based on Becker original 3c509 docs
249 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php