via-rhine and MMIO

Martin Eriksson (nitrax@giron.wox.org)
Mon, 29 Oct 2001 14:06:53 +0100


I have done some changes to the via-rhine driver in 2.4.13 to be able to run
with MMIO. I know it isn't really needed but I do it mainly for fun &
learning.

The most important change was to enable memory-mapped mode within the rhine
chip by a standard port-io call. I have got it all to work, and it works
under stress test too, but there is a section in the code that I wonder
about:

(drivers/net/via-rhine.c)
...
/* Reload the station address from the EEPROM. */
writeb(0x20, ioaddr + MACRegEEcsr);
/* Typically 2 cycles to reload. */
for (i = 0; i < 150; i++)
if (! (readb(ioaddr + MACRegEEcsr) & 0x20))
break;
...

If I run this code when I'm using MMIO, I get a hardware adress of
"ff:ff:ff:ff:ff:ff" instead of the right one (and everything craps up). But
when I comment out this part all is fine. So what's it needed for anyway?

_____________________________________________________
| Martin Eriksson <nitrax@giron.wox.org>
| MSc CSE student, department of Computing Science
| Umeå University, Sweden

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/