[vortex] 3c905C: No MII transceiver present / 10 Mbit, half duplex, no link

Bogdan Velcea phil@rdsnet.ro
Thu Oct 9 06:29:01 2003


On Wed, 8 Oct 2003, Donald Becker wrote:

> On Wed, 8 Oct 2003, Bogdan Velcea wrote:
>
> >  I have 2 ethernet cards 3Com905C (Tornado), that gives me some headaches:
> > 1. sometimes the cards negotiate to Half-Duplex instead of Full-Duplex ( even if
> > a changed the cables, or the switch ), in random situations ( and sometimes on
> > huge amount of traffic ):
> >
> > 2. the utility from linux, named "mii-tool"  gives me wrong informations about
> > the status of my ethernet cards ( I asure you that my Cisco Switch tells me that
> > both NICs are on auto-100 auto-FD !):
> >
> > # mii-tool
> > eth0: 10 Mbit, half duplex, no link
> > eth1: 10 Mbit, half duplex, no link
>
> What driver version are you using?
>

>From /usr/src/linux-2.4.22/drivers/net/3c59x.c:

#define DRV_NAME        "3c59x"
#define DRV_VERSION     "LK1.1.18-ac"
#define DRV_RELDATE     "1 July 2002"


> > 3. the utility "mii-diag" ( that I found on Scyld FTP site:
> > ftp://ftp.scyld.com/pub/diag/mii-diag.c with
> > ftp://ftp.scyld.com/pub/diag/libmii.c ) seems to not know the MII settings of my
> > NICs:
> >
> > # mii-diag eth0
> > Basic registers of MII PHY #0:  0000 0000 0000 0000 0000 0000 0000 0000.
> >   No MII transceiver present!.
>
> The 'mii-diag' program is telling you that the driver isn't reporting a
> transceiver.

That I understood ... but how it is posible to enable it ?

>
> > # ./mii-diag --force eth0
> > Basic registers of MII PHY #0:  0000 0000 0000 0000 0000 0000 0000 0000.
> >   No MII transceiver present!.
> >  Basic mode control register 0x0000: Auto-negotiation disabled, with
> >  Speed fixed at 10 mbps, half-duplex.
>
> Notice that this is the same as the 'mii-too' report, except that
> 'mii-diag' told you the status was bogus.
>

I presumed that too...

>
> > 4. the "vortex-diag" utility ( from the sime site ) gives me some good
> > information, but not that I'm interested ( like Link-State ), and strange
> > informations like "MAC settings: half-duplex":
> ...
> >  MII PHY found at address 24, status 782d.
> >  MII PHY 0 at #24 transceiver registers:
> >    1000 782d 0040 6176 0101 41e1 0003 0000
>
> Errrkkk.

I don't realy know what means the values from this registers :(

>
> >  Transceiver selection: 100baseTX.
> >    Options: negotiated duplex, link beat required.
>
> Hmmm, did you change the configuration EEPROM from the default?
> What was the driver detection message?
>

I don't know if this is the default configuration or not :(

> > Index #1: Found a 3c905C Tornado 100baseTx adapter at 0xe800.
> ..
> >  Transceiver selection: 100baseTX.
> >    Options: force full duplex, link beat required.
>
> Again, this is not the default configuration EEPROM setting!

Again ...

>
> >  MII PHY found at address 24, status 782d.
> >  MII PHY 0 at #24 transceiver registers:
> >    1000 782d 0040 6176 05e1 41e1 0003 0000
>
> Yet the driver negotiated anyway...

Yeap !
>From the kernel messages, after I did "modprobe 3c59x debug=5":

Oct  9 10:12:32 test kernel: 3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
Oct  9 10:12:32 test kernel: See Documentation/networking/vortex.txt
Oct  9 10:12:32 test kernel: 00:0f.0: 3Com PCI 3c905C Tornado at 0xe400. Vers LK1.1.18-ac
Oct  9 10:12:32 test kernel:  00:01:02:ae:6b:a8, IRQ 5
Oct  9 10:12:32 test kernel:   product code 4552 rev 00.13 date 08-04-00
Oct  9 10:12:32 test kernel:   Internal config register is 1800000, transceivers 0xa.
Oct  9 10:12:32 test kernel:   8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
Oct  9 10:12:32 test kernel:   MII transceiver found at address 24, status 782d.
Oct  9 10:12:32 test kernel:   Enabling bus-master transmits and whole-frame receives.
Oct  9 10:12:32 test kernel: 00:0f.0: scatter/gather enabled. h/w checksums enabled
Oct  9 10:12:32 test kernel: See Documentation/networking/vortex.txt
Oct  9 10:12:32 test kernel: 00:11.0: 3Com PCI 3c905C Tornado at 0xe800. Vers LK1.1.18-ac
Oct  9 10:12:32 test kernel:  00:04:76:1c:a4:de, IRQ 10
Oct  9 10:12:32 test kernel:   product code 4d57 rev 00.13 date 01-30-01
Oct  9 10:12:32 test kernel: Full duplex capable
Oct  9 10:12:32 test kernel:   Internal config register is 1800000, transceivers 0xa.
Oct  9 10:12:32 test kernel:   8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
Oct  9 10:12:32 test kernel:   MII transceiver found at address 24, status 782d.
Oct  9 10:12:32 test kernel:   Enabling bus-master transmits and whole-frame receives.
Oct  9 10:12:32 test kernel: 00:11.0: scatter/gather enabled. h/w checksums enabled

>
> > 6. I forgot to say that I tryed even to force the settings with this utilities
> > and/or with "modprobe 3c59x full_duplex=1 options=4" !
>
> Don't do that!  Forcing full duplex or forcing the transceiver setting
> is almost always incorrect.
>

I know that is not good. But I wish that NICs to work good.

P.S.: I forgot to say that the NICs are on an MB VIA VT82C686 with 2 CPUs
Pentium III at 1000MHz ( so I use a compiled kernel for multi-processors ).

> --
> Donald Becker				becker@scyld.com
> Scyld Computing Corporation		http://www.scyld.com
> 914 Bay Ridge Road, Suite 220		Scyld Beowulf cluster system
> Annapolis MD 21403			410-990-9993
>