[POWERPC] spufs: allow isolated mode apps by starting the SPE loader
authorarnd@arndb.de <arnd@arndb.de>
Tue, 24 Oct 2006 16:31:18 +0000 (18:31 +0200)
committerPaul Mackerras <paulus@samba.org>
Wed, 25 Oct 2006 04:20:21 +0000 (14:20 +1000)
commit0afacde3df4c9980f505d9afd7cb0058389732ca
tree0007cbb88b2ed7ba604fd11ca269f24617d2bb61
parenteb758ce5b0d84e13cb643b6cc7cb429f6fa28258
[POWERPC] spufs: allow isolated mode apps by starting the SPE loader

This patch adds general support for isolated mode SPE apps.

Isolated apps are started indirectly, by a dedicated loader "kernel".
This patch starts the loader when spe_create is invoked with the
ISOLATE flag. We do this at spe_create time to allow libspe to pass the
isolated app in before calling spe_run.

The loader is read from the device tree, at the location
"/spu-isolation/loader". If the loader is not present, an attempt to
start an isolated SPE binary will fail with -ENODEV.

Update: loader needs to be correctly aligned - copy to a kmalloced buf.
Update: remove workaround for systemsim/spurom 'L-bit' bug, which has
        been fixed.
Update: don't write to runcntl on spu_run_init: SPU is already running.
Update: do spu_setup_isolated earlier

Tested on systemsim.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/cell/spu_base.c
arch/powerpc/platforms/cell/spufs/inode.c
arch/powerpc/platforms/cell/spufs/run.c