[eepro100] problem with eepro100.c v1.13
Jan Just Keijser
janjust@cisco.com
Thu, 15 Mar 2001 17:58:14 +0100
Hi all,
recently downloaded and installed eepro100.c v1.13 to get rid of the
wait_for_cmd timeout messages and on *most* of my boxes it is working
splendidly, except one:
it's running RH 6.2 and with the 2.2.14 eepro100.c I never had any
problems, except a very rare occurrence of the 'wait_for_cmd' timeout
thingie. With the new driver, I have a very weird problem: when I
reboot the box, the network connection is killed (the light on my hub
goes out) the moment it is bringing down eth0; this happens about 90% of
the times I've tried so far; worse, at reboot the card won't come back
up and I have to go in and reset the transceiver using mii-diag for
things to clear up; it looks like the card is getting stuck in a state
that it nor the driver can get out of...
here's the output of mii-diag when the card is down:
mii-diag.c:v1.07 10/14/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
MII PHY #1 transceiver registers:
3000 7809 02a8 0150 05e1 05e1 0001 ffff
ffff ffff ffff ffff ffff ffff ffff ffff
0000 0000 0001 0000 0000 0000 0000 0000
0000 0000 129e 0000 ffff ffff ffff ffff.
Basic mode control register 0x3000: Auto-negotiation enabled.
Basic mode status register 0x7809 ... 7809.
Link status: not established.
This transceiver is capable of 100baseTx-FD 100baseTx 10baseT-FD
10baseT.
Able to perform Auto-negotiation, negotiation not complete.
Your link partner is generating 100baseTx link beat (no
autonegotiation).
and eepro100-diag:
eepro100-diag.c:v2.00 4/19/2000 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html with 0.1 changes by VA Linux
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xe400.
i82557 chip registers at 0xe400:
00000000 00000000 00000000 00080002 183fffff 00000000
No interrupt sources are pending.
The transmit unit state is 'Idle'.
The receive unit state is 'Idle'.
This status is unusual for an activated interface.
Intel EtherExpress Pro 10/100 EEPROM contents:
Station address 00:10:DC:7D:50:D7.
Receiver lock-up bug exists. (The driver work-around *is*
implemented.)
Board assembly 668081-002, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
MII PHY #1 transceiver registers:
3000 7809 02a8 0150 05e1 05e1 0001 ffff
ffff ffff ffff ffff ffff ffff ffff ffff
0000 0000 0001 0000 0000 0000 0000 0000
0000 0000 128f 0000 ffff ffff ffff ffff.
I have link beat but auto-negotation fails (even though the hub is seto
to auto-negotiate); I have to type
rmmod eepro100
insmod eepro100
mii-diag -F 100BaseTX
mii-diag -av # link is now up, light goes back on
mii-diag -R
mii-diag -av # we're back to auto-negotiate
After this mii-diag reports that the state of the card goes to '782d'
and everybody is happy again.
The only thing that is odd about this card WRT all the other cards I've
tried is the make and model:
from /var/log/messages:
eepro100.c:v1.13 1/9/2001 Donald Becker <becker@scyld.com>
http://www.scyld.com/network/eepro100.html
eth0: OEM i82557/i82558 10/100 Ethernet at 0xc807f000,
00:10:DC:7D:50:D7, IRQ 9.
Board assembly 668081-002, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
General self-test: passed.
Serial sub-system self-test: passed.
Internal registers self-test: passed.
ROM checksum self-test: passed (0x24c9f043).
Receiver lock-up workaround activated.
lspci -vvx -s 00:12
00:12.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100]
(rev 05)
Subsystem: Intel Corporation 82558 10/100 with Wake on LAN
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 8 min, 56 max, 64 set, cache line size 08
Interrupt: pin A routed to IRQ 9
Region 0: Memory at e7901000 (32-bit, prefetchable)
Region 1: I/O ports at e400
Region 2: Memory at e7800000 (32-bit, non-prefetchable)
Expansion ROM at e6000000 [disabled]
Capabilities: [dc] Power Management version 1
Flags: PMEClk- AuxPwr- DSI+ D1+ D2+ PME+
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
00: 86 80 29 12 07 00 90 02 05 00 00 02 08 40 00 00
10: 08 10 90 e7 01 e4 00 00 00 00 80 e7 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 08 00
30: 00 00 00 e6 dc 00 00 00 00 00 00 00 09 01 08 38
i.e. is has wake-on-lan but this is disabled, otherwise Linux won't even
boot!
I've check interrupts, DMA, etc but could not find anything interesting
- besides, if it were an interrupt conflict then why does the older
driver work? I've also tried the 2.2.16-3 kernel and that didn't do much
good either - the 2.2.16 driver works fine, the eepro100.c v1.13 kills
the cards at reboot.
any ideas anyone?
JJK
CNBU
Cisco Systems Inc
Linux SW Engineer