[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


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))

    /* 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);
    printk(KERN_ERR "%s: command 0x%04x did not complete! Status=0x%x\n",
               dev->name, cmd, inw(dev->base_addr + EL3_STATUS));


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.