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

From: Philippe De Muyter <[email-masked]>
Date: Mon, 25 Feb 2008 15:47:22 +0100

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