Tulip troubles - no packets

Hal Murray murray@pa.dec.com
Wed Jun 16 15:45:16 1999


I have two cases where I haven't been able to get a Tulip to work.  
The symptoms are always the same: netstat -i shows that no packets 
are successfully sent or received. 

The first case is a 600 MHz Alpha/Miata running RH 5.2 (2.2.3).  
The second case is a 400 MHz Celeron with two DE500s running RH 6.0 
or 2.2.10.  The first DE500 works but the second one doesn't. 

First, the Miata:

Has anybody ever managed to get the Tulip that's builtin to a Miata 
to work?  (preferably the 600au)  If so, what speed/mode were you 
using and/or did you force that mode via "options"? 

Are the Ethernet subsystems the same on the various versions of the 
Miatas?


This is from a Personal Workstation 600au (Miata) installed from 
the Red Hat 5.2 CD. 

>From dmesg:

Linux version 2.2.3 (jestabro@linux03.hlo.dec.com) (gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)) #7 Fri Mar 26 16:06:36 EST 1999
Booting on Miata using machine vector Miata
Command line: root=/dev/sda1 bootdevice=/dev/sda bootfile=vmlinux.gz
...
tulip.c:v0.89H 5/23/98 becker@cesdis.gsfc.nasa.gov
eth0: Digital DS21142/3 Tulip at 0x8000, 00 00 f8 76 2b c6, IRQ 24.
eth0:  EEPROM default media type Autosense.
eth0:  Index #0 - Media 10baseT (#0) described by a 21142 Serial PHY (2) block.
eth0:  Index #1 - Media 10baseT-FD (#4) described by a 21142 Serial PHY (2) block.
eth0:  Index #2 - Media 10base2 (#1) described by a 21142 Serial PHY (2) block.
eth0:  Index #3 - Media AUI (#2) described by a 21142 Serial PHY (2) block.
eth0:  Index #4 - Media MII (#11) described by a 21142 MII PHY (3) block.
eth0:  MII transceiver found at MDIO address 5, config 2000 status 784b.
eth0:  Advertising 01e1 on PHY 5, previously advertising 01e1.

  What's the "Advertising 01e1" trying to tell me?


>From tulip-diag:

tulip-diag.c:v1.10 4/12/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Digital DS21143 Tulip adapter at 0x8000.
 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 'Idle'.
  The transmit threshold is 128.
 MII PHY found at address 5, status 0x786f.
 MII PHY #5 transceiver registers:
   3000 786f 2000 5c01 01e1 40a1 0001 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0001 0000 0000 0001 8060
   8020 0c25 0000 1800 a3b9 0076 5a05 001b.
  Internal autonegotiation state is 'Ability detect'.

I wasn't smart enough to capture the netstat printout.  It has 0s 
for the OK column and small integers for the errs.

I've tried plugging it into switch ports that were forced to 100 
and 10 and/or I've tried various options settings but I haven't managed 
to find any combination that works. 

-----


Now for the 400 Mhz Celeron (Compaq Deskpro) system: 

>From dmesg:

Linux version 2.2.10 ... 
...

tulip.c:v0.89H 5/23/98 becker@cesdis.gsfc.nasa.gov
eth0: Digital DS21140 Tulip at 0x1000, 00 00 f8 1a 46 7e, IRQ 11.
eth0:  EEPROM default media type Autosense.
eth0:  Index #0 - Media MII (#11) described by a 21140 MII PHY (1) block.
eth0:  MII transceiver found at MDIO address 5, config 3100 status 782d.
eth0:  Advertising 01e1 on PHY 5, previously advertising 01e1.
eth1: Digital DS21142/3 Tulip at 0x1080, 00 00 f8 06 e2 76, IRQ 11.
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.
eth0:  Advertising 01e1 on PHY 0 (5).
eth1: Using user-specified media 100baseTx.
eth1: 21142 100baseTx link beat good.
eth2: OEM i82557/i82558 10/100 Ethernet at 0x1400, 00:08:C7:08:2A:59, IRQ 11.
  Board assembly 702536-006, Physical connectors present: RJ45
  Primary interface chip i82555 PHY #1.
  General self-test: passed.
  Serial sub-system self-test: passed.
  Internal registers self-test: passed.
  ROM checksum self-test: passed (0x24c9f043).
  Receiver lock-up workaround activated.
eth1: 21142 10baseT link beat good.

I have two identical boxes with eth1 connected via a point-point 
link.  (The hardware setup works fine with NetBSD.) 

Both systems have the following in /etc/conf.modules
alias eth0 tulip
alias eth2 eepro100
options tulip options=12,3

The first Tulip works at 10/half, as expected.  It's an old DE500 
plugged into a hub.  The second Tulip is a new DE500. 

I have new DE500s working in another pair of systems - P-II rather 
than Celeron, but they only have a single Tulip.  I'm using options=3 
and they are running at 100/half like I expect. 


I just rebooted one end.  When I did that, the other appended this 
to dmesg: 

eth1: 21142 10baseT link beat good.
eth1: 21142 10baseT link beat good.
eth1: 21142 10baseT link beat good.
eth1: 21142 10baseT link beat good.



>From tulip-diag:

tulip-diag.c:v1.10 4/12/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Digital DS21140 Tulip adapter at 0x1000.
 Port selection is MII, half-duplex.
 Transmit started, Receive started, half-duplex.
  The Rx process state is 'Waiting for packets'.
  The Tx process state is 'Idle'.
  The transmit threshold is 128.
 MII PHY found at address 5, status 0x782d.
 MII PHY #5 transceiver registers:
   3100 782d 2000 5c00 01e1 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 8040
   8000 0045 0000 3000 a3b9 0080 8d05 001d.
Index #2: Found a Digital DS21143 Tulip adapter at 0x1080.
 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.
   No MII transceivers found!
  Internal autonegotiation state is 'Negotiation complete'.




Actually, now that I poke around some more, a few packets are getting 
through. 

PING 10.0.11.47 (10.0.11.47): 56 data bytes
64 bytes from 10.0.11.47: icmp_seq=5 ttl=255 time=0.2 ms
64 bytes from 10.0.11.47: icmp_seq=4 ttl=255 time=1000.4 ms
64 bytes from 10.0.11.47: icmp_seq=6 ttl=255 time=0.6 ms
64 bytes from 10.0.11.47: icmp_seq=10 ttl=255 time=0.4 ms
64 bytes from 10.0.11.47: icmp_seq=11 ttl=255 time=0.0 ms
64 bytes from 10.0.11.47: icmp_seq=12 ttl=255 time=0.0 ms
64 bytes from 10.0.11.47: icmp_seq=21 ttl=255 time=0.0 ms
64 bytes from 10.0.11.47: icmp_seq=28 ttl=255 time=0.0 ms
64 bytes from 10.0.11.47: icmp_seq=34 ttl=255 time=0.0 ms
64 bytes from 10.0.11.47: icmp_seq=42 ttl=255 time=0.5 ms

--- 10.0.11.47 ping statistics ---
43 packets transmitted, 10 packets received, 76% packet loss
round-trip min/avg/max = 0.0/100.2/1000.4 ms

A while later, I tried again with 1000 byte packets.  Nothing. Normal 
length pings seemed dead too.  But if I wait long enough, a few get 
through.