linux/arch/powerpc/platforms/cell/spufs
Masato Noguchi c25620d766 [POWERPC] cell: wrap master run control bit
Add platform specific SPU run control routines to the spufs.  The current
spufs implementation uses the SPU master run control bit (MFC_SR1[S]) to
control SPE execution, but the PS3 hypervisor does not support the use of
this feature.

This change adds the run control wrapper routies spu_enable_spu() and
spu_disable_spu().  The bare metal routines use the master run control
bit, and the PS3 specific routines use the priv2 run control register.

An outstanding enhancement for the PS3 would be to add a guard to check
for incorrect access to the spu problem state when the spu context is
disabled.  This check could be implemented with a flag added to the spu
context that would inhibit mapping problem state pages, and a routine
to unmap spu problem state pages.  When the spu is enabled with
ps3_enable_spu() the flag would be set allowing pages to be mapped,
and when the spu is disabled with ps3_disable_spu() the flag would be
cleared and mapped problem state pages would be unmapped.

Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-12-21 19:45:05 +11:00
..
backing_ops.c [POWERPC] cell: wrap master run control bit 2007-12-21 19:45:05 +11:00
context.c [POWERPC] spusched: Fix initial timeslice calculation 2007-07-26 16:17:56 +10:00
coredump.c [POWERPC] spufs: Respect RLIMIT_CORE in spu coredump code 2007-09-19 15:12:19 +10:00
fault.c [CELL] spufs: add spu stats in sysfs and ctx stat file in spufs 2007-07-20 21:41:50 +02:00
file.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
gang.c [CELL] cell: add placement computation for scheduling of affinity contexts 2007-07-20 21:42:17 +02:00
hw_ops.c [POWERPC] cell: wrap master run control bit 2007-12-21 19:45:05 +11:00
inode.c [POWERPC] spufs: Fix context destroy vs /spu readdir race 2007-11-20 16:10:20 +11:00
lscsa_alloc.c [POWERPC] cell: add spu_64k_pages_available() check 2007-12-19 01:00:05 +01:00
Makefile [POWERPC] Spufs support for 64K LS mappings on 4K kernels 2007-05-09 16:35:00 +10:00
run.c [POWERPC] cell: wrap master run control bit 2007-12-21 19:45:05 +11:00
sched.c Merge branch 'linux-2.6' 2007-09-20 10:09:27 +10:00
spu_restore.c [CELL] spufs: change decrementer restore timing 2007-07-20 21:42:03 +02:00
spu_restore_crt0.S [PATCH] spufs: add spu-side context switch code 2006-01-09 14:49:25 +11:00
spu_restore_dump.h_shipped [CELL] spufs: change decrementer restore timing 2007-07-20 21:42:03 +02:00
spu_save.c [POWERPC] spufs: fix building spufs/spu_save_dump.h 2007-07-03 15:24:44 +10:00
spu_save_crt0.S [PATCH] spufs: add spu-side context switch code 2006-01-09 14:49:25 +11:00
spu_save_dump.h_shipped [POWERPC] spufs: one more fix for 64k pages 2006-06-21 15:01:32 +10:00
spu_utils.h [PATCH] spufs: add spu-side context switch code 2006-01-09 14:49:25 +11:00
spufs.h [POWERPC] cell: wrap master run control bit 2007-12-21 19:45:05 +11:00
switch.c [POWERPC] cell: handle SPE kernel mappings that cross segment boundaries 2007-12-19 01:00:05 +01:00
syscalls.c [POWERPC] spufs: Combine spufs_coredump_calls with spufs_calls 2007-09-19 15:12:19 +10:00