[vortex-bug] options=8 full_duplex=1 does not work for some 3c59x's

Pekka Savola pekkas@netcore.fi
Sun, 20 May 2001 14:29:25 +0300 (EEST)


Hello all,

As there was no further response on this, I'm sending this to the bug
list.

The crux here is as follows:

On Dell Integrated:
00:11.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone]

options=8 full_duplex=1 does not work at all.  With (wrong) options=4
full_duplex=1 it works, but mii-diag gets _really_ confused.

On addon card:
00:0a.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)

options=8 full_duplex=1 works just fine, and mii-diag looks good too.  If
you use full_duplex=4, mii diag is equally confused.

So:
 1) options=8 does not seem to work on some (older?) cards.

 [ pretty non-issue: 2) with wrong options= value, mii diag gets crazy ]

Full mii-diag, vortex-diag, lspci info can be found below.

Please Cc:.

---
Pekka Savola                 "Tell me of difficulties surmounted,
Netcore Oy                   not those you stumble over and fall"
Systems. Networks. Security.  -- Robert Jordan: A Crown of Swords

---------- Forwarded message ----------
Date: Wed, 2 May 2001 21:28:39 +0300 (EEST)
From: Pekka Savola <pekkas@netcore.fi>
To: Bogdan Costescu <bogdan.costescu@iwr.uni-heidelberg.de>
Cc: vortex@scyld.com
Subject: Re: [3com905b freeze Alpha SMP 2.4.2] FullDuplex issue ?

On Wed, 2 May 2001, Bogdan Costescu wrote:
> On Wed, 2 May 2001, Pekka Savola wrote:
>
> > > If yes, can you send me the identification message from the driver ?
> > > (including the first line with driver version).
> >
> > Apr 26 18:25:24 sampo kernel: 3c59x.c 18Feb01 Donald Becker and others
> > http://www.scyld.com/network/vortex.html
> >
> > 3c59x.c 18Feb01 Donald Becker and others
> > http://www.scyld.com/network/vortex.html
> > eth0: 3Com 3c905B Cyclone 100baseTx at 0xec00,  00:c0:4f:61:17:c9, IRQ 19
> >   8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
> >   Media override to transceiver type 4 (100baseTX).
> >   Enabling bus-master transmits and whole-frame receives.
> > eth0: Initial media type 100baseTX.
> >
> > Forced to 100/FD.
> >
> > As shipped with Red Hat Linux 6.2 errata kernel 2.2.19-6.2.1.
> >
> > This is nothing new, it has been plaguing for as long as I remember on
> > varying versions of kernel and drivers, at least a year.
> >
> > These are SMP Dell servers.  The card is integrated on mobo.
>
> I guess that this is a special case. Maybe Don knows more about it...
> Anyway, the documentation that 3Com has on the web site specifically
> states that the MII interface on Cyclone chips is available at address 24.
> Maybe the chips that Dell uses are non-standard...
>
> Can you post output from lspci ?

Looking deeper into this, this appears partially a configuration error.

The 100/FD forcing was done with 'options=4 full_duplex=1'.  Then the
output is as above.  But shouldn't mii-diag -p 24 still work?

Lspci output is:

---
00:11.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone]
        Subsystem: Dell Computer Corporation: Unknown device 0080
        Flags: bus master, medium devsel, latency 64, IRQ 19
        I/O ports at ec00
        Memory at fe101000 (32-bit, non-prefetchable)
        Expansion ROM at f8000000 [disabled]
        Capabilities: [dc] Power Management version 1
00: b7 10 55 90 17 01 10 02 00 00 00 02 08 40 00 00
10: 01 ec 00 00 00 10 10 fe 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 80 00
30: 00 00 00 f8 dc 00 00 00 00 00 00 00 0e 01 0a 0a
---

However, there appears to be a problem with the driver with this specific
chipset; if I change the forcing to 'options=8 full_duplex=1' as is
proper, the mii-diag shows good:

---
[root@lsampo /tmp]# ./mii-diag
Using the default interface 'eth0'.
Basic registers of MII PHY #24:  3100 7809 0000 0000 0141 0080 0000 0000.
 Basic mode control register 0x3100: Auto-negotiation enabled.
 Basic mode status register 0x7809 ... 7809.
   Link status: not established.
 Your link partner is generating 100baseTx link beat  (no autonegotiation).
---

HOWEVER, network ceased to work immediately after I did this.

So there appears to be a problem.  With this unworking config, mii-diag
shows:
---
[root@sampo /tmp]# ./mii-diag -v
mii-diag.c:v2.00 4/19/2000  Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Using the default interface 'eth0'.
 MII PHY #24 transceiver registers:
   3100 7809 0000 0000 0141 0080 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.
 Basic mode control register 0x3100: Auto-negotiation enabled.
 Basic mode status register 0x7809 ... 7809.
   Link status: not established.
   This transceiver is capable of  100baseTx-FD 100baseTx 10baseT-FD
10baseT.
   Able to perform Auto-negotiation, negotiation not complete.
 Your link partner is generating 100baseTx link beat  (no
autonegotiation).
 MII PHY #24 transceiver registers:
   3100 7809 0000 0000 0141 0080 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.
 Basic mode control register 0x3100: Auto-negotiation enabled.
 Basic mode status register 0x7809 ... 7809.
   Link status: not established.
   Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Able to perform Auto-negotiation, negotiation not complete.
 This transceiver has no vendor identification.
 I'm advertising 0141: 100baseTx-FD 10baseT-FD
   Advertising no additional info pages.
   IEEE 802.3 CSMA/CD protocol.
 Link partner capability is 0080: 100baseTx.
   Negotiation did not complete.
---

The switch (Nortel Networks) is configured to 100/FD static.

I just reproduced 100% this with with one other identical Dual Dell PC,
with the same lspci.  Running stock 2.2.19 kernel, with:

3c59x.c 18Feb01 Donald Becker and others
http://www.scyld.com/network/vortex.html
eth0: 3Com 3c905B Cyclone 100baseTx at 0xec00,  00:c0:4f:61:30:1f, IRQ 19
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
  Media override to transceiver type 4 (100baseTX).
  Enabling bus-master transmits and whole-frame receives.


[Yeah, I know 100/FD forcing is bad; but I can't help it here :-( ]

>
> > Most other 3c905B|C cards here _usually_ show 10mbit / half-duplex with
> > mii-diag ("a null state"), even though they're really in 100/FD.
>
> Are these PCI cards or mobo-integrated chips ? Can you post output from
> lspci ?

The ones that exhibited the above are probably all integrated.

The same configuration error, 'options=4 full_duplex=1' has happened with
with an external card too.  It appears to be of newer revision.  The
difference here is that when you change to 'options=8 full_duplex=1', it
actually _works_ too.

lscpi:

00:0a.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone]
(rev 64)
        Subsystem: 3Com Corporation: Unknown device 9055
        Flags: bus master, medium devsel, latency 32, IRQ 10
        I/O ports at e000
        Memory at fa000000 (32-bit, non-prefetchable)
        Capabilities: [dc] Power Management version 1
00: b7 10 55 90 17 00 10 02 64 00 00 02 08 20 00 00
10: 01 e0 00 00 00 00 00 fa 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 b7 10 55 90
30: 00 00 00 00 dc 00 00 00 00 00 00 00 0a 01 0a 0a

100% same kernel (non-smp system though).

wrong config:

[root@linset /root]# mii-diag
Using the default interface 'eth0'.
Basic registers of MII PHY #0:  0000 0000 0000 0000 0000 0000 0000 0000.
 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.
 Link partner information information is not exchanged when in fixed speed
mode.

[root@linset /root]# vortex-diag -mm
vortex-diag.c:v2.02 7/1/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a 3c905B Cyclone 100baseTx adapter at 0xe000.
 MII PHY found at address 24, status 7809.
 MII PHY 0 at #24 transceiver registers:
   3000 780d 0040 6120 01e1 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   1000 0301 0000 0000 0000 0170 0100 0000
   0037 000c 0f00 ff00 0027 0000 0000 000b.
 MII PHY #24 transceiver registers:
   3000 780d 0040 6120 01e1 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   1000 0300 0000 0000 0000 01be 0200 0000
   0037 000c 0f00 ff00 0027 0000 0000 000b.
 Basic mode control register 0x3000: Auto-negotiation enabled.
 Basic mode status register 0x780d ... 780d.
   Link status: established.
   Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Able to perform Auto-negotiation, negotiation not complete.
 Vendor ID is 00:10:18:--:--:--, model 18 rev. 0.
   No specific information is known about this transceiver type.
 I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT
   Advertising no additional info pages.
   IEEE 802.3 CSMA/CD protocol.
 Link partner capability is 0000:.
   Negotiation did not complete.

corrected config, networking works on this card using these settings:

[root@linset /root]# mii-diag
Using the default interface 'eth0'.
Basic registers of MII PHY #24:  3000 7829 0040 6120 01e1 0081 0000 0000.
 Basic mode control register 0x3000: Auto-negotiation enabled.
 Basic mode status register 0x7829 ... 782d.
   Link status: previously broken, but now reestablished.
 Your link partner is generating 100baseTx link beat  (no
autonegotiation).


> > Out of about 20-30 boxes, I could probably find one where 3c905B shows
> > anything correctly with mii-diag.
>
> You never reported to vortex or vortex-bug @scyld.com...

I took this as expected behaviour :/.

---

I'm sorry for creating fuss with wrong configuration.  I got it from
'100BaseTx' from the source (perhaps there should be a note there!) _when_
options=8 didn't work.

I hope there's enough debug information to gather why options=8 would
appear to be failing on these dell mobo-integrated 3c905B's.

HTH, Thanks,

-- 
Pekka Savola                 "Tell me of difficulties surmounted,
Netcore Oy                   not those you stumble over and fall"
Systems. Networks. Security.  -- Robert Jordan: A Crown of Swords