[vortex] reproducable pci bus errors (905c-tx, target abort)

Donald Becker becker@scyld.com
Tue, 14 Aug 2001 16:20:03 -0400 (EDT)


On Tue, 14 Aug 2001, Sven Golchert wrote:

> i've got trouble with a 3c905C-TX in a dataexperts exp8049 mobo,
> 486/66, equipped with two more NICs: one 905B-FX and one 509B
> (ISA). the box is running suse linux 7.0 (kernel 2.4.0),
> 3c59x.c:LK1.1.12 is inserted as module. 

The 3c905c is PCI v2.1, and a pretty agressive bus master -- it has the
capability to transfer a full-sized received packet data in a single
burst if no other master is waiting.

Most 486 systems had flawed Pre-1.0 PCI bus master implementations.  The
Limiting the PCI burst length to 8 words avoids
most problems, but perhaps not all.


> whenever i route traffic over the 3c905C-TX (eth1 in my
> configuration), it will break with a  
>   PCI bus error, bus status 40000020

PCI target abort when operating as a bus master.
Bad news.

It can only be cleared with a TotalReset/GlobalReset while leaving bit
0x100 clear.
My driver does a different reset than LK1.1.12.
You might give it a try.
 http://www.scyld.com/network/vortex.html
    ftp://ftp.scyld.com/pub/network/3c59x.c

Please send a report so we know if this version of the reset code works.

Even if this driver version recovers, this isn't a fix.  A PCI bus error is
still a major, performance-impacting problem.

Something can help with finding a work-around for the '486 is the value
of Up/DnMaxBurst, which reports the maximum successful PCI burst length
for Tx and Rx (16 bits for each).
This register is at offset 0x78.

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