[PATCH] [RFC] Emulate "lwsync" to run standard user land on e500 cores
Scott Wood
scottwood at freescale.com
Sat Oct 19 03:38:41 EST 2013
On Fri, 2013-10-18 at 09:38 +0200, Wolfgang Denk wrote:
> Default Debian PowerPC doesn't work on e500 because the code contains
> "lwsync" instructions, which are unsupported on this core. As a
> result, applications using this will crash with an "unhandled signal 4"
> "Illegal instruction" error.
>
> As a work around we add code to emulate this insn. This is expensive
> performance-wise, but allows to run standard user land code.
>
> Signed-off-by: Wolfgang Denk <wd at denx.de>
> Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> Cc: Scott Wood <scottwood at freescale.com>
> ---
> I am aware that the clean solution to the problem is to build user
> space with compiler options that match the target architecture.
> However, sometimes this is just too much effort.
>
> Also, of course the performance of such an emulation sucks. But the
> the occurrence of such instructions is so rare that no significant
> slowdown can be oserved.
>
> I'm not sure if this should / could go into mainline. I'm posting it
> primarily so it can be found should anybody else need this.
> - wd
>
> arch/powerpc/kernel/traps.c | 7 +++++++
> 1 file changed, 7 insertions(+)
There's already been a patch posted for this:
http://patchwork.ozlabs.org/patch/256747/
I plan to apply it for my next pull request.
-Scott
More information about the Linuxppc-dev
mailing list