[vortex] 3c905CX-TXM

Donald Becker becker@scyld.com
Thu, 23 Nov 2000 11:55:51 -0500 (EST)


On Thu, 23 Nov 2000, Berkan Eskikaya wrote:

> I recently bought several OEM 3Com NICs. The stickers on the bubble-wrap 
> said they're 3C980TX, on the cards themselves the model id is given as
> 3c905CX-TXM.

Hmmm, "CX"???

> I haven't been able to get them working so far. The driver loads fine, 
> I can bring up the eth device, but the network remains unreachable.
> The MII transceivers have status 0x0020 which makes me think that things
> don't progress beyond the negotiation step.

That status indicates that the transceiver isn't capable of any media type!
Somehow the transceiver is misconfigured.

> user. At the end of the mail, you can also find debug messages produced
> by 3Com's 3c90x driver (which fails at the ifconfig stage).

Please confirm: Even 3Com's driver fails?

> 3c59x.c:v0.99Ra 8/7/2000 Donald Becker, becker@scyld.com 
>   http://www.scyld.com/network/vortex.html
> PCI ID 920010b7 subsystem ID is 100010b7.
> Found 3c905C Tornado at PCI address 0xc001, mapped IRQ 10.
> eth1: 3Com 3c905C Tornado at 0xc000,  00:01:03:23:f5:b7, IRQ 10
>   Internal config register is 1800000, transceivers 0xa.
>   8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
>   MII transceiver found at address 1, status   24.
>   MII transceiver found at address 2, status   24.
>   Enabling bus-master transmits and whole-frame receives.

Except for the transceiver status, this looks fine.

> Basic registers of MII PHY #1:  0000 0020 0000 0000 01e0 40a1 0003 0800.
>  Basic mode control register 0x0000: Auto-negotiation disabled, with
>  Speed fixed at 10 mbps, half-duplex.

Does the card work with 10baseT?
Does running 
   mii-diag -A 0x01e1
or
   mii-diag -A 100baseTx
or
   mii-diag -F 100baseTx
change anything?

>  Basic mode status register 0x0020 ... 0020.
>    Link status: not established.
>  Your link partner advertised 40a1: 100baseTx 10baseT.

Curious... autonegotiation took place!  You have a dual speed repeater.

> eth1: Initial media type Autonegotiate half-duplex.
> eth1: MII #1 status 0024, link partner capability 40a1, setting half-duplex.
> eth1: vortex_open() irq 10 media status 8000.
> eth1: Media selection timer tick happened, Autonegotiate.
> eth1: MII transceiver has status 0020.
> eth1: Media selection timer finished, Autonegotiate.

This is exactly what I expect the driver to do.

> eth1: Queuing Tx packet, index 0.
> eth1: interrupt, status 8201, latency 10 ticks.
> eth1: Queuing Tx packet, index 1.
> eth1: interrupt, status 8201, latency 3 ticks.
> eth1: Queuing Tx packet, index 2.
> eth1: interrupt, status 8201, latency 8 ticks.
> eth1: Queuing Tx packet, index 3.
> eth1: interrupt, status 8201, latency 3 ticks.
> eth1: Queuing Tx packet, index 4.
> eth1: interrupt, status 8201, latency 2 ticks.

The card appears to be working, at least from the driver's viewpoint.

> $ vortex-diag -t 17 -p 0xc000 -a -f

Did you have to do this?  Did the vortex-diag program fail to find the card
on its own?

> vortex-diag.c:v2.03 9/26/2000 Donald Becker (becker@scyld.com)
>  http://www.scyld.com/diag/index.html
> Assuming a 3c905C Tornado 100baseTx adapter at 0xc000.
> Initial window 4, registers values by window:
>   Window 0: 0000 0000 e4cf 0000 8d8d 00bf ffff 0000.
>   Window 1: 6300 043e 0700 0000 0000 007f 0000 2000.
>   Window 2: 0100 2303 b7f5 0000 0000 0000 0052 4000.
>   Window 3: 0000 0180 05ea 0000 000a 0800 0800 6000.
>   Window 4: 0000 0000 0000 08c6 0001 8800 0000 8000.
>   Window 5: 1ffc 0000 0000 1ffc 0800 06de 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 0xc000
>   0xC010: 00000000 00000000 0000000a 00000000
>   0xC020: 00000020 0f094250 00080000 00001404
>   0xC030: 00000000 3e5fc1a1 00000000 00080004

Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
Annapolis MD 21403			410-990-9993