Re: eepro100 or BIOS?

Charles Wilkins (chas@pcscs.com)
Fri, 3 Dec 1999 06:23:20 -0500


Hi all,

Well, it seems that what is really broke here is PCI BIOS support. It is a
plug and play issue that doesn't exist in earlier kernel releases. i.e. all
2.2.x releases work fine with this IBM BIOS and 82557 intel eepro100 chip.

Here are some traces and logs:

****************************************************************************
*********************************************
2.2.13 kernel diag (normal function)

Dec 3 06:05:11 linux02 kernel: eth0: Intel PCI EtherExpress Pro100 at
0xc4821000, 00:A0:C9:A3:5C:3B, IRQ 11.
Dec 3 06:05:11 linux02 kernel: Board assembly 668081-004, Physical
connectors present: RJ45
Dec 3 06:05:11 linux02 kernel: Primary interface chip i82555 PHY #1.
Dec 3 06:05:11 linux02 kernel: General self-test: passed.
Dec 3 06:05:11 linux02 kernel: Serial sub-system self-test: passed.
Dec 3 06:05:11 linux02 kernel: Internal registers self-test: passed.
Dec 3 06:05:11 linux02 kernel: ROM checksum self-test: passed
(0x3c15c8f1).
Dec 3 06:05:11 linux02 kernel: Receiver lock-up workaround activated.

eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0x1300.
i82557 chip registers at 0x1300:
00000050 00f6d8e0 00000000 00080002 182541e1 00000600
No interrupt sources are pending.
The transmit unit state is 'Suspended'.
The receive unit state is 'Ready'.
This status is normal for an activated but idle interface.
Intel EtherExpress Pro 10/100 EEPROM contents:
Station address 00:A0:C9:A3:5C:3B.
Receiver lock-up bug exists. (The driver work-around *is* implemented.)
Board assembly 668081-004, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
MII PHY #1 transceiver registers:
3000 782d 02a8 0150 05e1 41e1 0001 ffff
ffff ffff ffff ffff ffff ffff ffff ffff
0a03 0000 0001 0000 0000 0000 0000 0000
0000 0000 b110 0000 ffff ffff ffff ffff.

00:00.0 Host bridge: Intel Corporation 430VX - 82437VX TVX [Triton VX] (rev
01)
Flags: bus master, medium devsel, latency 32

00:08.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
(rev 01)
Flags: bus master, medium devsel, latency 0

00:08.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton
II] (prog-if 80)
Flags: bus master, medium devsel, latency 64
I/O ports at fe80

00:0b.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100]
(rev 04)
Subsystem: Unknown device 8086:0009
Flags: bus master, medium devsel, latency 32, IRQ 11
Memory at 08101000 (32-bit, prefetchable)
I/O ports at 1300
Memory at 08000000 (32-bit, non-prefetchable)
Capabilities: [dc] Power Management version 1

00:0c.0 SCSI storage controller: Adaptec AIC-7861 (rev 01)
Flags: bus master, medium devsel, latency 24, IRQ 10
I/O ports at 1200
Memory at 08100000 (32-bit, non-prefetchable)

00:13.0 VGA compatible controller: ATI Technologies Inc 3D Rage I/II 215GT
[Mach64 GT] (rev 48)
Subsystem: Unknown device 1002:4754
Flags: VGA palette snoop, stepping, medium devsel
Memory at 0c000000 (32-bit, non-prefetchable)
I/O ports at ff00
Expansion ROM at 000c0000 [disabled] [size=0]

****************************************************************************
*********************************************
2.3.29 kernel diag (Intel card fails to properly initialize for what
appears to be BIOS related reasons)

Dec 3 03:41:16 linux02 kernel: eepro100.c:v1.09j 7/27/99 Donald Becker
http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html
Dec 3 03:41:16 linux02 kernel: PCI latency timer (CFLT) is unreasonably
low at 24. Setting to 32 clocks.
Dec 3 03:41:16 linux02 kernel: eth1: Invalid EEPROM checksum 0xff00, check
settings before activating this device!
Dec 3 03:41:16 linux02 kernel: eth1: OEM i82557/i82558 10/100 Ethernet at
0xc481e000, FF:FF:FF:FF:FF:FF, IRQ 11.
Dec 3 03:41:16 linux02 kernel: Receiver lock-up bug exists -- enabling
work-around.
Dec 3 03:41:16 linux02 kernel: Board assembly ffffff-255, Physical
connectors present: RJ45 BNC AUI MII
Dec 3 03:41:16 linux02 kernel: Primary interface chip unknown-15 PHY
#31.
Dec 3 03:41:16 linux02 kernel: Secondary interface chip i82555.
Dec 3 03:41:16 linux02 kernel: Self test failed, status ffffffff:
Dec 3 03:41:16 linux02 kernel: Failure to initialize the i82557.
Dec 3 03:41:16 linux02 kernel: Verify that the card is a bus-master
capable slot.

eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0x1300.
i82557 chip registers at 0x1300:
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:A0:C9:A3:5C:3B.
Receiver lock-up bug exists. (The driver work-around *is* implemented.)
Board assembly 668081-004, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
MII PHY #1 transceiver registers:
3000 782d 02a8 0150 05e1 41e1 0001 ffff
ffff ffff ffff ffff ffff ffff ffff ffff
0a03 0000 0001 0000 0000 0000 0000 0000
0000 0000 0000 0000 ffff ffff ffff ffff.

00:00.0 Host bridge: Intel Corporation 430VX - 82437VX TVX [Triton VX] (rev
01)
Flags: bus master, medium devsel, latency 32

00:08.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
(rev 01)
Flags: bus master, medium devsel, latency 0

00:08.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton
II] (prog-if 80 [Master])
Flags: bus master, medium devsel, latency 64
I/O ports at fe80 [size=16]

00:0b.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100]
(rev 04)
Subsystem: Intel Corporation EtherExpress PRO/100+
Flags: bus master, medium devsel, latency 24, IRQ 11
Memory at 08101000 (32-bit, prefetchable) [disabled] [size=4K]
I/O ports at 1300 [size=32]
Memory at 08000000 (32-bit, non-prefetchable) [disabled] [size=1M]
Expansion ROM at <unassigned> [disabled] [size=1M]
Capabilities: [dc] Power Management version 1

00:0c.0 SCSI storage controller: Adaptec AIC-7861 (rev 01)
Flags: bus master, medium devsel, latency 24, IRQ 10
I/O ports at 1200 [size=256]
Memory at 08100000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at <unassigned> [disabled] [size=64K]

00:13.0 VGA compatible controller: ATI Technologies Inc 3D Rage I/II 215GT
[Mach64 GT] (rev 48)
Subsystem: ATI Technologies Inc: Unknown device 4754
Flags: VGA palette snoop, stepping, medium devsel
Memory at 0c000000 (32-bit, non-prefetchable) [size=16M]
I/O ports at ff00 [size=256]
Expansion ROM at 000c0000 [disabled] [size=64K]

According to http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html , the
FF:FF:FF:FF:FF:FF and EEPROM checksum 0xff00 mean that, and i quote "Your
machine's BIOS does not activate the card at the assigned I/O address. The
solution is to set the "PnP OS" in the BIOS setup to "off".

I would normally accept this if it weren't for the fact that the card works
fine up until 2.3.x. So, this is how I draw the conclusion that there is
some PCI BIOS support work still needed badly for 2.3.x kernels as well as
mods for the driver itself in the 2.3.x environment.

Here is what it looks like when I try to ping throug the card in 2.3.x.
Also, please note that this is also dumped directly to STDOUT until the
interface is deavtivated (ifdown eth0).

Dec 3 01:44:31 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/12 command 0001a000.
Dec 3 01:44:35 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/13 command 0001a000.
Dec 3 01:44:38 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/14 command 0001a000.
Dec 3 01:44:41 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/15 command 0001a000.
Dec 3 01:44:45 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/16 command 0001a000.
Dec 3 01:44:48 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/17 command 0001a000.
Dec 3 01:44:51 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/18 command 0001a000.
Dec 3 01:44:55 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/19 command 0001a000.
Dec 3 01:44:58 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/20 command 0001a000.
Dec 3 01:45:01 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/21 command 0001a000.
Dec 3 01:45:05 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/22 command 0001a000.
Dec 3 01:45:08 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/23 command 0001a000.
Dec 3 01:45:11 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/24 command 0001a000.
Dec 3 01:45:15 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/25 command 0001a000.
Dec 3 01:45:18 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/26 command 0001a000.
Dec 3 01:45:21 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/27 command 0001a000.
Dec 3 01:45:25 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/28 command 0001a000.
Dec 3 01:45:28 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/29 command 0001a000.
Dec 3 01:45:31 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/30 command 0001a000.
Dec 3 01:45:35 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/31 command 0001a000.
Dec 3 01:45:38 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/32 command 0001a000.
Dec 3 01:45:41 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/33 command 4001a000.
Dec 3 01:45:45 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/34 command 0001a000.
Dec 3 01:45:48 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/35 command 0001a000.
Dec 3 01:45:51 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/36 command 0001a000.
Dec 3 01:45:55 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/37 command 0001a000.
Dec 3 01:45:58 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/38 command 0001a000.
Dec 3 01:46:01 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/39 command 0001a000.
Dec 3 01:46:05 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/40 command 0001a000.
Dec 3 01:46:08 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/41 command 0001a000.
Dec 3 01:46:11 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/42 command 0001a000.
Dec 3 01:46:15 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/43 command 0001a000.
Dec 3 01:46:18 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/44 command 0001a000.
Dec 3 01:46:21 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/45 command 0001a000.
Dec 3 01:46:25 linux02 kernel: eth0: Transmit timed out: status ffff ffff
at 0/46 command 0001a000.

Any comments or suggestions in this matter would be appreciated.

Regards,
Charles Wilkins
chas@pcscs.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/