Debug info for (nonfunctional) "New" Lynksys Etherfast Cardbus

Dean Martin Townsley townsley@physics.ucsb.edu
Thu Jan 7 22:32:50 1999


Hey all,
  I see there's been some discussion about this card, and I'm another one of
the ones who got pulled in by the promise of linux compatibility only to get
the "new" version of the card (as referred to by Nathan Anderson on the
linux-tulip list on Dec 23
(http://www.tux.org/hypermail/linux-tulip/1998-Dec/0077.html and replies)
I also have made modification suggested by Donald, i.e.
-#define EEPROM_ADDRLEN 6
+#define EEPROM_ADDRLEN 8
in 0.90f and the card is still non-functional, though the hardware address
comes out looking normal now, which is a step in the right direction.  So I
went into the driver and set TULIP_DEBUG to 10 (a nice high value) and
changed my /etc/pcmcia/config.opts so that the module is loaded with the
debug=100 option to get as much debugging as I could.  Here are the results.

Where I work we have two types of network jacks, one that goes to a hub, the
other that goes to a switch.  The process in each of the below cases goes as
follows:
1. plug dongle into card and line.
2. insert card (cardmgr then loads the driver)
3. bring up the interface with ifconfig
4. try pinging something (never worked)
5. wait a few minutes while the log grows
6. bring down interface with ifconfig
7. do a 'cardctl eject'  to get cardmgr to remove the driver
8. eject card

I'm using cardservices 3.0.5, kernel 2.0.35 and tulip 0.90f with the
aformentioned modification.
So the messages produced by this process were:

For the switch:
cs: cb_config(bus 32): vendor 0x1011, device 0x0019
  fn 0 bar 1: io 0x280-0x2ff
  fn 0 bar 2: mem 0xa0540000-0xa05403ff
  fn 0 rom: mem 0xa0500000-0xa053ffff
cs: cb_enable(bus 32)
  bridge io map 0 (flags 0x21): 0x280-0x2ff
  bridge mem map 0 (flags 0x1): 0xa0500000-0xa0540fff
tulip_attach(bus 32, function 0)
tulip.c:v0.90f 12/17/98 becker@cesdis.gsfc.nasa.gov
eth0: Digital DS21143 Tulip at 0x280, 00 e0 98 04 20 dc, IRQ 3.
eth0:  EEPROM default media type Autosense.
eth0:  MII interface PHY 0, setup/reset sequences 0/0 long, capabilities e0
78.
eth0:  Index #0 - Media MII (#11) described by a 21142 MII PHY (3) block.
eth0: ***WARNING***: No MII transceiver found!
eth0: tulip_open() irq 3.
eth0: Using default 21143 media sense.
eth0: Done tulip_open(), CSR0 f9a04800, CSR5 f0320000 CSR6 b2422202.
eth0: interrupt  csr5=0xf0670004 new csr5=0xf0660000.
eth0: interrupt  csr5=0xf0660000 new csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: interrupt  csr5=0xf0670004 new csr5=0xf0660000.
eth0: interrupt  csr5=0xf0660000 new csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 negotiation status 000020c6, 10baseT.
eth0: 21143 negotiation failed, status 000020c6.
eth0: Testing new 21143 media 100baseTx.
eth0: interrupt  csr5=0xf0678006 new csr5=0xf0660000.
eth0: The transmitter stopped!  CSR5 is f0678006, CSR6 b3862002.
eth0: interrupt  csr5=0xf0160000 new csr5=0xf0670004.
eth0: exiting interrupt, csr5=0xf0670004.
eth0: interrupt  csr5=0xf0670004 new csr5=0xf0660000.
eth0: interrupt  csr5=0xf0660000 new csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 negotiation status 000000c7, 100baseTx.
eth0: interrupt  csr5=0xf0008102 new csr5=0xf0000000.
eth0: The transmitter stopped!  CSR5 is f0008102, CSR6 b2420200.
eth0: interrupt  csr5=0xf0160000 new csr5=0xf0160000.
eth0: exiting interrupt, csr5=0xf0670004.
eth0: interrupt  csr5=0xf0670004 new csr5=0xf0660000.
eth0: interrupt  csr5=0xf0660000 new csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 negotiation status 000020c7, 100baseTx.
eth0: interrupt  csr5=0xf0008102 new csr5=0xf0000000.
eth0: The transmitter stopped!  CSR5 is f0008102, CSR6 b2420200.
eth0: interrupt  csr5=0xf0120000 new csr5=0xf0160000.
eth0: exiting interrupt, csr5=0xf0670004.
eth0: interrupt  csr5=0xf0670004 new csr5=0xf0660000.
eth0: interrupt  csr5=0xf0660000 new csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 negotiation status 000020c6, 100baseTx.
eth0: interrupt  csr5=0xf0008102 new csr5=0xf0000000.
eth0: The transmitter stopped!  CSR5 is f0008102, CSR6 b2420200.
eth0: interrupt  csr5=0xf0160000 new csr5=0xf0160000.
eth0: exiting interrupt, csr5=0xf0670004.
eth0: interrupt  csr5=0xf0670004 new csr5=0xf0660000.
eth0: interrupt  csr5=0xf0660000 new csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 negotiation status 000020c6, 100baseTx.
eth0: interrupt  csr5=0xf0008102 new csr5=0xf0000000.
eth0: The transmitter stopped!  CSR5 is f0008102, CSR6 b2420200.
eth0: interrupt  csr5=0xf0160000 new csr5=0xf0160000.
eth0: exiting interrupt, csr5=0xf0670004.
eth0: interrupt  csr5=0xf0670004 new csr5=0xf0660000.
eth0: interrupt  csr5=0xf0660000 new csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 negotiation status 000020c6, 100baseTx.
eth0: interrupt  csr5=0xf0008102 new csr5=0xf0000000.
eth0: The transmitter stopped!  CSR5 is f0008102, CSR6 b2420200.
eth0: interrupt  csr5=0xf0160000 new csr5=0xf0160000.
eth0: exiting interrupt, csr5=0xf0670004.
eth0: interrupt  csr5=0xf0670004 new csr5=0xf0660000.
eth0: interrupt  csr5=0xf0660000 new csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: Shutting down ethercard, status was f0160000.
eth0: interrupt  csr5=0xf0660004 new csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
tulip_detach(eth0)
cs: cb_disable(bus 32)
cs: cb_release(bus 32)



And for the hub:
cs: cb_config(bus 32): vendor 0x1011, device 0x0019
  fn 0 bar 1: io 0x280-0x2ff
  fn 0 bar 2: mem 0xa04c0000-0xa04c03ff
  fn 0 rom: mem 0xa0480000-0xa04bffff
cs: cb_enable(bus 32)
  bridge io map 0 (flags 0x21): 0x280-0x2ff
  bridge mem map 0 (flags 0x1): 0xa0480000-0xa04c0fff
tulip_attach(bus 32, function 0)
tulip.c:v0.90f 12/17/98 becker@cesdis.gsfc.nasa.gov
eth0: Digital DS21143 Tulip at 0x280, 00 e0 98 04 20 dc, IRQ 3.
eth0:  EEPROM default media type Autosense.
eth0:  MII interface PHY 0, setup/reset sequences 0/0 long, capabilities e0
78.
eth0:  Index #0 - Media MII (#11) described by a 21142 MII PHY (3) block.
eth0: ***WARNING***: No MII transceiver found!
eth0: tulip_open() irq 3.
eth0: Using default 21143 media sense.
eth0: Done tulip_open(), CSR0 f9a04800, CSR5 f0320000 CSR6 b2422202.
eth0: 21143 negotiation status 000020c7, 10baseT.
eth0: 21143 negotiation failed, status 000020c7.
eth0: Testing new 21143 media 100baseTx.
eth0: 21143 negotiation status 000000c7, 100baseTx.
eth0: 21143 negotiation status 000020c7, 100baseTx.
eth0: 21143 negotiation status 000020c7, 100baseTx.
eth0: 21143 negotiation status 000020c7, 100baseTx.
eth0: 21143 negotiation status 000020c7, 100baseTx.
eth0: Shutting down ethercard, status was f0018106.
tulip_detach(eth0)
cs: cb_disable(bus 32)
cs: cb_release(bus 32)


Also, in an attempt to garner more info I ran tried to modify tulip-diag to
account for the change in EEPROM_ADDRLEN.  Since tulip-diag has no
EEPROM_ADDRLEN variable I tried to mimic the change and may have gotten it
wrong.  I changed lines 581-3 from
#define EE_WRITE_CMD    (5 << 6)
#define EE_READ_CMD             (6 << 6)
#define EE_ERASE_CMD    (7 << 6)
to
#define EE_WRITE_CMD    (5 << 8)
#define EE_READ_CMD             (6 << 8)
#define EE_ERASE_CMD    (7 << 8)

This had no effect on the output of tulip-diag, which I reproduce here for
convenience (this is with libmii)

 ./tulip-diag -p 0x280 -f -e -e -a -m -m -v
 
tulip-diag.c:v1.06 9/18/98 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Digital DC21040 Tulip Tulip chip registers at 0x280:
  f8000000 ffffffff ffffffff 67ebebff ffaffdfc f0000000 b2420200 f3fe0000
  e0000000 fffd83ff ffffffff 00000000 000020c6 ffff0001 fffbffff 8ff10008
 The Rx process state is 'Stopped'.
 The Tx process state is 'Stopped'.
Transmit stopped, Receive stopped, full-duplex.
 The transmit threshold is 72.
 Port selection is 10mpbs-serial, full-duplex.
EEPROM contents:
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
  ffff ffff ffff ffff ffff ffff ffff ffff
 ID CRC 0xfa (vs. 0xff), complete CRC 57a987a3.
 MII PHY found at address 0, status 0x7809.
 MII PHY #0 transceiver registers:
   3000 780d 0040 6212 00a1 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0220 0738 0002 00ff 0000 0000 0100 0000
   0036 000c 0f00 ff00 0036 0000 0000 000b.
 Basic mode control register 0x3000: Auto-negotiation enabled.
 Basic mode status register 0x780d ... 780d.
   Link status: established.
   Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Able to perform Auto-negotiation, negotiation not complete.
 Vendor ID is 00:10:18:--:--:--, model 33 rev. 2.
   No specific information is known about this transceiver type.
 I'm advertising 00a1: 100baseTx 10baseT
   Advertising no additional info pages.
   IEEE 802.3 CSMA/CD protocol.
 Link partner capability is 0000:.
   Negotiation did not complete.


That was while connected to the switch without the interface up.

So there's all the info I have for now, I'd be willing to try other things if
necessary.  Let me know if I left anything out.  Any assistance would be
greatly appreciated, as It'd be nice (for me and others) to have this card
working.

Thanks in advance,
-Dean Townsley
<townsley@physics.ucsb.edu>