linuxppc vs. LinkSys, v0.91

Brian Warner linux-tulip-redist@lothar.com
Thu May 13 02:35:48 1999


Hi all.

I'm having a problem with a LinkSys 10/100 card that I picked up at Fry's
cheap ($25). It connects fine to a cheap 10baseT hub when in my x86 linux box
(stock 2.2.6 kernel, tulip driver), but I can't get it to send packets on my
powerpc linux box. Here's the data:

 linux-2.2.8 with tulip.c v0.91 copied into place, built as a module
 LinkSys "EtherFast" 10/100 card, the kind with the PNIC from what I can tell
 10baseT hub, nothing fancy.

As far as I can tell, the card is detected properly, the MAC address comes out
correctly (no endian issues there). The link light comes on, the 10baseT hub's
link light comes on. But no packets go out, and I see "Transmitter Stopped"
messages in the logs.

A transcript is appended. (The goofiness with 10.0.0.0/8 addresses versus
11.0.0.0/8 comes from already having a 10net link on a different card, and
needing to make the packets go out the right interface. Pay no attention to
the subnet behind that curtain. I had the same problems with a different, more
valid set of local addresses before.)

The outgoing arp triggered by the ping attempt never makes it to the wire.
ifconfig reports a handful of TX errors, about one per arp attempt. If I try
to ping into the interface from another host, the arps never resolve but the
broadcasts appear to get counted in the "RX dropped" slot.

I seem to have the same problem regardless of whether I leave the
autonegotiation alone or if I force it to 9 (MII 10baseT), 11 (MII
autoselect), or 12 (10baseT), which were the only values that made sense to
me.

I haven't been able to compile the tulip-diag.c program, it seems to use some
isa-bus specific functions that aren't available under linuxppc. I'm still
looking into it, might just be a problem with getting the right includes. (I
know how handy that kind of program can be.. I had to write a 21143 driver for
an embedded system at work and used something similar all the time).

Some comments on the powerpc list suggested trying the de4x5 driver with
similar cards, but it completely failed to recognize the card. Seems like it
really insists upon 2114[0123] and nothing else. But with the recent powerpc
changes that went into tulip.c v0.91, I'm hopeful that my problem is something
minor. v0.91 is a far cry better than the version that came with linux-2.2.8:
that one hung the entire machine as soon as the interface was brought up. This
version has a much more well-behaved bug. :)

Any ideas? Any other tests I could run to help track this one down?

thanks,
 -Brian
   warner@lothar.com

--- transcript follows. Log messages are from /var/log/kern.log . ---

21:warner@mongo% asroot insmod ./tulip.o debug=3 

ay 12 23:00:36 mongo kernel: Found Lite-On 82c168 PNIC at PCI I/O address 0x800. 
May 12 23:00:36 mongo kernel: tulip.c:v0.91 4/14/99 becker@cesdis.gsfc.nasa.gov 
May 12 23:00:36 mongo kernel: eth1: Lite-On 82c168 PNIC rev 32 at 0x800, 00:A0:CC:24:F9:21, IRQ 24. 
May 12 23:00:36 mongo kernel: eth1:  MII transceiver #1 config 3100 status 782d advertising 01e1. 

22:warner@mongo% asroot ifconfig eth1 11.0.0.1 netmask 255.0.0.0 up  

May 12 23:00:56 mongo kernel: eth1: tulip_open() irq 24. 
May 12 23:00:56 mongo kernel: eth1: Done tulip_open(), CSR0 00008000, CSR5 02680010 CSR6 814c2002. 
May 12 23:01:01 mongo kernel: eth1: PNIC negotiated capability 00000020, CSR5 02680010. 
May 12 23:01:01 mongo kernel: eth1: PNIC MII PHY status 782d, Link partner report 0020, csr6 814c0000/814c2002. 
May 12 23:01:01 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:01:01 mongo kernel: eth1: Changing PNIC configuration to half-duplex, CSR6 814e0000. 

23:warner@mongo% ping 11.0.0.2
 (no luck)

May 12 23:01:50 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:01:50 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:01:55 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:01:55 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:02:00 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:02:00 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:02:01 mongo kernel: eth1: PNIC negotiated capability 00000020, CSR5 02680010. 
May 12 23:02:01 mongo kernel: eth1: PNIC MII PHY status 782d, Link partner report 0020, csr6 814e0000/814e2002. 
May 12 23:02:05 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:02:05 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:02:00 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:02:00 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:02:01 mongo kernel: eth1: PNIC negotiated capability 00000020, CSR5 02680010. 
May 12 23:02:01 mongo kernel: eth1: PNIC MII PHY status 782d, Link partner report 0020, csr6 814e0000/814e2002. 
May 12 23:02:05 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:02:05 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:02:10 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:02:10 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 

27:warner@mongo% asroot ifconfig eth1 11.0.0.1 netmask 255.0.0.0 down

May 12 23:02:23 mongo kernel: eth1: Shutting down ethercard, status was 2680010. 

28:warner@mongo% asroot rmmod tulip




29:warner@mongo% asroot insmod ./tulip.o debug=3 options=12

May 12 23:02:46 mongo kernel: Found Lite-On 82c168 PNIC at PCI I/O address 0x800. 
May 12 23:02:46 mongo kernel: tulip.c:v0.91 4/14/99 becker@cesdis.gsfc.nasa.gov 
May 12 23:02:46 mongo kernel: eth1: Lite-On 82c168 PNIC rev 32 at 0x800, 00:A0:CC:24:F9:21, IRQ 24. 
May 12 23:02:46 mongo kernel: eth1:  MII transceiver #1 config 3100 status 782d advertising 01e1. 

30:warner@mongo% asroot ifconfig eth1 11.0.0.1 netmask 255.0.0.0 up  

May 12 23:03:08 mongo kernel: eth1: tulip_open() irq 24. 
May 12 23:03:08 mongo kernel: eth1: PNIC PHY status is 201b87a, CSR12 0025, media 10baseT(forced). 
May 12 23:03:08 mongo kernel: eth1: Done tulip_open(), CSR0 00008000, CSR5 02680010 CSR6 810c2002. 
May 12 23:03:13 mongo kernel: eth1: PNIC PHY status 0201b87a, CSR5 02680010. 

31:warner@mongo% ping 11.0.0.2
 (no luck)

May 12 23:03:40 mongo kernel: eth1: Transmit timed out, status 02680010, CSR12 00000025, resetting... 
May 12 23:03:40 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 810c2002, new CSR6 810c0000. 
May 12 23:03:45 mongo kernel: eth1: Transmit timed out, status 02680010, CSR12 00000025, resetting... 
May 12 23:03:45 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 810c2002, new CSR6 810c0000. 
May 12 23:03:50 mongo kernel: eth1: Transmit timed out, status 02680010, CSR12 00000025, resetting... 
May 12 23:03:50 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 810c2002, new CSR6 810c0000. 

32:warner@mongo% asroot ifconfig eth1 11.0.0.1 netmask 255.0.0.0 down

May 12 23:04:03 mongo kernel: eth1: Shutting down ethercard, status was 2680010. 

33:warner@mongo% asroot rmmod tulip
34:warner@mongo% asroot insmod ./tulip.o debug=3 options=9 

May 12 23:04:41 mongo kernel: Found Lite-On 82c168 PNIC at PCI I/O address 0x800. 
May 12 23:04:41 mongo kernel: tulip.c:v0.91 4/14/99 becker@cesdis.gsfc.nasa.gov 
May 12 23:04:41 mongo kernel: eth1: Lite-On 82c168 PNIC rev 32 at 0x800, 00:A0:CC:24:F9:21, IRQ 24. 
May 12 23:04:41 mongo kernel: eth1:  MII transceiver #1 config 3100 status 782d advertising 01e1. 
May 12 23:04:41 mongo kernel: eth1:  Advertising 0021 on PHY 1, previously advertising 01e1. 

35:warner@mongo% asroot ifconfig eth1 11.0.0.1 netmask 255.0.0.0 up

May 12 23:05:00 mongo kernel: eth1: tulip_open() irq 24. 
May 12 23:05:00 mongo kernel: eth1: PNIC PHY status is 201b87a, CSR12 0025, media MII 10baseT. 
May 12 23:05:00 mongo kernel: eth1: Done tulip_open(), CSR0 00008000, CSR5 02680010 CSR6 810c2002. 
May 12 23:05:05 mongo kernel: eth1: PNIC negotiated capability 00000020, CSR5 02680010. 
May 12 23:05:05 mongo kernel: eth1: PNIC MII PHY status 782d, Link partner report 0020, csr6 810c0000/810c2002. 
May 12 23:05:05 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:05:05 mongo kernel: eth1: Changing PNIC configuration to half-duplex, CSR6 814e0000. 

36:warner@mongo% ping 11.0.0.2
 (no luck)

May 12 23:05:30 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:05:30 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:05:35 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:05:35 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:05:40 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:05:40 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:05:45 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:05:45 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:05:50 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:05:50 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:05:55 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:05:55 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:06:00 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:06:00 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 
May 12 23:06:05 mongo kernel: eth1: PNIC negotiated capability 00000020, CSR5 02680010. 
May 12 23:06:05 mongo kernel: eth1: PNIC MII PHY status 782d, Link partner report 0020, csr6 814e0000/814e2002. 
May 12 23:06:05 mongo kernel: eth1: Transmit timeout using MII device. 
May 12 23:06:05 mongo kernel: eth1: The transmitter stopped.  CSR5 is 2698016, CSR6 814e2002, new CSR6 814e0000. 

38:warner@mongo% asroot ifconfig eth1 11.0.0.1 netmask 255.0.0.0 down

May 12 23:06:30 mongo kernel: eth1: Shutting down ethercard, status was 2680010.