[eepro100] eepro100 woes

arthur dent dent@cedarlug.org
Mon, 02 Oct 2000 21:08:30 -0600


Hi!
I've been trying to get an Intel Pro/100+ card to work on my linux 6.1
(redhat) with not much success. The driver that ships with 6.1 (v1.06)
seemed a little old so i downloaded and compiled the newest one from
scyld (v1.11) (after trying the old one that is!), compiled and
installed it with no problem. Unfortunately  it didn't work (no link
beat though the cable is fine with other machines and the hub definitely
woks). The card's generating interrupts (trying to ping and catting
/proc/interrupts before and after shows incremented numbers as
expected). ifconfig shows an increase in TX packets after a ping with no
errors. (4 packets transmitted, 0 packets received, +1 errors 100%
packet loss).After playing with the various diag programs available for
it here's what i find.
(btw -i'm using kernel 2.2.12-20)

[root@bessie local]# ./pci-config
pci-config.c:v2.01 7/4/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Device #1 at bus 0 device/function 0/0, 70308086.
Device #2 at bus 0 device/function 8/0, 70008086.
Device #3 at bus 0 device/function 8/1, 70108086.
Device #4 at bus 0 device/function 12/0, 12298086.
Device #5 at bus 0 device/function 19/0, 47541002.

[root@bessie local]# ./pci-config -#4
pci-config.c:v2.01 7/4/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Device #4 at bus 0 device/function 12/0.
  12298086 02900107 02000008 00004008 08100000 00001201 08000000
00000000
  00000000 00000000 00000000 000b8086 00000000 000000dc 00000000
3808010b
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
7e220001
  3a004000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  Base Address 0: Memory at 08100000.
  Base Address 1: I/O at 00001200.
  Base Address 2: Memory at 08000000.
  Extended capabilities, first structure at offset 0xdc.
  Extended PCI capability type 1 at 0xdc, next 0.
   Power management entry ver. 2: Capabilities 7e22, Ctrl 4000, Event
3a00.
   Power state D0.
^^^^^^^^^^^^^^^^^^from the previous posts on the list i take it this is
bad. I need a D1, D2 or D3 right?

[root@bessie local]# ./mii-diag
Using the default interface 'eth0'.
Basic registers of MII PHY #1:  1000 7809 02a8 0154 0001 0021 0000 0000.
 Basic mode control register 0x1000: Auto-negotiation enabled.
 Basic mode status register 0x7809 ... 7809.
   Link status: not established.
 Your link partner is generating 10baseT link beat  (no
autonegotiation).

After reading the pci-config docs I decided to try to force a change of
status from D0 to something else. It wasn't pretty after that :(

[root@bessie local]#./pci-config -#4 -S
pci-config.c:v2.01 7/4/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Device #4 at bus 0 device/function 12/0.
  12298086 02900107 02000008 00004008 08100000 00001201 08000000
00000000
  00000000 00000000 00000000 000b8086 00000000 000000dc 00000000
3808010b
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
7e220001
  3a004000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  Base Address 0: Memory at 08100000.
  Base Address 1: I/O at 00001200.
  Base Address 2: Memory at 08000000.
  Extended capabilities, first structure at offset 0xdc.
  Extended PCI capability type 1 at 0xdc, next 0.
   Power management entry ver. 2: Capabilities 7e22, Ctrl 4000, Event
3a00.
   Power state D0.
  Extended capabilities, first structure at offset 0xdc.

Check the status again:
pci-config.c:v2.01 7/4/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Device #4 at bus 0 device/function 12/0.
  12298086 02900107 02000008 00004008 08100000 00001201 08000000
00000000
  00000000 00000000 00000000 000b8086 00000000 000000dc 00000000
3808010b
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000
7e220001
  3a004103 00000000 00000000 00000000 00000000 00000000 00000000
00000000
  Base Address 0: Memory at 08100000.
  Base Address 1: I/O at 00001200.
  Base Address 2: Memory at 08000000.
  Extended capabilities, first structure at offset 0xdc.
  Extended PCI capability type 1 at 0xdc, next 0.
   Power management entry ver. 2: Capabilities 7e22, Ctrl 4103, Event
3a00.
   Power state D3.

Now nothing happens until i try pinging our local router. A few seconds
into the ping things get hairy (are they supposed to?)
the console is flooded with messages:
(from /var/log/messages as i had to reboot the machine at this stage):
IRQ11 is physically blocked! Failing back to low-rate polling.
eth0: too much work at interrupt, status=0xffff. (hundreds of these)
eth0: Transmit timed out: status fff ffff at 343/35 commands 000c0000
00020000 00030000.

Checking /proc/interrupts shows IRQ11 is only used by eth0.
Help? 
(sorry for the long post, not too sure what's relevant. Please let me
know if you need any extra information.)
thanks,
nessim