Bugfix for tulip.c / SMC CardBus still not working

Richard Atterer atterer@informatik.tu-muenchen.de
Fri Feb 4 11:25:23 2000


Hello,

I'm still trying to make my SMC EZ CardBus 10/100 card (model 8034TX)
work with the tulip driver. Since there was no feedback from this list
(is Donald Becker reading it at all?), I've had a look at tulip.c
0.91x myself.

I think I've found one genuine bug in the CardBus section of the
driver, although unfortunately after fixing it the card still doesn't
work. The bug caused my DS21143 chip to be treated as a DS21140, and
the card's ROM to be treated as 'old-style'.

-------- >8 --------
--- tulip-orig.c   Wed Jan 12 19:08:24 2000
+++ tulip.c        Fri Feb  4 15:32:28 2000
@@ -3289,7 +3293,9 @@
                           bus, devfn, ioaddr == 0 ? "address" : "IRQ");
                return NULL;
        }
-       dev = tulip_probe1(pdev, NULL, ioaddr, irq, DC21142, 0);
+       /* RA hack: value '4' in line below to force DS21143, not value 'DC21142'
+          which actually selects DS21140 */
+       dev = tulip_probe1(pdev, NULL, ioaddr, irq, 4, 0);
        if (dev) {
                dev_node_t *node = kmalloc(sizeof(dev_node_t), GFP_KERNEL);
                strcpy(node->dev_name, dev->name);
-------- >8 --------

In other words, it is incorrect to assume that enum tulip_chips
provides indices into pci_tbl.

Having made this change, the card is identified correctly, and the
card's LED reflects whether there's a link or not (though it doesn't
blink when there is activity), but any attempts to send packets have
no effect whatsoever. In particular, not even the all-too-familiar "Tx
hung" message appears in the kernel log -- nothing is logged at all,
even with debug=6!

This is all that appears:

-------- >8 --------
Feb  4 16:28:56 elessar cardmgr[274]: initializing socket 0
Feb  4 16:28:56 elessar kernel: ROM image dump:
Feb  4 16:28:56 elessar kernel:   image 0: 0x000000-0x0001ff, signature PCIR
Feb  4 16:28:56 elessar cardmgr[274]: socket 0: SMC EZ CardBus 10/100 PC Card
Feb  4 16:28:56 elessar cardmgr[274]: executing: 'insmod /lib/modules/2.2.13/pcmcia/cb_enabler.o'
Feb  4 16:28:56 elessar cardmgr[274]: executing: 'insmod /lib/modules/2.2.13/pcmcia/tulip_cb.o'
Feb  4 16:28:56 elessar kernel: tulip.c:v0.91x-ra1 12/15/99 becker@cesdis.gsfc.nasa.gov
Feb  4 16:28:56 elessar kernel: cs: cb_config(bus 32): vendor 0x1011, device 0x0019
Feb  4 16:28:56 elessar kernel:   fn 0 bar 1: io 0x400-0x47f
Feb  4 16:28:56 elessar kernel:   fn 0 bar 2: mem 0xa0081000-0xa00813ff
Feb  4 16:28:56 elessar kernel:   fn 0 rom: mem 0xa0041000-0xa0080fff
Feb  4 16:28:56 elessar kernel: cs: cb_enable(bus 32)
Feb  4 16:28:56 elessar kernel:   bridge io map 0 (flags 0x21): 0x400-0x47f
Feb  4 16:28:56 elessar kernel:   bridge mem map 0 (flags 0x1): 0xa0041000-0xa0081fff
Feb  4 16:28:56 elessar kernel: tulip_attach(bus 32, function 0)
Feb  4 16:28:56 elessar kernel: eth0: Digital DS21143 Tulip rev 65 at 0xc4c3a000, 00:E0:29:55:E1:12, IRQ 10.
Feb  4 16:28:56 elessar kernel: eth0:  EEPROM default media type Autosense.
Feb  4 16:28:56 elessar kernel: eth0:  Index #0 - Media MII (#11) described by a 21142 MII PHY (3) block.
Feb  4 16:28:56 elessar kernel: eth0:  MII transceiver #1 config 3000 status 7809 advertising 00a1.
Feb  4 16:28:56 elessar kernel: eth0:  Advertising 01e1 on PHY 1, previously advertising 00a1.
Feb  4 16:28:56 elessar cardmgr[274]: executing: './network start eth0'
-------- >8 --------

Unfortunately, tulip-diag doesn't seem to work correctly ATM, it
reports the EEPROM as all-zeroes, and apparently all status and error
flags as set.

Any suggestions?

Cheers,

  Richard

-- 
  __   _
  |_) /|  Richard Atterer (currently at Queen's University, Belfast, NI)
  | \/|  http://www.in.tum.de/~atterer/
   ` 
-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-tulip-request@beowulf.org