I've a problem getting Linux (debian, but same problems with RedHat and Slackware) talking with my Ethernet card.
The DE-200+ (self proclaiming NE-2000 compatible, but see the Ethernet HOWTO) is not autodetected. Even using io=0x300 irq=5 doesn't help because the driver waits for an acknowledge to the reset command, which never arrives.
After disabling that part of the driver initialization I can get the driver loaded into the kernel. Debugging printouts confirm that the card is actually there sending interrupts and I can even stop it with ifconfig eth0 down.
Problem is, I cannot send/receive packets [done the appropriate ifconfig/route add thing]. If I enable NE_SANITY_CHECK I get this additional piece of information:
eth0: Tx packet transfer address mismatch, 202a (expected) vs. 2054 (actual)
The 20 part is the offset into the transmit ring while 0x2a is the number of bytes that the kernel asked to transmit and 0x54 is the number of bytes that the 8390 [actually it's an 8392 on my board]
reports. Since 0x54 = 2 x 0x2a I tend to believe that a byte/word misunderstanding is happening somewhere, but I cannot figure out where.
I've run some additional tests: A colleague of mine has a working Linux machine using a 220CT, hence I've grabbed the nearest thing to it that was available to me, a 220CAT. It behaves exactly the same way as my 200+, except for the fact that it's autodetected (it acknowledges the reset command). The 220CT doesn't work in his PC, so I tend to dismiss problems with the rest of my PC.