Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

docs: networking: device drivers: convert 3com/3c509.txt to ReST

- add SPDX header;
- adjust titles and chapters, adding proper markups;
- mark code blocks and literals as such;
- add notes markups;
- mark tables as such;
- adjust identation, whitespaces and blank lines where needed;
- add to networking/index.rst.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Mauro Carvalho Chehab and committed by
David S. Miller
c79773e8 0046db09

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