Trouble getting ep100 driver to work

Nick Busigin nick@xwing.org
Fri Jan 15 14:53:52 1999


I have recently bought a couple of SMC9432BTX cards for my home Linux
network. Initially, I tried using the BNC connectors as I had some
existing 10Base2 cable.  Unfortunately this didn't work.  Then, having
read that many people were having trouble with running the cards using the
BNC connectors I decided to go with CAT 5 cable with RJ45 connectors. 
This is also not working for me.  :-(

Can anyone on this list provide some interpretation of the diagnostic
information I'm getting from the epic-diag and mii-diag programs?  Or
failing that, if you have a working configuration I would appreciate your
running some diagnostic programs so that I can compare their output with
mine. 

This is some relevant information about my setup.  My appologies for the
length of this post.

Cards:  SMC9432BTX

The epic100.c file states:

        This driver is for the SMC83c170/175 "EPIC" series, as used on the
        SMC EtherPower II 9432 PCI adapter, and several CardBus cards.

The large SMC chip on my card is the: SMC83C171A2QF P, and I'm assuming
that since its within the 170/175 range it *should* work.

Network:  My network consists of two computers connected point-to-point
          using a CAT 5 cable (with RJ45 connectors) that is wired 
          using the cross-over wiring configuration shown on page B-5
          of the SMC User Guide (because I'm not using a hub).

          The only thing different about my cable (and I don't think
          this should make any difference) is that my cable has 8 
          wires, with wires that are not shown as being used on 
          page B-5 being wired straight through.  The technicican 
          who made up the cable assured me that this should work as 
          that is what he has done many times and it has worked.

Operating System:  Linux
Kernel Version: 2.0.36

I compiled the epic100.c driver (version: v1.04) as a module and am
running it with the following options specified in my /etc/conf.modules
file: 

          alias eth0 epic100
          options epic100 debug=6

I chose the maximum debug level as I thought it would help trouble-shoot
why I can't get the cards/driver to work.  

System startup messages as taken from running dmesg after boot-up:

epic100.c:v1.04 8/23/98 Donald Becker
http://cesdis.gsfc.nasa.gov/linux/drivers/epic100.html
eth0: SMC EPIC/100 at 0xd400, IRQ 11, 00:e0:29:1c:2b:af.
eth0: EEPROM contents
 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000
 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000
 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000
 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000 e000
eth0: MII transceiver #3 control 3000 status 7809.
eth0:  Autonegotiation advertising 01e1 link partner 0001.
eth0: Setting half-duplex based on MII xcvr 3 register read of 0001.
eth0: epic_open() ioaddr d400 IRQ 11 status 0512 half-duplex.
eth0: Media selection tick, Tx status 00004003.
eth0: Other registers are IntMask 733f IntStatus 248000 RxStatus ffff007f.
eth0: Setting full-duplex based on MII #3 link partner capability of 41e1.
eth0: Media selection tick, Tx status 00004003.
eth0: Other registers are IntMask 733f IntStatus 248000 RxStatus ffff007f.
eth0: Media selection tick, Tx status 00004003.
eth0: Other registers are IntMask 733f IntStatus 248000 RxStatus ffff007f.

Output of the mii-diag command:

xwing:/home/nick# ./mii-diag
Using the default interface 'eth0'.
 MII PHY #3 transceiver registers:
   3000 782d 0181 4401 01e1 41e1 0003 ffff
   ffff ffff ffff ffff ffff ffff ffff ffff
   0040 0018 ffff ffff ffff ffff ffff ffff
   ffff ffff ffff 003e ffff 0048 0000 1dd8.
 Basic mode control register 0x3000: Auto-negotiation enabled.
 Basic mode status register 0x782d ... 782d.
  Link status: established.
   Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
  Able to perform Auto-negotiation, auto-negotiation complete.
 Vendor ID is 00:60:51:--:--:--, model 0 rev. 1.
  Vendor Quality Semiconductor (unknown type).
  I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT
   Advertising no additional info pages.
   IEEE 802.3 CSMA/CD protocol.
  Link partner capability is 41e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Negotiation  completed.

Relevant lines from 'cat /proc/pci'"

  Bus  0, device  12, function  0:
    Ethernet controller: SMC 9432 TX (rev 8).
      Fast devsel.  Fast back-to-back capable.  IRQ 11.  Master Capable. Latency=32.  Min Gnt=8.Max Lat=28.
      I/O at 0xd400.
      Non-prefetchable 32 bit memory at 0xdd000000.

Output of the 'epic-diag' command with a number of different command line
options:

xwing:/home/nick# ./epic-diag -p 0xd400 -a
The EPIC/100 chip appears to be active, so some registers will not be
read.
To see all register values use the '-f' flag.
EPIC chip registers at 0xd400
 0x000: 0000000a 00248000 0000733f 00000512 0000001d 00000061 00000000 00000000
 0x020: 00000000 00000000 00000000 0000ffff 00000650 000041e1 00000116 00003c60
 0x040: 0000e000 00001c29 0000af2b 00000100 0000ffff 0000ffff 0000ffff 0000ffff
 0x060: 00000004 ******** ******** ******** 00003c7f 00002003 ******** ********
 0x080: ******** 00fff038 ******** ******** ******** ******** ******** ********
 0x0A0: ******** ffff007f ******** ******** ffff03ff ******** ******** ********
 0x0C0: ******** 00fff228 ******** ******** ******** ******** ******** 00fff100
 0x0E0: ******** ******** ******** ******** ******** ******** ******** ********
  No interrupt sources are pending.
   Rx status valid indication.

xwing:/home/nick# ./epic-diag -p 0xd400 -e
EEPROM contents:
  e000 1c29 af2b 0100 001d 1c08 10b8 a015
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0010 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 4d53 3943 3334 4232
  5854 2020 0000 0000 00c0 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
 The word-wide EEPROM checksum is 0xee86.
Parsing the EEPROM of a EPIC/100:
 Station Address 00:E0:29:1C:2B:AF.
 Board name 'SMC9432BTX  ', revision 175.
 Calculated checksum is 00.

??? Note that the Calculated checksum (above) doesn't match the EEPROM
    checksum.  Does this indicate a problem?


xwing:/home/nick# ./epic-diag -p 0xd400 -m
 MII PHY found at address 3.
 MII PHY #3 transceiver registers:
   3000 782d 0181 4401 01e1 41e1 0001 ffff
   ffff ffff ffff ffff ffff ffff ffff ffff
   0040 0018 ffff ffff ffff ffff ffff ffff
   ffff ffff ffff 003e ffff 0048 0000 1dd8.


Output of the 'ifconfig eth0' command shortly after boot:

xwing:/home/nick# ./ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:E0:29:1C:2B:AF  
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0 
          Interrupt:11 Base address:0xd400 


Output of 'netstat -nr':

xwing:/home/nick# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt  Iface
127.0.0.1       0.0.0.0         255.255.255.255 UH     3584 0          0  lo
192.168.10.0    0.0.0.0         255.255.255.0   U      1500 0          0  eth0


Attempt to ping my other computer:

xwing:/home/nick/junk/tmp# ping -c5 belgarath
PING belgarath.xwing.org (192.168.10.20): 56 data bytes

--- belgarath.xwing.org ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss

And now I run the 'ifconfig eth0' again:

xwing:/home/nick# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:E0:29:1C:2B:AF  
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0 
          Interrupt:11 Base address:0xd400 

And the RX and TX fields show that nothing has gone out!

If I look at my ARP table, it shows:

xwing:/home/nick# arp   
Address                 HWtype  HWaddress           Flags Mask    Iface
belgarath.xwing.org             (incomplete)                      eth0

Note that even if I manually load the ARP table, I still can't get things
to work as shown below:

xwing:/home/nick/junk/tmp# arp -s belgarath 00:E0:29:1C:2B:BB

xwing:/home/nick/junk/tmp# arp
Address                 HWtype  HWaddress           Flags Mask  Iface
belgarath.xwing.org     ether   00:E0:29:1C:2B:BB   CM           eth0

xwing:/home/nick/junk/tmp# ping -c 5 belgarath
PING belgarath.xwing.org (192.168.10.20): 56 data bytes

--- belgarath.xwing.org ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss


Furthermore, if I examine the /proc/interrupts output, I see only two
interrupts at IRQ11:

11:          2   SMC EPIC/100

which seems rather strange.

Conclusion:

My driver isn't working properly with my network card. 

Now... what to do next?

                                  Nick

--------------------------------------------------------------------------
Nick Busigin  ...Sent from my Debian/GNU Linux Machine...   nick@xwing.org

To obtain my pgp public key, email me with the subject: "get pgp-key"
--------------------------------------------------------------------------



 | To unsubscribe, send mail to Majordomo@cesdis.gsfc.nasa.gov, and within the
 |  body of the mail, include only the text:
 |   unsubscribe this-list-name youraddress@wherever.org
 | You will be unsubscribed as speedily as possible.