Hi,
We use linux kernel 2.4.20 on ppc405 and the system hangs once in a while when isync gets called in this function:
_GLOBAL(_nmask_and_or_msr)
mfmsr r0 /* Get current msr */
andc r0,r0,r3 /* And off the bits set in r3 (first parm) */
or r0,r0,r4 /* Or on the bits in r4 (second parm) */
sync /* Some chip revs have problems here... */
isync
mtmsr r0 /* Update machine state */
isync
blr /* Done */
2.5 onwards, I find that "sync; isync" has been replaced by a macro SYNC (defined only for 601). I don't find it in any changelog and reason for the change.
Can someone give some information on this change?
Appreciate any help.