[vortex] problems with 3c900 TPO boomerang and kernel 2.4.9 or later

dsp@gmx.li dsp@gmx.li
Tue Jan 29 15:13:02 2002


Hi,

I'm sorry to bug you guys but i've seen that it is none trivial to sort
this problems out and it has been annoying me a bit for several months
already. The thing that is causing me problems is my 3c900 TPO boomerang

My router/gateway crashes when i copy larger files between computers on
my lan, it's not really predictable though when the crash will occur.
I've only had this problem with kernel versions later than 2.4.8,
however i've also had problems with 2.4.8, but no crashes.

I've got a lan with two 10/100 mbit/s NICs, a hub with 10mbit/s and
a router with 2 nics, the 3c900 is connected to the hub the other
one with a RTL8139 chip to a modem.

I tried to force full-duplex once, but it didn't help at all.
I do not like the behaviour of my system but i can cope with it.

----------------------------------------------------------------------------

Kernel:
Linux wintermute 2.4.17 #1 Thu Jan 3 00:32:05 CET 2002 i586 unknown
It's an UP kernel.

----------------------------------------------------------------------------

Banner:
after insmod 3c59x
3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
00:05.0: 3Com PCI 3c900 Cyclone 10Mbps TPO at 0xe880. Vers LK1.1.16

----------------------------------------------------------------------------

lspci -vx

[snip]
00:05.0 Ethernet controller: 3Com Corporation 3c900B-TPO [Etherlink XL TPO] (rev 04)
        Subsystem: 3Com Corporation 3C900B-TPO Etherlink XL TPO 10Mb
        Flags: bus master, medium devsel, latency 64, IRQ 10
        I/O ports at e880 [size=128]
        Memory at ebfefe80 (32-bit, non-prefetchable) [size=128]
        Expansion ROM at ebfc0000 [disabled] [size=128K]
        Capabilities: [dc] Power Management version 1
00: b7 10 04 90 17 01 10 02 04 00 00 02 04 40 00 00
10: 81 e8 00 00 80 fe fe eb 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 b7 10 04 90
30: 00 00 fc eb dc 00 00 00 00 00 00 00 0a 01 0a 30
[snip]

-------------------------------------------------------------------

/vortex-diag -aaee:

vortex-diag.c:v2.05 5/15/2001 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a 3c900 Cyclone 10Mbps TPO adapter at 0xe880.
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 fdfd 00bf 0000 0000.
  Window 1: FIFO FIFO 0000 0000 0000 0000 0000 2000.
  Window 2: 5000 43da ac24 0000 0000 0000 0022 4000.
  Window 3: 0000 0180 05ea 0000 0008 0800 0800 6000.
  Window 4: 0000 00d0 8000 0cc8 0001 8880 a000 8000.
  Window 5: 1ffc 0000 0000 0600 0807 06ce 06c6 a000.
  Window 6: 0000 0000 0000 0a00 2000 0294 0694 c000.
  Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0xe880
  0xE890: **FIFO** 00000000 00000024 *STATUS*
  0xE8A0: 00000020 00000000 00080000 00000004
  0xE8B0: 00000000 bac6453a 01d70000 00080004
 Indication enable is 06c6, interrupt enable is 06ce.
 No interrupt sources are pending.
 Transceiver/media interfaces available:  10baseT.
Transceiver type in use:  Autonegotiate.
 MAC settings: half-duplex.
 Station address set to 00:50:da:43:24:ac.
 Configuration options 0022.
EEPROM contents (64 words, offset 0):
 0x000: 0050 da43 24ac 9004 c766 0036 5157 6d50
 0x008: c171 0000 0050 da43 24ac 0010 0000 0006
 0x010: 22a2 0000 0000 0180 0000 0000 0000 10b7
 0x018: 9004 0008 0000 0000 0000 0000 0000 0000
 0x020: 00a4 0000 0000 0000 0000 0000 0000 0000
 0x028: 0000 0000 0000 0000 0000 0000 0000 0000
 0x030: 0000 0000 0000 0000 0000 0000 0000 0000
 0x038: 0000 0000 0000 0000 0000 0000 0000 0000
 The word-wide EEPROM checksum is 0x9bd5.
Saved EEPROM settings of a 3Com Vortex/Boomerang:
 3Com Node Address 00:50:DA:43:24:AC (used as a unique ID only).
 OEM Station address 00:50:DA:43:24:AC (used as the ethernet address).
 Manufacture date (MM/DD/YYYY) 11/6/1999, division 6, product WQ.
 Options: negotiated duplex, link beat required.
  Vortex format checksum is incorrect (009f vs. 10b7).
  Cyclone format checksum is correct (0xa4 vs. 0xa4).
  Hurricane format checksum is correct (0xa4 vs. 0xa4).

-------------------------------------------------------------------------

/mii-diag -v

mii-diag.c:v2.02 5/21/2001 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Using the default interface eth0.
 Basic mode control register 0x0000: Auto-negotiation disabled, with
 Speed fixed at 10 mbps, half-duplex.
 Basic mode status register 0x0000 ... 0000.
   Link status: not established.
   This transceiver is capable of <Warning! No media capabilities>.
   Unable to perform Auto-negotiation, negotiation not complete.
 Link partner information is not exchanged when in fixed speed mode.
   End of basic transceiver information.

 MII PHY #0 transceiver registers:
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000

-------------------------------------------------------------------------

messages with insmod 3c59x debug=4

3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
See Documentation/networking/vortex.txt
00:05.0: 3Com PCI 3c900 Cyclone 10Mbps TPO at 0xe880. Vers LK1.1.16
 00:50:da:43:24:ac, IRQ 10
  product code 5751 rev 00.4 date 11-06-99
  Internal config register is 1000000, transceivers 0x8.
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/10baseT interface.
  Enabling bus-master transmits and whole-frame receives.
00:05.0: scatter/gather enabled. h/w checksums enabled
eth0:  Filling in the Rx ring.
eth0: using NWAY device table, not 0
eth0: Initial media type Autonegotiate.
eth0: MII #0 status 0000, link partner capability 0000, info1 0010, setting half-duplex.
eth0: vortex_up() InternalConfig 01800000.
eth0: vortex_up() irq 10 media status 8080.
eth0: Media selection timer tick happened, Autonegotiate.
dev->watchdog_timeo=500
eth0: MII transceiver has status 0000.
eth0: Media selection timer finished, Autonegotiate.

-------------------------------------------------------------------------

messages after insmod 3c59x debug=6
dmesg [6 is probably too high]:

[snip]
Receiving packet size 60 status 6000803c.
eth0: exiting interrupt, status e000.
eth0: interrupt, status e201, latency 1 ticks.
eth0: In interrupt loop, status e201.
eth0: exiting interrupt, status e000.
eth0: interrupt, status e201, latency 1 ticks.
eth0: In interrupt loop, status e201.
eth0: exiting interrupt, status e000.
eth0: interrupt, status e401, latency 2 ticks.
eth0: In interrupt loop, status e401.
boomerang_interrupt->boomerang_rx
boomerang_rx(): status e001
Receiving packet size 60 status 6000803c.
eth0: exiting interrupt, status e000.
eth0: interrupt, status e401, latency 3 ticks.
eth0: In interrupt loop, status e401.
boomerang_interrupt->boomerang_rx
boomerang_rx(): status e001
Receiving packet size 114 status 60008072.
eth0: exiting interrupt, status e000.
eth0: interrupt, status e201, latency 2 ticks.
eth0: In interrupt loop, status e201.
eth0: exiting interrupt, status e000.
eth0: interrupt, status e201, latency 2 ticks.
eth0: In interrupt loop, status e201.
eth0: exiting interrupt, status e000.
eth0: interrupt, status e201, latency 2 ticks.
eth0: In interrupt loop, status e201.
eth0: exiting interrupt, status e000.
eth0: interrupt, status e401, latency 2 ticks.
eth0: In interrupt loop, status e401.
boomerang_interrupt->boomerang_rx
boomerang_rx(): status e001
Receiving packet size 66 status 60008042.
eth0: exiting interrupt, status e000.
eth0: interrupt, status e401, latency 2 ticks.
eth0: In interrupt loop, status e401.
boomerang_interrupt->boomerang_rx
boomerang_rx(): status e001
Receiving packet size 60 status 6000803c.
eth0: exiting interrupt, status e000.
[snip]

-------------------------------------------------------------------------

I tried to get some info to fix it from other posts but it's really
beyond me to interpret all this and what applies to my case and 
what not.

Sorry to waste your time.

If anyone could help me i'd appreciate it, if not, thanks as well for
the driver :).

Cheers,
	David
-- 

It is said an Eastern monarch once charged his wise men to invent him a
sentence to be ever in view, and which should be true and appropriate
in all times and situations.  They presented him the words: "And this,
too, shall pass away."
		-- Abraham Lincoln

"You said I wasn't cheap,
 You paid me 20 pounds"