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

epl@labyrinth.net.au epl@labyrinth.net.au
Thu Jul 18 07:21:01 2002


On Tue, 16 Jul 2002 Donald Becker wrote:

> On Tue, 16 Jul 2002 epl@labyrinth.net.au wrote:
> 
> > Hmm, discovered something odd, not sure if it is important. If the
> > module is loaded for the first time (case A) the debug messages is:
> > ===
> > 3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
> > See Documentation/networking/vortex.txt
> 
> You should try using my driver
>   ftp://ftp.scyld.com/pub/network/netdrivers.tgz
> and send a report.
> 
   The code compiled cleanly, but wouldn't even load as it complained
of unresolved dependences: __io_virt_debug() and do_BUG(). Your code
does not call either of these functions directly.

   OK, I figured I'd just add the following functions at the end of
3c59x.c
===
void do_BUG(const char *file, int line) { }
void * __io_virt_debug(unsigned long x, const char *file, int line)
{ return (x < PAGE_OFFSET) ? __va(x) : (void *)x; }
===

   The code compiled and loaded, but syslog showed the following
messages (notice the timestamp, the errors occurred immediately):
===
Jul 18 20:52:51 localhost kernel: 3c59x.c:v0.99Xc 6/27/2002 Donald Becker, becker@scyld.com
Jul 18 20:52:51 localhost kernel:   http://www.scyld.com/network/vortex.html
Jul 18 20:52:51 localhost kernel: eth0: 3Com 3c905B Cyclone 100baseTx at 0xfc80,  00:10:4b:0a:19:95, IRQ 11
Jul 18 20:52:51 localhost kernel:   Internal config register is 01800000, transceivers 0xa.
Jul 18 20:52:51 localhost kernel:   8K buffer 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
Jul 18 20:52:52 localhost kernel:   MII transceiver found at address 24, status 7849.
Jul 18 20:52:52 localhost kernel:   MII transceiver found at address 0, status 7849.
Jul 18 20:52:52 localhost kernel:   Using bus-master transmits and whole-frame receives.
Jul 18 20:52:52 localhost kernel: eth0: Initial media type Autonegotiate half-duplex.
Jul 18 20:52:52 localhost kernel: eth0: MII #24 status 7849, link partner capability 0000, setting half-duplex.
Jul 18 20:52:52 localhost kernel: eth0: vortex_open() irq 11 media status 8080.
Jul 18 20:52:52 localhost kernel: eth0: Media selection timer tick happened, Autonegotiate half duplex.
Jul 18 20:52:52 localhost kernel: eth0: MII transceiver has status 7849.
Jul 18 20:52:52 localhost kernel: eth0: Media selection timer finished, Autonegotiate.
Jul 18 20:52:52 localhost kernel: eth0: Host error, status e003, FIFO diagnostic register 0000.
Jul 18 20:52:52 localhost kernel: eth0: PCI bus error, bus status 800000a0, reset had 2000 tick left.
Jul 18 20:52:52 localhost kernel: eth0: Host error, status 8003, FIFO diagnostic register 0000.
Jul 18 20:52:52 localhost kernel: eth0: PCI bus error, bus status 80000020, reset had 1999 tick left.
Jul 18 20:52:52 localhost kernel: eth0: Host error, status 8003, FIFO diagnostic register 0000.
Jul 18 20:52:52 localhost kernel: eth0: PCI bus error, bus status 80000020, reset had 1999 tick left.
Jul 18 20:52:53 localhost kernel: eth0: Host error, status 8003, FIFO diagnostic register 0000.
Jul 18 20:52:53 localhost kernel: eth0: PCI bus error, bus status 80000020, reset had 1999 tick left.
Jul 18 20:52:53 localhost kernel: eth0: Host error, status 8003, FIFO diagnostic register 0000.
<snipped>
===

   Did I mangle the driver? If so, how would I get it to load cleanly?

Cheers
Eddie