E500 linux : are the 64-bit GPRs context-switched ?

Philippe De Muyter phdm at macqel.be
Tue Feb 26 01:47:22 EST 2008


Dear ppclinux gurus,

I have just compiled linux-2.6.24 for a MPC8540 target using a MPC8540
specific gcc.

After my first attempt using ARCH=ppc, leading to an infinity of messages :
"SPE used in kernel", I recompiled the whole kernel sources using
the default ARCH (ARCH=powerpc).  I now have a kernel that does not complain
about "SPE used in kernel", but user processes still crash ramdomly.

Searching around, I learned that the E500 GPR registers are 64-bits wide,
and gcc targetted for powerpc-linuxspe uses them sometimes.  In the other
PPC32 targets, those registers are 32-bits wide.

The specific E500 64-bit move instructions are `evstdd' and `evldd'.
I searched in the linux kernel sources (2.6.24) but did not find where
those GPR registers could be saved in 64-bit mode for context-switch.

Is there a patch pending somewhere to preserve the E500 GPR's in 64-bit mode
for context-switch ?

Philippe



More information about the Linuxppc-dev mailing list