Failure to activate SMC9332DST in linux 2.2.2+ tulip driver

Jonathan Stanton jonathan@cs.jhu.edu
Tue Apr 27 22:15:59 1999


Hello,

	I have started having a problem with some Tulip based SMC9332
cards that we have used successfully at 100BTX for several years. They
work just great under 2.0. kernels and worked fine under the 2.1 series
whenever I tried it, but at 2.2.3 the tulip driver stopped detecting that
they were really SMC9332DST's when it couldn't find a MII. Here is a
successful boot in 2.0.36

tulip.c:v0.89H 5/23/98 becker@cesdis.gsfc.nasa.gov
eth0: Digital DS21140 Tulip at 0xe400, 00 00 c0 41 d6 ed, IRQ 9.
eth0: Old format EEPROM on 'SMC9332DST' board.  Using substitute media
control info.
eth0:  EEPROM default media type Autosense.
eth0:  Index #0 - Media 10baseT (#0) described by a 21140 non-MII (0)
block.
eth0:  Index #1 - Media 100baseTx (#3) described by a 21140 non-MII (0)
block.

Here is what happens under 2.2.3+ (upto 2.2.6 which I just tried)

tuklip.c v0.91 4.14/99
digital DS21140 Tulip rev 18 at 0xfc80, EEPROM not presenet, 
00:4c:69:6e:75:79, IRQ 9
Old style EEPROM with no media selection information.

(this happens with both the current .91 driver (you see above copied by
hand) or with the default 2.2.6 tulip driver which is .89something.)
Actually the .89 driver just doesn't enable networking but the
booting of the machine continues and I end up with a login screen but no
networking. The .91 version is much LESS friendly and the module never
allows the booting to continue, instead it generates a stream of:

eth0: 21140 transmit timed out, status 0001ebef, SIA 7fffffff 00000000
7fffccff fcc00600,
resetting...


messages every 10 seconds or so and the only thing that works is
Alt-SysRQ, to umount and reboot.

I have had the problem with several different cards on different machines
(at first I just swapped the cards for eepro100's from non-linux machines
because I didn't have time to debug it, but now I'm out of cards to swap
with :-))

I am attaching a /proc/pci dump and the result of running the tulip-diag
program with options -f -e -e -a -m -m  as suggested on the debugging
web page.

I'd be happy to run any tests or try out source modifications to the
driver. I read though the detection code and I can see where the 'fixups'
array should be triggered to load in the pre-mii support for this card,
but I can't see why it isn't triggering correctly.

Thanks for any help, and I'm reading the list though the web archives, so
I'd appreciate a direct cc to jonathan@cs.jhu.edu. 

Jonathan

PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Intel 82441FX Natoma (rev 2).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  Latency=64.  
  Bus  0, device   7, function  0:
    ISA bridge: Intel 82371SB PIIX3 ISA (rev 1).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  No bursts.  
  Bus  0, device   7, function  1:
    IDE interface: Intel 82371SB PIIX3 IDE (rev 0).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  Latency=64.  
      I/O at 0xffa0 [0xffa1].
  Bus  0, device  17, function  0:
    VGA compatible controller: Matrox Millennium (rev 1).
      Medium devsel.  Fast back-to-back capable.  IRQ 11.  
      Non-prefetchable 32 bit memory at 0xffbec000 [0xffbec000].
      Prefetchable 32 bit memory at 0xff000000 [0xff000008].
  Bus  0, device  19, function  0:
    Ethernet controller: DEC DC21140 (rev 18).
      Medium devsel.  Fast back-to-back capable.  IRQ 9.  Master Capable.  Latency=66.  
      I/O at 0xfc80 [0xfc81].
      Non-prefetchable 32 bit memory at 0xffbebc00 [0xffbebc00].

tulip-diag output:
------------------
tulip-diag.c:v1.10 4/12/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Digital DS21140 Tulip adapter at 0xfc80.
Digital DS21140 Tulip chip registers at 0xfc80:
  ffffffff 00000000 00000000 02f4f054 02f4f0d4 0001ebef ffffffff 0001ebef
  00fff0d8 00050000 034b0820 00fff0f8 7fffffff 00000000 7fffccff fcc00600
 Port selection is 100mbps-SYM/PCS 100baseTx scrambler, full-duplex.
 Transmit started, Receive started, full-duplex.
  The Rx process state is 'Stopped'.
  The Tx process state is 'Stopped'.
  PCI bus error!: Parity Error.
  The transmit unit is set to store-and-forward.
 Interrupt sources are pending!  CSR5 is 0001ebef.
   Tx done indication.
   Tx complete indication.
   Tx out of buffers indication.
   Transmit Jabber indication.
   Tx FIFO Underflow indication.
   Rx Done indication.
   Receiver out of buffers indication.
   Receiver stopped indication.
   Receiver jabber indication.
   Timer expired indication.
   PCI bus error indication.
   Early Rx indication.
EEPROM contents:
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
 ID CRC 0xe3 (vs. 00), complete CRC 3b59d4af.
  * An old-style EEPROM layout was found.
  * The old-style layout does not contain transceiver control information.
  * This board may not work, or may work only with a subset of transceiver
  * options or data rates.
   No MII transceivers found!

-- 
-------------------------------------------------------
Jonathan R. Stanton         jonathan@cs.jhu.edu
Dept. of Computer Science   
Johns Hopkins University    
-------------------------------------------------------