xref: /linux/Documentation/networking/device_drivers/ethernet/3com/vortex.rst (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
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