I've just recently fixed this problem on my E9000 core which is a MSP85XX. I
did some digging and found that the problem started to occur in 2.6.16 and
is not there in 2.6.15. I looked into the deltas and found the specific
change that broke me. The file is c-r4k.c.
In the function "local_r4k_flush_cache_sigtramp" there is a conditional:
if (!cpu_icache_snoops_remote_store && scache_size)
protected_writeback_scache_line(addr & ~(sc_lsize - 1));
This additional "scache_size" has been added to this conditional. On my
platform, "scache_size" is set to zero so the
"protected_writeback_scache_line" is now not being called. I took out the
"scache_size" from the conditional and now I boot without any illegal
As a side note, I also took out the workaround in "war.h". This workaround
only hid the problem, it didn't fix it. Before I changed the conditional, I
would crash on every boot without the workaround. The workaround reduced
the crashes to maybe 1 in 3. Now, without the workaround, and with the
change in the conditional, I haven't experienced any problems.
I'm sure this change was made for a reason in 2.6.16 so I'm not sure what
the official fix needs to be but that solved my issues on my platform.
Let me know if there is anything anyone wants me to try on my platform to
help come to an official fix for this problem.
View this message in context:
Sent from the linux-mips main mailing list archive at Nabble.com.