[tulip] Problem with tulip, 2.4.0test kernel

Jonathan Earle jearle@nortelnetworks.com
Mon, 15 Jan 2001 13:05:54 -0500


Hi,

Config is two PIII boxes, RH6.2, kernel 2.4.0-test9 (tulip driver lifted
from kernel 2.4.0 - version 0.9.13 (January 2, 2001) but was previously
using the proper 2.4.0-test9 driver - version 0.9.10 (September 6, 2000))
and Znyx ZX346Q 4port cards, with each port connected to the corresponding
port in the other PC via a crossover cable.  Tulip driver is built as a
module.  Other nic in the PC is a builtin 3c905C.

Using the tulip driver that came with the 2.4.0-test9 kernel, or the latest
kernel, produces the same effect: a fresh boot of the PC will load the tulip
driver and ifconfig the interfaces, but the interfaces are not actually up -
I can ping the interface itself, but I cannot ping the other PC.  If I load
the de4x5 driver instead, I _can_ ping the other PC.  (Another odd thing is,
if I load the de4x5 module, ifconfig the interfaces, then deconfig them,
unload de4x5.o, load tulip.o and bring the interfaces up, it seems to work
properly.)  If I connect the ports to some real hardware such as a switch,
the ports will work okay.

dmesg shows:

Linux Tulip driver version 0.9.13 (January 2, 2001)
eth1: Digital DS21143 Tulip rev 65 at 0xec80, 00:C0:95:E6:49:38, IRQ 7.
eth1:  EEPROM default media type Autosense.
eth1:  Index #0 - Media 10baseT (#0) described by a 21142 Serial PHY (2)
block.
eth1:  Index #1 - Media 10baseT-FD (#4) described by a 21142 Serial PHY (2)
block.
eth1:  Index #2 - Media 100baseTx (#3) described by a 21143 SYM PHY (4)
block.
eth1:  Index #3 - Media 100baseTx-FD (#5) described by a 21143 SYM PHY (4)
block.
eth2: Digital DS21143 Tulip rev 65 at 0xec00, 00:C0:95:E6:49:39, IRQ 5.
eth2:  EEPROM default media type Autosense.
eth2:  Index #0 - Media 10baseT (#0) described by a 21142 Serial PHY (2)
block.
eth2:  Index #1 - Media 10baseT-FD (#4) described by a 21142 Serial PHY (2)
block.
eth2:  Index #2 - Media 100baseTx (#3) described by a 21143 SYM PHY (4)
block.
eth2:  Index #3 - Media 100baseTx-FD (#5) described by a 21143 SYM PHY (4)
block.
eth3: Digital DS21143 Tulip rev 65 at 0xe880, 00:C0:95:E6:49:3A, IRQ 3.
eth3:  EEPROM default media type Autosense.
eth3:  Index #0 - Media 10baseT (#0) described by a 21142 Serial PHY (2)
block.
eth3:  Index #1 - Media 10baseT-FD (#4) described by a 21142 Serial PHY (2)
block.
eth3:  Index #2 - Media 100baseTx (#3) described by a 21143 SYM PHY (4)
block.
eth3:  Index #3 - Media 100baseTx-FD (#5) described by a 21143 SYM PHY (4)
block.
eth4: Digital DS21143 Tulip rev 65 at 0xe800, 00:C0:95:E6:49:3B, IRQ 4.
eth4:  EEPROM default media type Autosense.
eth4:  Index #0 - Media 10baseT (#0) described by a 21142 Serial PHY (2)
block.
eth4:  Index #1 - Media 10baseT-FD (#4) described by a 21142 Serial PHY (2)
block.
eth4:  Index #2 - Media 100baseTx (#3) described by a 21143 SYM PHY (4)
block.
eth4:  Index #3 - Media 100baseTx-FD (#5) described by a 21143 SYM PHY (4)
block. 

Playing with tulip-diag produces:

root@onc1:~> tulip-diag -aa -f
tulip-diag.c:v2.03 7/31/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a Digital DS21143 Tulip adapter at 0xec80.
Digital DS21143 Tulip chip registers at 0xec80:
  f8a08000 ffffffff ffffffff 06172000 06172200 f0260000 30002002 fbfffbff
  e0000000 ffffcbf8 ffffffff 00000000 000000c6 ffff0000 fff80000 8ff4c008
 Port selection is 10mpbs-serial, half-duplex.
 Transmit started, Receive started, half-duplex.
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Waiting for Tx to finish'.
  The transmit threshold is 72.
  The NWay status register is 000000c6.
  Internal autonegotiation state is 'Autonegotiation disabled'.
Index #2: Found a Digital DS21143 Tulip adapter at 0xec00.
Digital DS21143 Tulip chip registers at 0xec00:
  f8a08000 ffffffff ffffffff 06179000 06179200 f0660000 b3862202 fbfffbff
  e0000000 ffffcbf8 ffffffff 00000000 41e1d2cd ffff0001 fffbffff 8ffdc008
 Port selection is 100mbps-SYM/PCS 100baseTx scrambler, full-duplex.
 Transmit started, Receive started, full-duplex.
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Idle'.
  The transmit threshold is 128.
  The NWay status register is 41e1d2cd.
  Internal autonegotiation state is 'Negotiation complete'.
Index #3: Found a Digital DS21143 Tulip adapter at 0xe880.
Digital DS21143 Tulip chip registers at 0xe880:
  f8a08000 ffffffff ffffffff 0619f000 0619f200 f0260000 b2422202 fbfffbff
  e0000000 ffffcbf8 ffffffff 00000000 000020c6 ffff0001 fffbffff 8ff50000
 Port selection is 10mpbs-serial, full-duplex.
 Transmit started, Receive started, full-duplex.
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Waiting for Tx to finish'.
  The transmit threshold is 72.
  The NWay status register is 000020c6.
  Internal autonegotiation state is 'Ability detect'.
Index #4: Found a Digital DS21143 Tulip adapter at 0xe800.
Digital DS21143 Tulip chip registers at 0xe800:
  f8000000 ffffffff ffffffff 0f90a000 0f90a080 f0000000 b2420200 f3fe0000
  e0000000 ffffcbf8 ffffffff 00000000 000020c6 ffff0001 fffbffff 8ff5c000
 Port selection is 10mpbs-serial, full-duplex.
 Transmit stopped, Receive stopped, full-duplex.
  The Rx process state is 'Stopped'.
  The Tx process state is 'Stopped'.
  The transmit threshold is 72.
  The NWay status register is 000020c6.
  Internal autonegotiation state is 'Ability detect'.

root@onc1:~> tulip-diag -ee
tulip-diag.c:v2.03 7/31/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a Digital DS21143 Tulip adapter at 0xec80.
 Port selection is 10mpbs-serial, half-duplex.
 Transmit started, Receive started, half-duplex.
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Waiting for Tx to finish'.
  The transmit threshold is 72.
  The NWay status register is 000000c6.
EEPROM size is 6.
PCI Subsystem IDs, vendor 110d, device 0013.
CardBus Information Structure at offset 00000000.
Ethernet MAC Station Address 00:C0:95:E6:49:38.
EEPROM transceiver/media description for the Digital DS21143 Tulip chip.
Leaf node at offset 39, default media type 0800 (Autosense).
 4 transceiver description blocks:
  Media 10baseT, block type 2, length 6.
   Serial transceiver for 10baseT (media type 0).
    GP pin direction 08af  GP pin data 00a5.
  Media 10baseT-Full Duplex, block type 2, length 6.
   Serial transceiver for 10baseT-Full Duplex (media type 4).
    GP pin direction 08af  GP pin data 00a5.
  Media 100baseTx, block type 4, length 8.
   SYM transceiver for 100baseTx (media type 3).
    GP pin direction 08af  GP pin data 00a5.
    No media detection indication (command 80 61).
  Media 100baseTx Full Duplex, block type 4, length 8.
   SYM transceiver for 100baseTx Full Duplex (media type 5).
    GP pin direction 08af  GP pin data 00a5.
    No media detection indication (command 80 61).
EEPROM contents:
  110d 0013 0000 0000 0000 0000 0000 0000
  0047 0404 c000 e695 3849 2704 0500 0027
  2706 0700 0027 0000 0408 0286 af00 a508
  8600 0402 08af 00a5 0488 af03 a508 6100
  8880 0504 08af 00a5 8061 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 524a 0001 1300 0001 061f 0072 8fff
 ID block CRC 0x47 (vs. 0x47).
  Full contents CRC 0x8fff (read as 0x8fff).
  Internal autonegotiation state is 'Autonegotiation disabled'.
Index #2: Found a Digital DS21143 Tulip adapter at 0xec00.
 Port selection is 100mbps-SYM/PCS 100baseTx scrambler, full-duplex.
 Transmit started, Receive started, full-duplex.
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Idle'.
  The transmit threshold is 128.
  The NWay status register is 41e1d2cd.
EEPROM size is 6.
PCI Subsystem IDs, vendor 110d, device 0013.
CardBus Information Structure at offset 00000000.
Ethernet MAC Station Address 00:C0:95:E6:49:39.
EEPROM transceiver/media description for the Digital DS21143 Tulip chip.
Leaf node at offset 30, default media type 0800 (Autosense).
 4 transceiver description blocks:
  Media 10baseT, block type 2, length 6.
   Serial transceiver for 10baseT (media type 0).
    GP pin direction 08af  GP pin data 00a5.
  Media 10baseT-Full Duplex, block type 2, length 6.
   Serial transceiver for 10baseT-Full Duplex (media type 4).
    GP pin direction 08af  GP pin data 00a5.
  Media 100baseTx, block type 4, length 8.
   SYM transceiver for 100baseTx (media type 3).
    GP pin direction 08af  GP pin data 00a5.
    No media detection indication (command 80 61).
  Media 100baseTx Full Duplex, block type 4, length 8.
   SYM transceiver for 100baseTx Full Duplex (media type 5).
    GP pin direction 08af  GP pin data 00a5.
    No media detection indication (command 80 61).
EEPROM contents:
  110d 0013 0000 0000 0000 0000 0000 0000
  0047 0104 c000 e695 3949 1e00 0000 0800
  8604 0002 08af 00a5 0286 af04 a508 8800
  0304 08af 00a5 8061 0488 af05 a508 6100
  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 524a 0001 1300 0001 061f 0072 027e
 ID block CRC 0x47 (vs. 0x47).
  Full contents CRC 0x027e (read as 0x027e).
  Internal autonegotiation state is 'Negotiation complete'.
Index #3: Found a Digital DS21143 Tulip adapter at 0xe880.
 Port selection is 100mbps-SYM/PCS 100baseTx scrambler, half-duplex.
 Transmit started, Receive started, half-duplex.
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Waiting for Tx to finish'.
  The transmit threshold is 128.
  The NWay status register is 000000c6.
EEPROM size is 6.
PCI Subsystem IDs, vendor 110d, device 0013.
CardBus Information Structure at offset 00000000.
Ethernet MAC Station Address 00:C0:95:E6:49:3A.
EEPROM transceiver/media description for the Digital DS21143 Tulip chip.
Leaf node at offset 30, default media type 0800 (Autosense).
 4 transceiver description blocks:
  Media 10baseT, block type 2, length 6.
   Serial transceiver for 10baseT (media type 0).
    GP pin direction 08af  GP pin data 00a5.
  Media 10baseT-Full Duplex, block type 2, length 6.
   Serial transceiver for 10baseT-Full Duplex (media type 4).
    GP pin direction 08af  GP pin data 00a5.
  Media 100baseTx, block type 4, length 8.
   SYM transceiver for 100baseTx (media type 3).
    GP pin direction 08af  GP pin data 00a5.
    No media detection indication (command 80 61).
  Media 100baseTx Full Duplex, block type 4, length 8.
   SYM transceiver for 100baseTx Full Duplex (media type 5).
    GP pin direction 08af  GP pin data 00a5.
    No media detection indication (command 80 61).
EEPROM contents:
  110d 0013 0000 0000 0000 0000 0000 0000
  0047 0104 c000 e695 3a49 1e00 0000 0800
  8604 0002 08af 00a5 0286 af04 a508 8800
  0304 08af 00a5 8061 0488 af05 a508 6100
  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 524a 0001 1300 0001 061f 0072 947e
 ID block CRC 0x47 (vs. 0x47).
  Full contents CRC 0x947e (read as 0x947e).
  Internal autonegotiation state is 'Autonegotiation disabled'.
Index #4: Found a Digital DS21143 Tulip adapter at 0xe800.
 Port selection is 10mpbs-serial, full-duplex.
 Transmit stopped, Receive stopped, full-duplex.
  The Rx process state is 'Stopped'.
  The Tx process state is 'Stopped'.
  The transmit threshold is 72.
  The NWay status register is 000020c6.
EEPROM size is 6.
PCI Subsystem IDs, vendor 110d, device 0013.
CardBus Information Structure at offset 00000000.
Ethernet MAC Station Address 00:C0:95:E6:49:3B.
EEPROM transceiver/media description for the Digital DS21143 Tulip chip.
Leaf node at offset 30, default media type 0800 (Autosense).
 4 transceiver description blocks:
  Media 10baseT, block type 2, length 6.
   Serial transceiver for 10baseT (media type 0).
    GP pin direction 08af  GP pin data 00a5.
  Media 10baseT-Full Duplex, block type 2, length 6.
   Serial transceiver for 10baseT-Full Duplex (media type 4).
    GP pin direction 08af  GP pin data 00a5.
  Media 100baseTx, block type 4, length 8.
   SYM transceiver for 100baseTx (media type 3).
    GP pin direction 08af  GP pin data 00a5.
    No media detection indication (command 80 61).
  Media 100baseTx Full Duplex, block type 4, length 8.
   SYM transceiver for 100baseTx Full Duplex (media type 5).
    GP pin direction 08af  GP pin data 00a5.
    No media detection indication (command 80 61).
EEPROM contents:
  110d 0013 0000 0000 0000 0000 0000 0000
  0047 0104 c000 e695 3b49 1e00 0000 0800
  8604 0002 08af 00a5 0286 af04 a508 8800
  0304 08af 00a5 8061 0488 af05 a508 6100
  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 524a 0001 1300 0001 061f 0072 e441
 ID block CRC 0x47 (vs. 0x47).
  Full contents CRC 0xe441 (read as 0xe441).
  Internal autonegotiation state is 'Ability detect'.

Now, if I run tulip-diag -m (or -mm), it tells me there are no MII
transceivers.  However, if I run mii-diag, it shows:

root@onc1:~> mii-diag eth1
Basic registers of MII PHY #32:  0000 784c 0000 0000 0401 0000 0000 0000.
 Basic mode control register 0x0000: Auto-negotiation disabled, with
 Speed fixed at 10 mbps, half-duplex.
 You have link beat, and everything is working OK.
 Link partner information information is not exchanged when in fixed speed
mode.
root@onc1:~> mii-diag eth2
Basic registers of MII PHY #32:  1000 786c 0000 0000 0621 41e1 0000 0000.
 Basic mode control register 0x1000: Auto-negotiation enabled.
 You have link beat, and everything is working OK.
 Your link partner advertised 41e1: 100baseTx-FD 100baseTx 10baseT-FD
10baseT.
root@onc1:~> mii-diag eth3
Basic registers of MII PHY #32:  0000 784c 0000 0000 05e1 0000 0000 0000.
 Basic mode control register 0x0000: Auto-negotiation disabled, with
 Speed fixed at 10 mbps, half-duplex.
 You have link beat, and everything is working OK.
 Link partner information information is not exchanged when in fixed speed
mode.
root@onc1:~> mii-diag eth4
Basic registers of MII PHY #32:  1000 784c 0000 0000 0621 0000 0000 0000.
 Basic mode control register 0x1000: Auto-negotiation enabled.
 You have link beat, and everything is working OK.
 Your link partner does not do autonegotiation, and this transceiver type
  does not report the sensed link speed.         

So, not only does the link operate sporadically when connected to another PC
instead of a switch, the diagnostic utils appear to report conflicting
information - at least, the way I interpret the reports indicates so.

Anyone have thoughts as to what is going on here and how I can get this
working?

Also, how can I force a specific speed?  I know I can pass 'full_duplex=1'
to the module to enable full duplex, but what do I pass to force 100TX
instead of 10BT?

Cheers!
Jon