[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
>