[vortex] Re: Query: Any solution to 3c905B problem?

Smoke conrad@ceibhion.dhs.org
Sun Jan 20 17:40:01 2002


On Wednesday, Jan  9, 2002 at 17:48, Bogdan Costescu wrote:
> While there seems to be a problem with the link, you didn't detail the 
> steps that you have taken to diagnose it. So, could you change the hub 
> port and cable between the 3Com card and the hub ? That should show if you 
> have a bad cable or hub port.

I have switched the card in question with a 3c574 in a laptop, plugged
into the same ethernet cable and hub port. The problem does not show
up. Neither does it occur with any of the other machines on the LAN.

> Another shot might be to force the card to use 10baseT half-duplex, either 
> through module parameters or using mii-diag (preferred).

It would appear from the log files that autonegotiation correctly sets
the card to this mode.

>Inserting the module with option "debug=3" 
> should do the trick. Then try to see if there is any correlation between 
> the messages (and tell us about them) and the freezes.

I did this and curiously enough, the connection did not freeze quite
as fast. Usually the connection will freeze by opening up an xterm on
another machine on the LAN. With this debugging on, however, the xterm
opened without problems and I had to force the freeze by performing a
directory listing in an ftp session. Here are the log files from that
particular freeze. Note the proftpd connection at 20:56:36. The freeze
occurs immediately after that, but nothing is shown in the log file
until I bring the interface down and back up again.


Jan 16 20:54:57 noname sudo:   conrad : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/sbin/insmod 3c59x debug=3
Jan 16 20:54:57 noname kernel: PCI: Found IRQ 11 for device 00:11.0
Jan 16 20:54:57 noname kernel: PCI: Sharing IRQ 11 with 00:07.2
Jan 16 20:54:57 noname kernel: See Documentation/networking/vortex.txt
Jan 16 20:54:57 noname kernel: 00:11.0: 3Com PCI 3c905B Cyclone 100baseTx at 0xdc00. Vers LK1.1.16
Jan 16 20:54:57 noname kernel:   product code 4920 rev 00.9 date 07-03-97
Jan 16 20:54:57 noname kernel:   8K byte-wide RAM 5:3 Rx:Tx split, autoselect/10baseT interface.
Jan 16 20:54:57 noname kernel:   Enabling bus-master transmits and whole-frame receives.
Jan 16 20:54:57 noname kernel: 00:11.0: scatter/gather enabled. h/w checksums enabled
Jan 16 20:55:08 noname sudo:   conrad : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/sbin/ifconfig eth0 192.168.0.2
Jan 16 20:55:08 noname kernel: eth0: using NWAY device table, not 0
Jan 16 20:55:08 noname kernel: eth0: MII #0 status ffff, link partner capability ffff, info1 0010, setting half-duplex.
Jan 16 20:55:18 noname sudo:   conrad : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/sbin/route add default gw 192.168.0.1
Jan 16 20:56:36 noname proftpd[5343]: connect from conrad@192.168.0.1
Jan 16 20:56:56 noname sudo:   conrad : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/sbin/ifconfig eth0 down


This appeared in another log file at the same time:


Jan 16 20:54:57 noname kernel:   Internal config register is 1000000, transceivers 0xa.
Jan 16 20:55:08 noname kernel: eth0:  Filling in the Rx ring.
Jan 16 20:55:08 noname kernel: eth0: Initial media type Autonegotiate.
Jan 16 20:55:08 noname kernel: eth0: vortex_up() InternalConfig 01800000.
Jan 16 20:55:08 noname kernel: eth0: vortex_up() irq 11 media status 8080.
Jan 16 20:55:11 noname kernel: eth0: Media selection timer tick happened, Autonegotiate.
Jan 16 20:55:11 noname kernel: dev->watchdog_timeo=500
Jan 16 20:55:11 noname kernel: eth0: MII transceiver has status ffff.
Jan 16 20:55:11 noname kernel: eth0: Media selection timer finished, Autonegotiate.
Jan 16 20:56:11 noname kernel: eth0: Media selection timer tick happened, Autonegotiate.
Jan 16 20:56:11 noname kernel: dev->watchdog_timeo=500
Jan 16 20:56:11 noname kernel: eth0: MII transceiver has status ffff.
Jan 16 20:56:11 noname kernel: eth0: Media selection timer finished, Autonegotiate.
Jan 16 20:56:56 noname kernel: eth0: vortex_close() status 0000, Tx status 00.
Jan 16 20:56:56 noname kernel: eth0: vortex close stats: rx_nocopy 28 rx_copy 259 tx_queued 344 Rx pre-checksummed 286.


I don't see anything relevant occuring here, unlike with the "mii-diag -w"
output I posted to the list previously, where there was actually
something happening in response to the interface hanging.

Just for good measure, here's the vortex-diag output, which I realised
I never included before:


$ vortex-diag -aem
vortex-diag.c:v2.05 5/15/2001 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a 3c905B Cyclone 100baseTx adapter at 0xdc00.
The Vortex chip may be active, so FIFO registers will not be read.
To see all register values use the '-f' flag.
Initial window 7, registers values by window:
  Window 0: 0000 0000 0000 0000 f7f7 00bf ffff 0000.
  Window 1: FIFO FIFO 0000 0000 0000 0000 0000 2000.
  Window 2: c000 654f f264 0000 0000 0000 0008 4000.
  Window 3: 0000 0180 05ea 0000 000a 0800 0800 6000.
  Window 4: 0000 0000 8000 0cd2 0001 8880 0000 8000.
  Window 5: 1ffc 0000 0000 0600 0807 06ce 06c6 a000.
  Window 6: 0000 0000 0000 0000 0000 0000 0000 c000.
  Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0xdc00
  0xDC10: **FIFO** 00000000 00000010 *STATUS*
  0xDC20: 00000020 00000000 00080000 00000004
  0xDC30: 00000000 760589fb 080211f0 00080004
 Indication enable is 06c6, interrupt enable is 06ce.
 No interrupt sources are pending.
 Transceiver/media interfaces available:  100baseTx 10baseT.
Transceiver type in use:  Autonegotiate.
 MAC settings: half-duplex.
 Station address set to 00:c0:4f:65:64:f2.
 Configuration options 0008.
Saved EEPROM settings of a 3Com Vortex/Boomerang:
 3Com Node Address 00:C0:4F:65:64:F2 (used as a unique ID only).
 OEM Station address 00:C0:4F:65:64:F2 (used as the ethernet address).
 Manufacture date (MM/DD/YYYY) 7/3/1997, division ,,,,,,, product I .
 Options: negotiated duplex, link beat required.
  Vortex format checksum is incorrect (004b vs. 1028).
  Cyclone format checksum is correct (0xfb vs. 0xfb).
  Hurricane format checksum is correct (0xfb vs. 0xfb).
 MII PHY found at address 1, status 0020.
 MII PHY found at address 2, status 0020.
 MII PHY found at address 3, status 0020.
 MII PHY found at address 4, status 0020.
 MII PHY 0 at #1 transceiver registers:
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020.
 MII PHY 1 at #2 transceiver registers:
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020.
 MII PHY 2 at #3 transceiver registers:
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020.
 MII PHY 3 at #4 transceiver registers:
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020.


And the same during a hang:


$ vortex-diag -aem
vortex-diag.c:v2.05 5/15/2001 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a 3c905B Cyclone 100baseTx adapter at 0xdc00.
The Vortex chip may be active, so FIFO registers will not be read.
To see all register values use the '-f' flag.
Initial window 0, registers values by window:
  Window 0: 0000 0000 0000 0000 f7f7 0000 000a 0000.
  Window 1: FIFO FIFO 0000 0000 0000 0000 0000 2000.
  Window 2: c000 654f f264 0000 0000 0000 0008 4000.
  Window 3: 0000 0180 05ea 0000 000a 0800 000c 6000.
  Window 4: 0000 0000 0000 0012 0000 8880 0000 8000.
  Window 5: 1ffc 0000 0000 1ffc 0800 0000 0000 a000.
  Window 6: 0000 0000 0000 0000 0000 0000 0000 c000.
  Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0xdc00
  0xDC10: **FIFO** 00000000 0000007a *STATUS*
  0xDC20: 00000092 080215c0 00080000 00000004
  0xDC30: 00000000 c91936e7 00000000 00080004
 Indication enable is 0000, interrupt enable is 0000.
 No interrupt sources are pending.
 Transceiver/media interfaces available:  100baseTx 10baseT.
Transceiver type in use:  Autonegotiate.
 MAC settings: half-duplex.
 Station address set to 00:c0:4f:65:64:f2.
 Configuration options 0008.
Saved EEPROM settings of a 3Com Vortex/Boomerang:
 3Com Node Address 00:C0:4F:65:64:F2 (used as a unique ID only).
 OEM Station address 00:C0:4F:65:64:F2 (used as the ethernet address).
 Manufacture date (MM/DD/YYYY) 7/3/1997, division ,,,,,,, product I .
 Options: negotiated duplex, link beat required.
  Vortex format checksum is incorrect (004b vs. 1028).
  Cyclone format checksum is correct (0xfb vs. 0xfb).
  Hurricane format checksum is correct (0xfb vs. 0xfb).
 MII PHY found at address 1, status 0020.
 MII PHY found at address 2, status 0020.
 MII PHY found at address 3, status 0020.
 MII PHY found at address 4, status 0020.
 MII PHY 0 at #1 transceiver registers:
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020.
 MII PHY 1 at #2 transceiver registers:
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020.
 MII PHY 2 at #3 transceiver registers:
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020.
 MII PHY 3 at #4 transceiver registers:
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020
   0020 0020 0020 0020 0020 0020 0020 0020.


A diff shows that other than different register values, The "Initial
window" is different and the "Indication enable" and "interrupt
enable" values are zeroed in the output from the hanging interface.

Thanks for your help so far... I'm hoping this is fixable without
resorting to dusting off and old 3c509 I have lying around :)

Thanks,
-Conrad.