[vortex] 3c59x LK1.1.16 Linux-2.4 PCI bus error/Host error

Donald Becker becker@scyld.com
Sat Jul 13 23:24:01 2002


On Sun, 14 Jul 2002 epl@labyrinth.net.au wrote:

> Subject: [vortex] 3c59x LK1.1.16 Linux-2.4 PCI bus error/Host error
> 
>    Using a 3com 905B-100BaseTX NIC with the 3c59x driver, I can induce
> the module to lock-up by transferring large amounts of data via the
> network.
> 
>    By bringing down the network I can stop flow of messages to syslog
> (see below). If I restart the network without unloading the module, the
> network stays locked up and the flow of messages to syslog resumes. If
> I stop the network, unload the module and restart the network, I can
> sanely use the network until the next lockup.
> 
>    I get the following (debug=7) error messages in my syslog:

Note that debug=7 will likely overload the system when logging the
messages.  You should reduce the effect by setting asynchronous
logging in /etc/syslog.conf with a "-" before the log file name.
   kern.*				-/var/log/debug

> Jul 10 23:32:56 localhost kernel: eth0: vortex_error(), status=0xe081

This is reporting StatsFull.  Here is the comment from my driver release:
	/* HACK: Disable statistics as an interrupt source. */
	/* This occurs when we have the wrong media type! */
So I suspect that your NIC is forced to the wrong media type.

> Jul 10 23:33:48 localhost kernel: eth0: Host error, FIFO diagnostic register 0000.
> Jul 10 23:33:48 localhost kernel: eth0: PCI bus error, bus status 80000020

>From the driver comments
	/* 0x80000000 PCI master abort. */

Your machine isn't reacting well to something.

> Jul 10 23:33:48 localhost kernel: eth0: using NWAY device table, not 8
> Jul 10 23:33:48 localhost kernel: eth0: MII #0 status 0080, link partner capability 0080, info1 0010, setting half-duplex.

This is bogus.  Either change your EEPROM setting to the default, or
avoid passing an invalid media type as an option.  You shouldn't need to
pass a module option.

>    The hardware is an Intel Pentium-100 with a built-in EIDE controller
> and S3 video. The only addon card is a 3c905B 100BaseTX PCI card
> working at 10Mbps connecting via a hub.

A old Pentium-100...

>    Looking around the web, it appears that others have encountered
> similar behaviour, but that no-one has been able to track it down
> sufficiently to fix it.

They might not have reported that it was fixed, but there isn't an
unresolved bug that I know of.

> Nonetheless, I should note that:
> - Bus-mastering is on. Turning it off might help, but I don't know how.

Is the card is a real bus-mastering slot?  Some Pentium motherboards
cheated.

> - Replacing the 3C905B with a NE2000 PCI NIC eliminates the bug. The
>   NE2000 card probably doesn't have bus-mastering.

Correct.

> 3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
> See Documentation/networking/vortex.txt
> 00:13.0: 3Com PCI 3c905B Cyclone 100baseTx at 0xfc80. Vers LK1.1.16
>  00:10:4b:0a:19:95, IRQ 11
>   product code 4e47 rev 00.9 date 04-21-98
>   8K byte-wide RAM 5:3 Rx:Tx split, autoselect/10baseT interface.

This should read autoselect/NWay, not 10baseT.

> eth0: using NWAY device table, not 0
> eth0: MII #0 status 0080, link partner capability 0080, info1 0010, setting half-duplex.

-- 
Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
Annapolis MD 21403			410-990-9993