1132db935SJakub Kicinski.. SPDX-License-Identifier: GPL-2.0 2132db935SJakub Kicinski 3132db935SJakub Kicinski========================= 4132db935SJakub Kicinski3Com Vortex device driver 5132db935SJakub Kicinski========================= 6132db935SJakub Kicinski 7132db935SJakub KicinskiAndrew Morton 8132db935SJakub Kicinski 9132db935SJakub Kicinski30 April 2000 10132db935SJakub Kicinski 11132db935SJakub Kicinski 12132db935SJakub KicinskiThis document describes the usage and errata of the 3Com "Vortex" device 13132db935SJakub Kicinskidriver for Linux, 3c59x.c. 14132db935SJakub Kicinski 15132db935SJakub KicinskiThe driver was written by Donald Becker <becker@scyld.com> 16132db935SJakub Kicinski 17132db935SJakub KicinskiDon is no longer the prime maintainer of this version of the driver. 18132db935SJakub KicinskiPlease report problems to one or more of: 19132db935SJakub Kicinski 20132db935SJakub Kicinski- Andrew Morton 21132db935SJakub Kicinski- Netdev mailing list <netdev@vger.kernel.org> 22132db935SJakub Kicinski- Linux kernel mailing list <linux-kernel@vger.kernel.org> 23132db935SJakub Kicinski 24132db935SJakub KicinskiPlease note the 'Reporting and Diagnosing Problems' section at the end 25132db935SJakub Kicinskiof this file. 26132db935SJakub Kicinski 27132db935SJakub Kicinski 28132db935SJakub KicinskiSince kernel 2.3.99-pre6, this driver incorporates the support for the 29132db935SJakub Kicinski3c575-series Cardbus cards which used to be handled by 3c575_cb.c. 30132db935SJakub Kicinski 31132db935SJakub KicinskiThis driver supports the following hardware: 32132db935SJakub Kicinski 33132db935SJakub Kicinski - 3c590 Vortex 10Mbps 34132db935SJakub Kicinski - 3c592 EISA 10Mbps Demon/Vortex 35132db935SJakub Kicinski - 3c597 EISA Fast Demon/Vortex 36132db935SJakub Kicinski - 3c595 Vortex 100baseTx 37132db935SJakub Kicinski - 3c595 Vortex 100baseT4 38132db935SJakub Kicinski - 3c595 Vortex 100base-MII 39132db935SJakub Kicinski - 3c900 Boomerang 10baseT 40132db935SJakub Kicinski - 3c900 Boomerang 10Mbps Combo 41132db935SJakub Kicinski - 3c900 Cyclone 10Mbps TPO 42132db935SJakub Kicinski - 3c900 Cyclone 10Mbps Combo 43132db935SJakub Kicinski - 3c900 Cyclone 10Mbps TPC 44132db935SJakub Kicinski - 3c900B-FL Cyclone 10base-FL 45132db935SJakub Kicinski - 3c905 Boomerang 100baseTx 46132db935SJakub Kicinski - 3c905 Boomerang 100baseT4 47132db935SJakub Kicinski - 3c905B Cyclone 100baseTx 48132db935SJakub Kicinski - 3c905B Cyclone 10/100/BNC 49132db935SJakub Kicinski - 3c905B-FX Cyclone 100baseFx 50132db935SJakub Kicinski - 3c905C Tornado 51132db935SJakub Kicinski - 3c920B-EMB-WNM (ATI Radeon 9100 IGP) 52132db935SJakub Kicinski - 3c980 Cyclone 53132db935SJakub Kicinski - 3c980C Python-T 54132db935SJakub Kicinski - 3cSOHO100-TX Hurricane 55132db935SJakub Kicinski - 3c555 Laptop Hurricane 56132db935SJakub Kicinski - 3c556 Laptop Tornado 57132db935SJakub Kicinski - 3c556B Laptop Hurricane 58132db935SJakub Kicinski - 3c575 [Megahertz] 10/100 LAN CardBus 59132db935SJakub Kicinski - 3c575 Boomerang CardBus 60132db935SJakub Kicinski - 3CCFE575BT Cyclone CardBus 61132db935SJakub Kicinski - 3CCFE575CT Tornado CardBus 62132db935SJakub Kicinski - 3CCFE656 Cyclone CardBus 63132db935SJakub Kicinski - 3CCFEM656B Cyclone+Winmodem CardBus 64132db935SJakub Kicinski - 3CXFEM656C Tornado+Winmodem CardBus 65132db935SJakub Kicinski - 3c450 HomePNA Tornado 66132db935SJakub Kicinski - 3c920 Tornado 67132db935SJakub Kicinski - 3c982 Hydra Dual Port A 68132db935SJakub Kicinski - 3c982 Hydra Dual Port B 69132db935SJakub Kicinski - 3c905B-T4 70132db935SJakub Kicinski - 3c920B-EMB-WNM Tornado 71132db935SJakub Kicinski 72132db935SJakub KicinskiModule parameters 73132db935SJakub Kicinski================= 74132db935SJakub Kicinski 75132db935SJakub KicinskiThere are several parameters which may be provided to the driver when 76132db935SJakub Kicinskiits module is loaded. These are usually placed in ``/etc/modprobe.d/*.conf`` 77132db935SJakub Kicinskiconfiguration files. Example:: 78132db935SJakub Kicinski 79132db935SJakub Kicinski options 3c59x debug=3 rx_copybreak=300 80132db935SJakub Kicinski 81132db935SJakub KicinskiIf you are using the PCMCIA tools (cardmgr) then the options may be 82132db935SJakub Kicinskiplaced in /etc/pcmcia/config.opts:: 83132db935SJakub Kicinski 84132db935SJakub Kicinski module "3c59x" opts "debug=3 rx_copybreak=300" 85132db935SJakub Kicinski 86132db935SJakub Kicinski 87132db935SJakub KicinskiThe supported parameters are: 88132db935SJakub Kicinski 89132db935SJakub Kicinskidebug=N 90132db935SJakub Kicinski 91132db935SJakub Kicinski Where N is a number from 0 to 7. Anything above 3 produces a lot 92132db935SJakub Kicinski of output in your system logs. debug=1 is default. 93132db935SJakub Kicinski 94132db935SJakub Kicinskioptions=N1,N2,N3,... 95132db935SJakub Kicinski 96132db935SJakub Kicinski Each number in the list provides an option to the corresponding 97132db935SJakub Kicinski network card. So if you have two 3c905's and you wish to provide 98132db935SJakub Kicinski them with option 0x204 you would use:: 99132db935SJakub Kicinski 100132db935SJakub Kicinski options=0x204,0x204 101132db935SJakub Kicinski 102132db935SJakub Kicinski The individual options are composed of a number of bitfields which 103132db935SJakub Kicinski have the following meanings: 104132db935SJakub Kicinski 105132db935SJakub Kicinski Possible media type settings 106132db935SJakub Kicinski 107132db935SJakub Kicinski == ================================= 108132db935SJakub Kicinski 0 10baseT 109132db935SJakub Kicinski 1 10Mbs AUI 110132db935SJakub Kicinski 2 undefined 111132db935SJakub Kicinski 3 10base2 (BNC) 112132db935SJakub Kicinski 4 100base-TX 113132db935SJakub Kicinski 5 100base-FX 114132db935SJakub Kicinski 6 MII (Media Independent Interface) 115132db935SJakub Kicinski 7 Use default setting from EEPROM 116132db935SJakub Kicinski 8 Autonegotiate 117132db935SJakub Kicinski 9 External MII 118132db935SJakub Kicinski 10 Use default setting from EEPROM 119132db935SJakub Kicinski == ================================= 120132db935SJakub Kicinski 121132db935SJakub Kicinski When generating a value for the 'options' setting, the above media 122132db935SJakub Kicinski selection values may be OR'ed (or added to) the following: 123132db935SJakub Kicinski 124132db935SJakub Kicinski ====== ============================================= 125132db935SJakub Kicinski 0x8000 Set driver debugging level to 7 126132db935SJakub Kicinski 0x4000 Set driver debugging level to 2 127132db935SJakub Kicinski 0x0400 Enable Wake-on-LAN 128132db935SJakub Kicinski 0x0200 Force full duplex mode. 129132db935SJakub Kicinski 0x0010 Bus-master enable bit (Old Vortex cards only) 130132db935SJakub Kicinski ====== ============================================= 131132db935SJakub Kicinski 132132db935SJakub Kicinski For example:: 133132db935SJakub Kicinski 134132db935SJakub Kicinski insmod 3c59x options=0x204 135132db935SJakub Kicinski 136132db935SJakub Kicinski will force full-duplex 100base-TX, rather than allowing the usual 137132db935SJakub Kicinski autonegotiation. 138132db935SJakub Kicinski 139132db935SJakub Kicinskiglobal_options=N 140132db935SJakub Kicinski 141132db935SJakub Kicinski Sets the ``options`` parameter for all 3c59x NICs in the machine. 142132db935SJakub Kicinski Entries in the ``options`` array above will override any setting of 143132db935SJakub Kicinski this. 144132db935SJakub Kicinski 145132db935SJakub Kicinskifull_duplex=N1,N2,N3... 146132db935SJakub Kicinski 147132db935SJakub Kicinski Similar to bit 9 of 'options'. Forces the corresponding card into 148132db935SJakub Kicinski full-duplex mode. Please use this in preference to the ``options`` 149132db935SJakub Kicinski parameter. 150132db935SJakub Kicinski 151132db935SJakub Kicinski In fact, please don't use this at all! You're better off getting 152132db935SJakub Kicinski autonegotiation working properly. 153132db935SJakub Kicinski 154132db935SJakub Kicinskiglobal_full_duplex=N1 155132db935SJakub Kicinski 156132db935SJakub Kicinski Sets full duplex mode for all 3c59x NICs in the machine. Entries 157132db935SJakub Kicinski in the ``full_duplex`` array above will override any setting of this. 158132db935SJakub Kicinski 159132db935SJakub Kicinskiflow_ctrl=N1,N2,N3... 160132db935SJakub Kicinski 161132db935SJakub Kicinski Use 802.3x MAC-layer flow control. The 3com cards only support the 162132db935SJakub Kicinski PAUSE command, which means that they will stop sending packets for a 163132db935SJakub Kicinski short period if they receive a PAUSE frame from the link partner. 164132db935SJakub Kicinski 165132db935SJakub Kicinski The driver only allows flow control on a link which is operating in 166132db935SJakub Kicinski full duplex mode. 167132db935SJakub Kicinski 168132db935SJakub Kicinski This feature does not appear to work on the 3c905 - only 3c905B and 169132db935SJakub Kicinski 3c905C have been tested. 170132db935SJakub Kicinski 171132db935SJakub Kicinski The 3com cards appear to only respond to PAUSE frames which are 172132db935SJakub Kicinski sent to the reserved destination address of 01:80:c2:00:00:01. They 173132db935SJakub Kicinski do not honour PAUSE frames which are sent to the station MAC address. 174132db935SJakub Kicinski 175132db935SJakub Kicinskirx_copybreak=M 176132db935SJakub Kicinski 177132db935SJakub Kicinski The driver preallocates 32 full-sized (1536 byte) network buffers 178132db935SJakub Kicinski for receiving. When a packet arrives, the driver has to decide 179132db935SJakub Kicinski whether to leave the packet in its full-sized buffer, or to allocate 180132db935SJakub Kicinski a smaller buffer and copy the packet across into it. 181132db935SJakub Kicinski 182132db935SJakub Kicinski This is a speed/space tradeoff. 183132db935SJakub Kicinski 184132db935SJakub Kicinski The value of rx_copybreak is used to decide when to make the copy. 185132db935SJakub Kicinski If the packet size is less than rx_copybreak, the packet is copied. 186132db935SJakub Kicinski The default value for rx_copybreak is 200 bytes. 187132db935SJakub Kicinski 188132db935SJakub Kicinskimax_interrupt_work=N 189132db935SJakub Kicinski 190132db935SJakub Kicinski The driver's interrupt service routine can handle many receive and 191132db935SJakub Kicinski transmit packets in a single invocation. It does this in a loop. 192132db935SJakub Kicinski The value of max_interrupt_work governs how many times the interrupt 193132db935SJakub Kicinski service routine will loop. The default value is 32 loops. If this 194132db935SJakub Kicinski is exceeded the interrupt service routine gives up and generates a 195132db935SJakub Kicinski warning message "eth0: Too much work in interrupt". 196132db935SJakub Kicinski 197132db935SJakub Kicinskihw_checksums=N1,N2,N3,... 198132db935SJakub Kicinski 199132db935SJakub Kicinski Recent 3com NICs are able to generate IPv4, TCP and UDP checksums 200132db935SJakub Kicinski in hardware. Linux has used the Rx checksumming for a long time. 201132db935SJakub Kicinski The "zero copy" patch which is planned for the 2.4 kernel series 202132db935SJakub Kicinski allows you to make use of the NIC's DMA scatter/gather and transmit 203132db935SJakub Kicinski checksumming as well. 204132db935SJakub Kicinski 205132db935SJakub Kicinski The driver is set up so that, when the zerocopy patch is applied, 206132db935SJakub Kicinski all Tornado and Cyclone devices will use S/G and Tx checksums. 207132db935SJakub Kicinski 208132db935SJakub Kicinski This module parameter has been provided so you can override this 209132db935SJakub Kicinski decision. If you think that Tx checksums are causing a problem, you 210132db935SJakub Kicinski may disable the feature with ``hw_checksums=0``. 211132db935SJakub Kicinski 212132db935SJakub Kicinski If you think your NIC should be performing Tx checksumming and the 213132db935SJakub Kicinski driver isn't enabling it, you can force the use of hardware Tx 214132db935SJakub Kicinski checksumming with ``hw_checksums=1``. 215132db935SJakub Kicinski 216132db935SJakub Kicinski The driver drops a message in the logfiles to indicate whether or 217132db935SJakub Kicinski not it is using hardware scatter/gather and hardware Tx checksums. 218132db935SJakub Kicinski 219132db935SJakub Kicinski Scatter/gather and hardware checksums provide considerable 220132db935SJakub Kicinski performance improvement for the sendfile() system call, but a small 221132db935SJakub Kicinski decrease in throughput for send(). There is no effect upon receive 222132db935SJakub Kicinski efficiency. 223132db935SJakub Kicinski 224132db935SJakub Kicinskicompaq_ioaddr=N, 225132db935SJakub Kicinskicompaq_irq=N, 226132db935SJakub Kicinskicompaq_device_id=N 227132db935SJakub Kicinski 228132db935SJakub Kicinski "Variables to work-around the Compaq PCI BIOS32 problem".... 229132db935SJakub Kicinski 230132db935SJakub Kicinskiwatchdog=N 231132db935SJakub Kicinski 232132db935SJakub Kicinski Sets the time duration (in milliseconds) after which the kernel 233132db935SJakub Kicinski decides that the transmitter has become stuck and needs to be reset. 234132db935SJakub Kicinski This is mainly for debugging purposes, although it may be advantageous 235132db935SJakub Kicinski to increase this value on LANs which have very high collision rates. 236132db935SJakub Kicinski The default value is 5000 (5.0 seconds). 237132db935SJakub Kicinski 238132db935SJakub Kicinskienable_wol=N1,N2,N3,... 239132db935SJakub Kicinski 240132db935SJakub Kicinski Enable Wake-on-LAN support for the relevant interface. Donald 241132db935SJakub Kicinski Becker's ``ether-wake`` application may be used to wake suspended 242132db935SJakub Kicinski machines. 243132db935SJakub Kicinski 244132db935SJakub Kicinski Also enables the NIC's power management support. 245132db935SJakub Kicinski 246132db935SJakub Kicinskiglobal_enable_wol=N 247132db935SJakub Kicinski 248132db935SJakub Kicinski Sets enable_wol mode for all 3c59x NICs in the machine. Entries in 249132db935SJakub Kicinski the ``enable_wol`` array above will override any setting of this. 250132db935SJakub Kicinski 251132db935SJakub KicinskiMedia selection 252132db935SJakub Kicinski--------------- 253132db935SJakub Kicinski 254132db935SJakub KicinskiA number of the older NICs such as the 3c590 and 3c900 series have 255132db935SJakub Kicinski10base2 and AUI interfaces. 256132db935SJakub Kicinski 257*a266ef69SRandy DunlapPrior to January, 2001 this driver would autoselect the 10base2 or AUI 258132db935SJakub Kicinskiport if it didn't detect activity on the 10baseT port. It would then 259132db935SJakub Kicinskiget stuck on the 10base2 port and a driver reload was necessary to 260132db935SJakub Kicinskiswitch back to 10baseT. This behaviour could not be prevented with a 261132db935SJakub Kicinskimodule option override. 262132db935SJakub Kicinski 263132db935SJakub KicinskiLater (current) versions of the driver _do_ support locking of the 264132db935SJakub Kicinskimedia type. So if you load the driver module with 265132db935SJakub Kicinski 266132db935SJakub Kicinski modprobe 3c59x options=0 267132db935SJakub Kicinski 268132db935SJakub Kicinskiit will permanently select the 10baseT port. Automatic selection of 269132db935SJakub Kicinskiother media types does not occur. 270132db935SJakub Kicinski 271132db935SJakub Kicinski 272132db935SJakub KicinskiTransmit error, Tx status register 82 273132db935SJakub Kicinski------------------------------------- 274132db935SJakub Kicinski 275132db935SJakub KicinskiThis is a common error which is almost always caused by another host on 276132db935SJakub Kicinskithe same network being in full-duplex mode, while this host is in 277132db935SJakub Kicinskihalf-duplex mode. You need to find that other host and make it run in 278132db935SJakub Kicinskihalf-duplex mode or fix this host to run in full-duplex mode. 279132db935SJakub Kicinski 280132db935SJakub KicinskiAs a last resort, you can force the 3c59x driver into full-duplex mode 281132db935SJakub Kicinskiwith 282132db935SJakub Kicinski 283132db935SJakub Kicinski options 3c59x full_duplex=1 284132db935SJakub Kicinski 285132db935SJakub Kicinskibut this has to be viewed as a workaround for broken network gear and 286132db935SJakub Kicinskishould only really be used for equipment which cannot autonegotiate. 287132db935SJakub Kicinski 288132db935SJakub Kicinski 289132db935SJakub KicinskiAdditional resources 290132db935SJakub Kicinski-------------------- 291132db935SJakub Kicinski 292132db935SJakub KicinskiDetails of the device driver implementation are at the top of the source file. 293132db935SJakub Kicinski 294132db935SJakub KicinskiAdditional documentation is available at Don Becker's Linux Drivers site: 295132db935SJakub Kicinski 296132db935SJakub Kicinski http://www.scyld.com/vortex.html 297132db935SJakub Kicinski 298132db935SJakub KicinskiDonald Becker's driver development site: 299132db935SJakub Kicinski 300132db935SJakub Kicinski http://www.scyld.com/network.html 301132db935SJakub Kicinski 302132db935SJakub KicinskiDonald's vortex-diag program is useful for inspecting the NIC's state: 303132db935SJakub Kicinski 304132db935SJakub Kicinski http://www.scyld.com/ethercard_diag.html 305132db935SJakub Kicinski 306132db935SJakub KicinskiDonald's mii-diag program may be used for inspecting and manipulating 307132db935SJakub Kicinskithe NIC's Media Independent Interface subsystem: 308132db935SJakub Kicinski 309132db935SJakub Kicinski http://www.scyld.com/ethercard_diag.html#mii-diag 310132db935SJakub Kicinski 311132db935SJakub KicinskiDonald's wake-on-LAN page: 312132db935SJakub Kicinski 313132db935SJakub Kicinski http://www.scyld.com/wakeonlan.html 314132db935SJakub Kicinski 315132db935SJakub Kicinski3Com's DOS-based application for setting up the NICs EEPROMs: 316132db935SJakub Kicinski 317132db935SJakub Kicinski ftp://ftp.3com.com/pub/nic/3c90x/3c90xx2.exe 318132db935SJakub Kicinski 319132db935SJakub Kicinski 320132db935SJakub KicinskiAutonegotiation notes 321132db935SJakub Kicinski--------------------- 322132db935SJakub Kicinski 323132db935SJakub Kicinski The driver uses a one-minute heartbeat for adapting to changes in 324132db935SJakub Kicinski the external LAN environment if link is up and 5 seconds if link is down. 325132db935SJakub Kicinski This means that when, for example, a machine is unplugged from a hubbed 326132db935SJakub Kicinski 10baseT LAN plugged into a switched 100baseT LAN, the throughput 327132db935SJakub Kicinski will be quite dreadful for up to sixty seconds. Be patient. 328132db935SJakub Kicinski 329132db935SJakub Kicinski Cisco interoperability note from Walter Wong <wcw+@CMU.EDU>: 330132db935SJakub Kicinski 331132db935SJakub Kicinski On a side note, adding HAS_NWAY seems to share a problem with the 332132db935SJakub Kicinski Cisco 6509 switch. Specifically, you need to change the spanning 333132db935SJakub Kicinski tree parameter for the port the machine is plugged into to 'portfast' 334132db935SJakub Kicinski mode. Otherwise, the negotiation fails. This has been an issue 335132db935SJakub Kicinski we've noticed for a while but haven't had the time to track down. 336132db935SJakub Kicinski 337132db935SJakub Kicinski Cisco switches (Jeff Busch <jbusch@deja.com>) 338132db935SJakub Kicinski 339132db935SJakub Kicinski My "standard config" for ports to which PC's/servers connect directly:: 340132db935SJakub Kicinski 341132db935SJakub Kicinski interface FastEthernet0/N 342132db935SJakub Kicinski description machinename 343132db935SJakub Kicinski load-interval 30 344132db935SJakub Kicinski spanning-tree portfast 345132db935SJakub Kicinski 346132db935SJakub Kicinski If autonegotiation is a problem, you may need to specify "speed 347132db935SJakub Kicinski 100" and "duplex full" as well (or "speed 10" and "duplex half"). 348132db935SJakub Kicinski 349132db935SJakub Kicinski WARNING: DO NOT hook up hubs/switches/bridges to these 350132db935SJakub Kicinski specially-configured ports! The switch will become very confused. 351132db935SJakub Kicinski 352132db935SJakub Kicinski 353132db935SJakub KicinskiReporting and diagnosing problems 354132db935SJakub Kicinski--------------------------------- 355132db935SJakub Kicinski 356132db935SJakub KicinskiMaintainers find that accurate and complete problem reports are 357132db935SJakub Kicinskiinvaluable in resolving driver problems. We are frequently not able to 358132db935SJakub Kicinskireproduce problems and must rely on your patience and efforts to get to 359132db935SJakub Kicinskithe bottom of the problem. 360132db935SJakub Kicinski 361132db935SJakub KicinskiIf you believe you have a driver problem here are some of the 362132db935SJakub Kicinskisteps you should take: 363132db935SJakub Kicinski 364132db935SJakub Kicinski- Is it really a driver problem? 365132db935SJakub Kicinski 366132db935SJakub Kicinski Eliminate some variables: try different cards, different 367132db935SJakub Kicinski computers, different cables, different ports on the switch/hub, 368132db935SJakub Kicinski different versions of the kernel or of the driver, etc. 369132db935SJakub Kicinski 370132db935SJakub Kicinski- OK, it's a driver problem. 371132db935SJakub Kicinski 372132db935SJakub Kicinski You need to generate a report. Typically this is an email to the 373132db935SJakub Kicinski maintainer and/or netdev@vger.kernel.org. The maintainer's 374132db935SJakub Kicinski email address will be in the driver source or in the MAINTAINERS file. 375132db935SJakub Kicinski 376132db935SJakub Kicinski- The contents of your report will vary a lot depending upon the 377da514157SThorsten Leemhuis problem. If it's a kernel crash then you should refer to 378da514157SThorsten Leemhuis 'Documentation/admin-guide/reporting-issues.rst'. 379132db935SJakub Kicinski 380132db935SJakub Kicinski But for most problems it is useful to provide the following: 381132db935SJakub Kicinski 382132db935SJakub Kicinski - Kernel version, driver version 383132db935SJakub Kicinski 384132db935SJakub Kicinski - A copy of the banner message which the driver generates when 385132db935SJakub Kicinski it is initialised. For example: 386132db935SJakub Kicinski 387132db935SJakub Kicinski eth0: 3Com PCI 3c905C Tornado at 0xa400, 00:50:da:6a:88:f0, IRQ 19 388132db935SJakub Kicinski 8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface. 389132db935SJakub Kicinski MII transceiver found at address 24, status 782d. 390132db935SJakub Kicinski Enabling bus-master transmits and whole-frame receives. 391132db935SJakub Kicinski 392132db935SJakub Kicinski NOTE: You must provide the ``debug=2`` modprobe option to generate 393132db935SJakub Kicinski a full detection message. Please do this:: 394132db935SJakub Kicinski 395132db935SJakub Kicinski modprobe 3c59x debug=2 396132db935SJakub Kicinski 397132db935SJakub Kicinski - If it is a PCI device, the relevant output from 'lspci -vx', eg:: 398132db935SJakub Kicinski 399132db935SJakub Kicinski 00:09.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 74) 400132db935SJakub Kicinski Subsystem: 3Com Corporation: Unknown device 9200 401132db935SJakub Kicinski Flags: bus master, medium devsel, latency 32, IRQ 19 402132db935SJakub Kicinski I/O ports at a400 [size=128] 403132db935SJakub Kicinski Memory at db000000 (32-bit, non-prefetchable) [size=128] 404132db935SJakub Kicinski Expansion ROM at <unassigned> [disabled] [size=128K] 405132db935SJakub Kicinski Capabilities: [dc] Power Management version 2 406132db935SJakub Kicinski 00: b7 10 00 92 07 00 10 02 74 00 00 02 08 20 00 00 407132db935SJakub Kicinski 10: 01 a4 00 00 00 00 00 db 00 00 00 00 00 00 00 00 408132db935SJakub Kicinski 20: 00 00 00 00 00 00 00 00 00 00 00 00 b7 10 00 10 409132db935SJakub Kicinski 30: 00 00 00 00 dc 00 00 00 00 00 00 00 05 01 0a 0a 410132db935SJakub Kicinski 411132db935SJakub Kicinski - A description of the environment: 10baseT? 100baseT? 412132db935SJakub Kicinski full/half duplex? switched or hubbed? 413132db935SJakub Kicinski 414132db935SJakub Kicinski - Any additional module parameters which you may be providing to the driver. 415132db935SJakub Kicinski 416132db935SJakub Kicinski - Any kernel logs which are produced. The more the merrier. 417132db935SJakub Kicinski If this is a large file and you are sending your report to a 418132db935SJakub Kicinski mailing list, mention that you have the logfile, but don't send 419132db935SJakub Kicinski it. If you're reporting direct to the maintainer then just send 420132db935SJakub Kicinski it. 421132db935SJakub Kicinski 422132db935SJakub Kicinski To ensure that all kernel logs are available, add the 423132db935SJakub Kicinski following line to /etc/syslog.conf:: 424132db935SJakub Kicinski 425132db935SJakub Kicinski kern.* /var/log/messages 426132db935SJakub Kicinski 427132db935SJakub Kicinski Then restart syslogd with:: 428132db935SJakub Kicinski 429132db935SJakub Kicinski /etc/rc.d/init.d/syslog restart 430132db935SJakub Kicinski 431132db935SJakub Kicinski (The above may vary, depending upon which Linux distribution you use). 432132db935SJakub Kicinski 433132db935SJakub Kicinski - If your problem is reproducible then that's great. Try the 434132db935SJakub Kicinski following: 435132db935SJakub Kicinski 436132db935SJakub Kicinski 1) Increase the debug level. Usually this is done via: 437132db935SJakub Kicinski 438132db935SJakub Kicinski a) modprobe driver debug=7 439132db935SJakub Kicinski b) In /etc/modprobe.d/driver.conf: 440132db935SJakub Kicinski options driver debug=7 441132db935SJakub Kicinski 442132db935SJakub Kicinski 2) Recreate the problem with the higher debug level, 443132db935SJakub Kicinski send all logs to the maintainer. 444132db935SJakub Kicinski 445132db935SJakub Kicinski 3) Download you card's diagnostic tool from Donald 446132db935SJakub Kicinski Becker's website <http://www.scyld.com/ethercard_diag.html>. 447132db935SJakub Kicinski Download mii-diag.c as well. Build these. 448132db935SJakub Kicinski 449132db935SJakub Kicinski a) Run 'vortex-diag -aaee' and 'mii-diag -v' when the card is 450132db935SJakub Kicinski working correctly. Save the output. 451132db935SJakub Kicinski 452132db935SJakub Kicinski b) Run the above commands when the card is malfunctioning. Send 453132db935SJakub Kicinski both sets of output. 454132db935SJakub Kicinski 455132db935SJakub KicinskiFinally, please be patient and be prepared to do some work. You may 456132db935SJakub Kicinskiend up working on this problem for a week or more as the maintainer 457132db935SJakub Kicinskiasks more questions, asks for more tests, asks for patches to be 458132db935SJakub Kicinskiapplied, etc. At the end of it all, the problem may even remain 459132db935SJakub Kicinskiunresolved. 460