> 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