[eepro100-bug] init failure with Intel PRO/100 S Dual Port Server Adapter (82557)

Ben Low ben@titr.uow.edu.au
Mon Apr 22 06:31:01 2002


The hardware + software:
 - onboard Intel 82820 ("PRO/100 VE") (PCI ID 8086:2449)
 - dual 82557 "Intel PRO/100 S Dual Port Server Adapter" (PCI ID 8086:1229)
 - eepro100 driver in virgin 2.4.18 kernel

 - lspci shows all three i/fs sharing IRQ 11, with separate memory ranges and 
   i/o ports (ref. lspci output below).


The problem (full output below):
# modprobe eepro100
eepro100.c:v1.09j-t 9/29/99 Donald Becker http://www.scyld.com/network/eepro100.html
eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin <saw@saw.sw.com.sg> and others
PCI: Found IRQ 11 for device 01:08.0
eth0: Intel Corp. 82820 (ICH2) Chipset Ethernet Controller, 00:03:47:EB:FA:6B, IRQ 11.
...
eth1: Invalid EEPROM checksum 0xff00, check settings before activating this device!
eth1: OEM i82557/i82558 10/100 Ethernet, FF:FF:FF:FF:FF:FF, IRQ 11.
...
eth2: Invalid EEPROM checksum 0xff00, check settings before activating this device!
eth2: OEM i82557/i82558 10/100 Ethernet, FF:FF:FF:FF:FF:FF, IRQ 11.
...


Ignoring the sage advice of the driver, activating the device (ifconfig) "works" 
in that packets are sent + received, but with a broadcast MAC address (tested via 
crossover to another box running tcpdump -e).

I see a similar-looking (same?) problem was noted about a year ago
http://www.tux.org/hypermail/linux-eepro100-bug/2001-Apr/0000.html

The Intel e100 driver works fine, though it'd be nice to not have to muck around with a 
separate driver, plus the eepro100-based etherboot ROM fails in the same fashion as 
above.

I'm happy to help fix this, as I can :-).

-- 
Ben Low
"Black holes are where God divided by zero." - Steven Wright

# modprobe eepro100   (eth2 the same)
...
eth1: Invalid EEPROM checksum 0xff00, check settings before activating this device!
eth1: OEM i82557/i82558 10/100 Ethernet, FF:FF:FF:FF:FF:FF, IRQ 11.
  Board assembly ffffff-255, Physical connectors present: RJ45 BNC AUI MII
  Primary interface chip unknown-15 PHY #31.
    Secondary interface chip i82555.
  General self-test: passed.
  Serial sub-system self-test: passed.
  Internal registers self-test: passed.
  ROM checksum self-test: passed (0xb874c1d3).
...


# lspci -vv   (related? entries only)
00:00.0 Host bridge: Intel Corp. 82815 815 Chipset Host Bridge and Memory
Controller Hub (rev 02)        Subsystem: Intel Corp.: Unknown device 4532
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-
        Latency: 0
        Capabilities: [88] #09 [f104]

...

00:1e.0 PCI bridge: Intel Corp. 82820 820 (Camino 2) Chipset PCI (rev
11) (prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 0
        Bus: primary=00, secondary=01, subordinate=02, sec-latency=32
        I/O behind bridge: 0000c000-0000dfff
        Memory behind bridge: ff700000-ff8fffff
        Prefetchable memory behind bridge: f6900000-f6afffff
        BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-

...

01:08.0 Ethernet controller: Intel Corp. 82820 (ICH2) Chipset Ethernet
Controller (rev 03)
        Subsystem: Intel Corp.: Unknown device 3013
        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: 32 (2000ns min, 14000ns max), cache line size 08
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at ff8ff000 (32-bit, non-prefetchable) [size=4K]
        Region 1: I/O ports at df00 [size=64]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable+ DSel=0 DScale=2 PME-

01:09.0 PCI bridge: Digital Equipment Corporation DECchip 21154 (rev
05) (prog-if 00 [Normal decode])
        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: 32, cache line size 08
        Bus: primary=01, secondary=02, subordinate=02, sec-latency=32
        I/O behind bridge: 0000c000-0000cfff
        Memory behind bridge: ff700000-ff7fffff
        Prefetchable memory behind
bridge: 00000000f6900000-00000000f6900000
        BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
        Capabilities: [dc] Power Management version 1
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
                Bridge: PM- B3+

02:04.0 Ethernet controller: Intel Corp. 82557 [Ethernet Pro 100] (rev 0d)
        Subsystem: Intel Corp.: Unknown device 1015
        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: 32 (2000ns min, 14000ns max), cache line size 08
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at ff7fe000 (32-bit, non-prefetchable) [size=4K]
        Region 1: I/O ports at ce80 [size=64]
        Region 2: Memory at ff7a0000 (32-bit,
non-prefetchable) [size=128K]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable+ DSel=0 DScale=2 PME-

02:05.0 Ethernet controller: Intel Corp. 82557 [Ethernet Pro 100] (rev 0d)
        Subsystem: Intel Corp.: Unknown device 1015
        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: 32 (2000ns min, 14000ns max), cache line size 08
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at ff7ff000 (32-bit, non-prefetchable) [size=4K]
        Region 1: I/O ports at cf00 [size=64]
        Region 2: Memory at ff7c0000 (32-bit,
non-prefetchable) [size=128K]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable+ DSel=0 DScale=2 PME-