Hmm, for most (95%) people this version of the driver works better than the
one from 2.0.30. I see you are using a 386/486 system, eventually the
problem is related due to the different alignment of the PCI accesses
between the old and the new driver. I am currently preparing a cleaned up
version of tulip.c for inclusion into 2.0.31
(<http://homepages.munich.netsurf.de/Franz.Sirl/tulip.c-pre-2.0.31-6>),
which includes the following lines:
#if defined(MODULE)
/* When a module we don't have 'x86' to check. */
outl(0x00200000 | 0x4800, ioaddr + CSR0); /* align 8,
burstsize 8 */
#else
#if defined(__i386__)
switch (x86) {
case 3:
i = 0x4800; /* align 8, burstsize 8 */
break;
case 4:
i = 0xC000; /* align 32, burstsize unlimited */
break;
case 5:
i = 0x8000; /* align 16, burstsize unlimited */
break;
case 6:
i = 0x8000; /* align 16, burstsize unlimited */
break;
default:
i = 0x8000; /* align 16, burstsize unlimited */
break;
}
outl(0x00200000 | i, ioaddr + CSR0);
if (x86 <= 4)
printk(KERN_INFO "This is a 386/486 PCI system, setting cache
alignment to %x.\n",
0x00200000 | i);
#endif
#endif
The driver from 2.0.30 always used 0xC000, the new one uses 0x4800. I have
already modified my version for you to use 0xC000 when compiled into the
kernel for 486. If you are using the module and/or 386, you have to change
the corresponding values yourself.
Other possible values you can try: 0xC800, 0xE000, 0x5000, 0x8800, 0x9000.
Please report your results.
Ciao,
Franz.