[vortex] Problems detecting 100Mbps with 3c59x (Vortex)
Donald Becker
becker@scyld.com
Mon Dec 30 14:37:01 2002
On Mon, 30 Dec 2002, CJ Kucera wrote:
> I've got a couple of "3c595 100BaseTX [Vortex]" cards which have to be
> coerced very strongly into believing they're on a 100BaseTx-FD network.
> I've got a 100Mbps hub/swtich (just some cheap thing from Netgear) which
> works fine for my other 100Mbps network cards (my other PCs autodetect
> the rate just fine). Here's the output from mii-diag on another PC on
> the network plugged into the same switch as the 3c595 card:
First: do not force full duplex!
When your switch allows forcing the setting, you have a long-term
network administration problem.
When your switch cannot be set, you have an immediate bug.
> > Bus 0, device 9, function 0:
> > Ethernet controller: 3Com Corporation 3c595 100BaseTX [Vortex] (rev 0).
> This is on a Linux Debian system running kernel 2.4.20. The box the card
> is currently in is a 233MHz Cyrix MII processor; the other machine is
> a 90MHz Pentium.
...
> > Manufacture date (MM/DD/YYYY) 6/5/1996, division 6, product BU.
I don't recommend using an old 590 series card if you care about
performance.
Even a rtl8139 will have far better performance.
> So there's definitely some kind of problem there. Running
> "vortex-diag -aef", I notice that it gives me conflicting kinds of
> transceivers:
What is confliciting?
The part has both 100baseTx and 10baseT transceiver connections.
It defaults to 10baseT.
...
> so I downloaded the "current" version (labeled "0.99Xf") and tried that
> one out. Without giving any options to the insmod or modprobe line,
> this driver functioned the same as the older driver. The link light
> on the back of the NIC was giving me 10Mbps, and the mii-diag and
> vortex-diag programs gave similar results.
Hmmm, 'mii-diag' didn't produce accurate output?
...
> 3) At any rate, why isn't the proper speed of the network being
> autodetected by *either* of the drivers? The only way I've been able
> to get things running properly is by forcing the options.
The '10baseT' setting is correct -- the driver detects the 10baseT link
beat from the switch (autonegotiation takes place on the 10baseT link
signal) and remains at 10Mbps. If you had a 100baseTx repeater, or
100baseTx only switch, the 3c595 would have switch to 100baseTx (half
duplex).
> However, adding the
> "options=4 full_duplex=1" arguments into the module seemed to produce
> the correct results. Here's the modprobe:
>
> > pci-scan.c:v1.11 8/31/2002 Donald Becker <becker@scyld.com> http://www.scyld.com/linux/drivers.html
> > 3c59x.c:v0.99Xf 11/17/2002 Donald Becker, becker@scyld.com
> > http://www.scyld.com/network/vortex.html
> > eth0: Overriding PCI latency timer (CFLT) setting of 32, new value is 248.
Note that this is required for the 3c595 and 3c590 boards.
> > eth0: 3Com 3c595 Vortex 100baseTx at 0xb800, 00:a0:24:a4:2b:2b, IRQ 10
> > 64K buffer 1:1 Rx:Tx split, autoselect/10baseT interface.
> > Media override to transceiver type 4 (100baseTX).
Correct.
(I should add a warning about forced full duplex.)
> And here's the output of "mii-diag -v":
.
> > Basic mode control register 0x2100: Auto-negotiation disabled, with
> > Speed fixed at 100 mbps, full-duplex.
This is accurate.
Note that you can also use
mii-diag -F 100baseTx
> > You have link beat, and everything is working OK.
> > This transceiver is capable of 100baseTx-FD 100baseTx 10baseT-FD 10baseT.
> > Unable to perform Auto-negotiation, negotiation not complete.
Pay attention to that last line.
> > Transceiver/media interfaces available: 100baseTx 10baseT.
> > Transceiver type in use: 100baseTX.
> > MAC settings: full-duplex.
OK, this is accurate.
--
Donald Becker becker@scyld.com
Scyld Computing Corporation http://www.scyld.com
410 Severn Ave. Suite 210 Scyld Beowulf cluster system
Annapolis MD 21403 410-990-9993