[Fwd: Kernel 2.4 problem with 3C905B NIC]

Edward Tandi <[email protected]>
Newsgroups gmane.linux.drivers.vortex.devel
Message-ID <[email protected]>
Hello,

I am currently having problems with the 3c59x driver and I was told that
someone at this address (Bogdan?) could help.

Following instructions from Documentation/networking/vortex.txt, I have
generated the relevant diagnostics. I have also forwarded the original
e-mail I sent onto the kernel mailing list (right at the end).

It would appear that the 3c59x driver is unable to auto-negotiate with
this card/hub combination (see "*** Link Jabber! ***" below). For
reference, the D-Link hub to which the NIC is attached is model DFE-808.

As mentioned, I have tried to set options to force the card into various
modes, but it has not worked.

I have the 3c90x driver working but I would like to see the 3c59x driver
working because it comes in the standard Linux kernel distribution. I'm
not the only one with this configuration. So the main aim of this e-mail
is to debug and help fix this problem. Let me know if more info is
required. Thanks,

Ed-T.


Diagnostics:
------------

$ lspci -vx
00:0b.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone]
(rev 30)
        Subsystem: 3Com Corporation 3C905B Fast Etherlink XL 10/100
        Flags: bus master, medium devsel, latency 32, IRQ 9
        I/O ports at d800 [size=128]
        Memory at e4800000 (32-bit, non-prefetchable) [size=128]
        Expansion ROM at <unassigned> [disabled] [size=128K]
        Capabilities: [dc] Power Management version 1
00: b7 10 55 90 17 00 10 02 30 00 00 02 08 20 00 00
10: 01 d8 00 00 00 00 80 e4 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 09 01 0a 0a



Card working OK (3c90x driver):
-------------------------------

$ vortex-diag -aaee
vortex-diag.c:v2.14 12/28/2002 Donald Becker ([email protected])
http://www.scyld.com/diag/index.html
Index #1: Found a 3c905B Cyclone 100baseTx adapter at 0xd800.
Station address 00:50:04:0b:1d:ec.
  Receive mode is 0x15: Normal unicast and hashed multicast.
The Vortex chip may be active, so FIFO registers will not be read.
To see all register values use the '-f' flag.
Initial window 4, registers values by window:
  Window 0: 0000 0000 0000 0000 f5f5 00bf 0000 0000.
  Window 1: FIFO FIFO 0000 0000 0000 0000 0000 2000.
  Window 2: 5000 0b04 ec1d 0000 0000 0000 000a 4000.
  Window 3: 0000 0080 05ea 0000 000a 0800 0800 6000.
  Window 4: 0000 0000 0000 0cd8 0002 88c0 0000 8000.
  Window 5: 1ffc 0000 0000 1ffc 0815 06ee 06ee 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 0xd800
  0xD810: **FIFO** 00000000 00000000 *STATUS*
  0xD820: 00000100 2aa29c20 00080000 00000804
  0xD830: 00000000 e968ffdb 2aa28400 00080804
  0xD840: 00374d5d 00000000 00000000 00000000
  0xD850: 00000000 00000000 00000000 00000000
  0xD860: 00000000 00000000 00000000 00000000
  0xD870: 00001000 00000000 00000160 00000000
  DMA control register is 00000100.
   Tx list starts at 2aa29c20.
   Tx FIFO thresholds: min. burst 256 bytes, priority with 128 bytes to
empty.
   Rx FIFO thresholds: min. burst 256 bytes, priority with 128 bytes to
full.
   Poll period Tx 2560 ns.,  Rx 256 ns.
   Maximum burst recorded Tx 352,  Rx 0.
Indication enable is 06ee, interrupt enable is 06ee.
No interrupt sources are pending.
Transceiver/media interfaces available:  100baseTx 10baseT.
Transceiver type in use:  Autonegotiate.
MAC settings: half-duplex.
Station address set to 00:50:04:0b:1d:ec.
Configuration options 000a.
EEPROM format 64x16, configuration table at offset 0:
    00: 0050 040b 1dec 9055 c594 0036 4a54 6d50
  0x08: 2971 0000 0050 040b 1dec 8020 0000 0022
  0x10: 32a2 0000 0000 0180 0000 0004 0000 10b7
  0x18: 9055 000a 0000 0000 0000 0000 0000 0000
  0x20: 0026 0000 0000 0000 0000 0000 0000 0000
  0x28: 0000 0000 0000 0000 0000 0000 0000 0000
      ...

The word-wide EEPROM checksum is 0xd166.
Saved EEPROM settings of a 3Com Vortex/Boomerang:
3Com Node Address 00:50:04:0B:1D:EC (used as a unique ID only).
OEM Station address 00:50:04:0B:1D:EC (used as the ethernet address).
  Device ID 9055,  Manufacturer ID 6d50.
  Manufacture date (MM/DD/YYYY) 12/20/1998, division 6, product TJ.
  No BIOS ROM is present.
Transceiver selection: Autonegotiate.
   Options: force full duplex, link beat required.
PCI Subsystem IDs: Vendor 10b7 Device 9055.
100baseTx 10baseT.
  Vortex format checksum is incorrect (4e vs. 10b7).
  Cyclone format checksum is correct (0x26 vs. 0x26).
  Hurricane format checksum is correct (0x26 vs. 0x26).


$ mii-diag -v
mii-diag.c:v2.07 11/15/2002 Donald Becker ([email protected])
http://www.scyld.com/diag/index.html
Using the default interface 'eth0'.
  Using the old SIOCGMIIPHY value on PHY 3072 (BMCR 0x3100).
Basic mode control register 0x3100: Auto-negotiation enabled.
You have link beat, and everything is working OK.
   This transceiver is capable of  100baseTx-FD 100baseTx 10baseT-FD
10baseT.
   Able to perform Auto-negotiation, negotiation complete.
Your link partner is generating 100baseTx link beat  (no
autonegotiation).
   End of basic transceiver information.

libmii.c:v2.10 4/22/2003  Donald Becker ([email protected])
http://www.scyld.com/diag/index.html
MII PHY #3072 transceiver registers:
   3100 786d 0000 0000 05e1 0080 0004 2001
   0000 0000 0000 0000 0000 0000 0000 0000
   8000 0008 0090 0000 0000 0005 2001 0000
   0000 2041 0044 1c11 0002 1000 0000 0000.
Basic mode control register 0x3100: Auto-negotiation enabled.
Basic mode status register 0x786d ... 786d.
   Link status: established.
   Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Able to perform Auto-negotiation, negotiation complete.
This transceiver has no vendor identification.
I'm advertising 05e1: Flow-control 100baseTx-FD 100baseTx 10baseT-FD
10baseT
   Advertising no additional info pages.
   IEEE 802.3 CSMA/CD protocol.
Link partner capability is 0080: 100baseTx.
   Negotiation did not complete.



Card NOT working OK (3c59x driver):
-----------------------------------

>From dmesg (debug=7):
PCI: Found IRQ 9 for device 00:0b.0
3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
See Documentation/networking/vortex.txt
00:0b.0: 3Com PCI 3c905B Cyclone 100baseTx at 0xd800. Vers LK1.1.16
 00:50:04:0b:1d:ec, IRQ 9
  product code 544a rev 00.12 date 12-20-98
Full duplex capable
  Internal config register is 1000000, transceivers 0xa.
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/10baseT interface.
  Enabling bus-master transmits and whole-frame receives.
00:0b.0: scatter/gather enabled. h/w checksums enabled
eth0:  Filling in the Rx ring.
eth0: using NWAY device table, not 0
eth0: Initial media type Autonegotiate.
vortex_up(): writing 0x1800000 to InternalConfig
eth0: MII #0 status 0787, link partner capability 0787, info1 8020,
setting full-duplex.
eth0: vortex_up() InternalConfig 01800000.
eth0: vortex_up() irq 9 media status 8080.
boomerang_interrupt. status=0x8081
eth0: interrupt, status 8081, latency 7 ticks.
eth0: In interrupt loop, status 8081.
eth0: vortex_error(), status=0x8081
eth0: Updating stats.
eth0: exiting interrupt, status 8000.
eth0: Media selection timer tick happened, Autonegotiate.
dev->watchdog_timeo=500
eth0: MII transceiver has status 0787.
eth0: Media selection timer finished, Autonegotiate.
boomerang_interrupt. status=0x8401
eth0: interrupt, status 8401, latency 8 ticks.
eth0: In interrupt loop, status 8401.
boomerang_interrupt->boomerang_rx
boomerang_rx(): status 8001
Receiving packet size 261 status a0008105.
eth0: exiting interrupt, status 8000.
boomerang_interrupt. status=0x8401
eth0: interrupt, status 8401, latency 3 ticks.

$ vortex-diag -aaee
vortex-diag.c:v2.14 12/28/2002 Donald Becker ([email protected])
 http://www.scyld.com/diag/index.html
Index #1: Found a 3c905B Cyclone 100baseTx adapter at 0xd800.
 Station address 00:50:04:0b:1d:ec.
  Receive mode is 0x05: Normal unicast.
The Vortex chip may be active, so FIFO registers will not be read.
To see all register values use the '-f' flag.
Initial window 4, registers values by window:
  Window 0: 0000 0000 0000 0000 f5f5 00bf 0000 0000.
  Window 1: FIFO FIFO 0000 0000 0000 0000 0000 2000.
  Window 2: 5000 0b04 ec1d 0000 0000 0000 000a 4000.
  Window 3: 0000 0180 05ea 0020 000a 0800 0800 6000.
  Window 4: 0000 0000 8000 0cd8 0003 8880 0000 8000.
  Window 5: 1ffc 0000 0000 0600 0805 06ce 06c6 a000.
  Window 6: 0000 0000 0000 2e00 0000 26ae 0000 c000.
  Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0xd800
  0xD810: **FIFO** 00000000 00000000 *STATUS*
  0xD820: 00000020 00000000 00080000 00000004
  0xD830: 00000000 81707e90 376930e0 00080004
  0xD840: 0023e989 00000000 00000000 00000000
  0xD850: 00000000 00000000 00000000 00000000
  0xD860: 00000000 00000000 00000000 00000000
  0xD870: 00009000 00000000 00000000 00000000
  DMA control register is 00000020.
   Tx list starts at 00000000.
   Tx FIFO thresholds: min. burst 256 bytes, priority with 128 bytes to
empty.
   Rx FIFO thresholds: min. burst 256 bytes, priority with 128 bytes to
full.
   Poll period Tx 00 ns.,  Rx 0 ns.
   Maximum burst recorded Tx 0,  Rx 0.
 Indication enable is 06c6, interrupt enable is 06ce.
 No interrupt sources are pending.
 Transceiver/media interfaces available:  100baseTx 10baseT.
Transceiver type in use:  Autonegotiate.
 MAC settings: full-duplex.
 Station address set to 00:50:04:0b:1d:ec.
 Configuration options 000a.
EEPROM format 64x16, configuration table at offset 0:
    00: 0050 040b 1dec 9055 c594 0036 4a54 6d50
  0x08: 2971 0000 0050 040b 1dec 8020 0000 0022
  0x10: 32a2 0000 0000 0180 0000 0004 0000 10b7
  0x18: 9055 000a 0000 0000 0000 0000 0000 0000
  0x20: 0026 0000 0000 0000 0000 0000 0000 0000
  0x28: 0000 0000 0000 0000 0000 0000 0000 0000
      ...

 The word-wide EEPROM checksum is 0xd166.
Saved EEPROM settings of a 3Com Vortex/Boomerang:
 3Com Node Address 00:50:04:0B:1D:EC (used as a unique ID only).
 OEM Station address 00:50:04:0B:1D:EC (used as the ethernet address).
  Device ID 9055,  Manufacturer ID 6d50.
  Manufacture date (MM/DD/YYYY) 12/20/1998, division 6, product TJ.
  No BIOS ROM is present.
 Transceiver selection: Autonegotiate.
   Options: force full duplex, link beat required.
 PCI Subsystem IDs: Vendor 10b7 Device 9055.
 100baseTx 10baseT.
  Vortex format checksum is incorrect (4e vs. 10b7).
  Cyclone format checksum is correct (0x26 vs. 0x26).
  Hurricane format checksum is correct (0x26 vs. 0x26).

$ mii-diag -v
mii-diag.c:v2.07 11/15/2002 Donald Becker ([email protected])
 http://www.scyld.com/diag/index.html
  Using the new SIOCGMIIPHY value on PHY 0 (BMCR 0x0787).
 Basic mode control register 0x0787: Auto-negotiation disabled, with
 Speed fixed at 10 mbps, full-duplex.
  Internal Collision-Test enabled!
  Restarted auto-negotiation in progress!
  Transceiver isolated from the MII!
 Basic mode status register 0x0787 ... 0787.
   Link status: established.
   This transceiver is capable of <Warning! No media capabilities>.
   Unable to perform Auto-negotiation, negotiation not complete.
   *** Link Jabber! ***
 Your link partner is generating 100baseTx link beat  (no
autonegotiation).
   End of basic transceiver information.


libmii.c:v2.10 4/22/2003  Donald Becker ([email protected])
 http://www.scyld.com/diag/index.html
 MII PHY #0 transceiver registers:
   0787 0787 0787 0787 0787 0787 0787 0787
   0787 0787 0787 0787 0787 0787 0787 0787
   0787 0787 0787 0787 0787 0787 0787 0787
   0787 0787 0787 0787 0787 0787 0787 0787.
 Basic mode control register 0x0787: Auto-negotiation disabled!
   Speed fixed at 10 mbps, full-duplex.
  Transceiver isolated from the MII!
  Restarted auto-negotiation in progress!
  Internal Collision-Test enabled!
 Basic mode status register 0x0787 ... 0787.
   Link status: established.
   Capable of <Warning! No media capabilities>.
   Unable to perform Auto-negotiation, negotiation not complete.
   *** Link Jabber! ***
 This transceiver has no vendor identification.
 I'm advertising 0787: Flow-control 100baseT4 100baseTx-FD 100baseTx
   Advertising no additional info pages.
   Using an unknown (non 802.3) encapsulation.
 Link partner capability is 0787: Flow-control 100baseT4 100baseTx-FD
100baseTx.
   Negotiation did not complete.



--------Forwarded Message-------- 
From: Edward Tandi <[email protected]>
To: Kernel mailing list <[email protected]>
Subject: Kernel 2.4 problem with 3C905B NIC
Date: 03 Jul 2003 19:24:36 +0100

I am currently using kernels 2.4.21-rc1 and 2.4.22-pre2.

I think there is a problem with the 3c59x module. Between two machines
lies a D-Link 100Base-TX Fast Ethernet Hub and a Netgear DS104 switch. I
think the D-Link has only half-duplex capability.

NICs at both ends initialise in 100Mbit mode.

What happens is that during large transfers, there are a very large
number of collisions on the network. This results in the transfer rate
slowing down to somewhere between 3KB-7KB per second.

Googling shows that there have been a number of problems in the past
regarding Linux and the 3C905B. History indicates that card appears to
work on Windows machines but have serious performance problems under
Linux in certain circumstances.

I have tried the various duplex module options and nothing helps. In
fact long transfers appear to trigger a Tulip lockup at the other end.

For those suffering, I have found a temporary work-around. Build the
driver (3c90x-102.tar.gz) at:

http://support.3com.com/infodeli/tools/nic/linuxdownload.htm

Despite all the compilation warnings, all works well! Transfer speeds
have increased to between 7MB-9MB per second, which is what I would
expect it to be.

The 3com site says that the driver is unsupported. Pity. Is there a
maintainer for the 3c59x module? The last entry in 3c59x.c was by akpm
July 2001. I presume this issues has been around for a while.

Ed-T.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

_______________________________________________
vortex mailing list
[email protected]
http://www.scyld.com/mailman/listinfo/vortex
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.