[vortex-bug] Re: 3C905CX-TXM - No packets recieved at all, but TX
ok, and no error messages anywhere.
Andrew Morton
andrewm@uow.edu.au
Wed, 20 Dec 2000 23:05:18 +1100
nrvale0 wrote:
>
> >My problem is the following: My 3C905CX-TXM cards are transmitting,
> >but they never receive anything.
>
> I am seeing the exact same behavior on a fresh Debian 2.2 install
> using the latest 2.2.18 install boot disks.
Seventy machines?
Could you please use the driver at
http://www.uow.edu.au/~andrewm/linux/3c59x.c-2.2.19pre2.gz
and let us know? You'll have to replace the existing
drivers/net/3c59x.c with that file and rebuild your
kernel (or modules. at least).
I did this:
static void wait_for_completion(struct device *dev, int cmd)
{
int i;
outw(cmd, dev->base_addr + EL3_CMD);
for (i = 0; i < 2000; i++) {
if (!(inw(dev->base_addr + EL3_STATUS) & CmdInProgress))
return;
}
/* OK, that didn't work. Do it the slow way. One second */
for (i = 0; i < 100000; i++) {
if (!(inw(dev->base_addr + EL3_STATUS) & CmdInProgress)) {
printk(KERN_INFO "%s: command 0x%04x took %d usecs! Please tell andrewm@uow.edu.au\n",
dev->name, cmd, i * 10);
return;
}
udelay(10);
}
printk(KERN_ERR "%s: command 0x%04x did not complete! Status=0x%x\n",
dev->name, cmd, inw(dev->base_addr + EL3_STATUS));
}
Sigh.
I note that 3com's driver does basically the same thing.
You say that the freebsd driver works OK?
Looking at http://minnie.cs.adfa.edu.au/FreeBSD-srctree/newsrc/pci/if_xl.c.html,
I see that they have commented out most (all?) of their RX_RESET commands! Plus
they have an unconditional 100 millisecond delay in xl_reset(). So they got
lucky with the 905CX.