Re: Dell PowerEdge 2200/233 and memory-mapped device under Linux

ralf@uni-koblenz.de
Sun, 25 Jan 1998 09:18:46 +0100


On Sat, Jan 24, 1998 at 11:02:21PM -0800, Linux Lists wrote:

> The main issue that has been bugging me is why the firmware load works
> fine with NT, even with cache enabled, and it does not work with Linux,
> only when cache is enabled. That's why I suspected of Linux ...

Since NT knows (knew ...) about MIPS CPUs it has a rather complex handling
of caches and occasionally flushes them. Those who have a copy of the
HAL specs will know. Aside it's fat ... which flushes the caches also ...

> The firmware load follows exactly the same sequence in both Linux and NT
> (since both drivers are maintained internally by Cyclades). Furthermore,
> cyzload (the Linux firmware loader) checks the Firmware ID value 20 times
> with a 1 second interval between each check. I believe that is more than
> enough time, since normally it gets the Firmware ID value correctly in the
> second read.

Duh? This certainly smells like a caching problem.

If so it also indicates that your card aparently isn't affected by the code
in drivers/char/mem.c that tries to mmap certain devices uncached. Since
the machine in question is at least a Pentium I draw the conclusion that
the Cyclades card in question is mapped to a physical address lower then
the highest RAM address, somewhere in the 640kb - 1024kb area (???), where
on many machines it is possible to adjust the cache settings in the BIOS,
so playing with the cache settings would be my next recommendation.

Ralf