-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[PATCH] spufs: switchable spu contexts
Add some infrastructure for saving and restoring the context of an SPE. This patch creates a new structure that can hold the whole state of a physical SPE in memory. It also contains code that avoids races during the context switch and the binary code that is loaded to the SPU in order to access its registers. The actual PPE- and SPE-side context switch code are two separate patches. Signed-off-by: Arnd Bergmann <arndb@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
- Loading branch information
Mark Nutter
authored and
Paul Mackerras
committed
Jan 9, 2006
1 parent
67207b9
commit 5473af0
Showing
9 changed files
with
975 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
obj-$(CONFIG_SPU_FS) += spufs.o | ||
|
||
spufs-y += inode.o file.o context.o syscalls.o | ||
spufs-y += inode.o file.o context.o switch.o syscalls.o | ||
|
||
$(obj)/switch.o: $(obj)/spu_save_dump.h $(obj)/spu_restore_dump.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
231 changes: 231 additions & 0 deletions
231
arch/powerpc/platforms/cell/spufs/spu_restore_dump.h_shipped
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,231 @@ | ||
/* | ||
* spu_restore_dump.h: Copyright (C) 2005 IBM. | ||
* Hex-dump auto generated from spu_restore.c. | ||
* Do not edit! | ||
*/ | ||
static unsigned int spu_restore_code[] __page_aligned = { | ||
0x40800000, 0x409ff801, 0x24000080, 0x24fd8081, | ||
0x1cd80081, 0x33001180, 0x42030003, 0x33800284, | ||
0x1c010204, 0x40200000, 0x40200000, 0x40200000, | ||
0x34000190, 0x34004191, 0x34008192, 0x3400c193, | ||
0x141fc205, 0x23fffd84, 0x1c100183, 0x217ffa85, | ||
0x3080a000, 0x3080a201, 0x3080a402, 0x3080a603, | ||
0x3080a804, 0x3080aa05, 0x3080ac06, 0x3080ae07, | ||
0x3080b008, 0x3080b209, 0x3080b40a, 0x3080b60b, | ||
0x3080b80c, 0x3080ba0d, 0x3080bc0e, 0x3080be0f, | ||
0x00003ffc, 0x00000000, 0x00000000, 0x00000000, | ||
0x01a00182, 0x3ec00083, 0xb0a14103, 0x01a00204, | ||
0x3ec10082, 0x4202800e, 0x04000703, 0xb0a14202, | ||
0x21a00803, 0x3fbf028d, 0x3f20068d, 0x3fbe0682, | ||
0x3fe30102, 0x21a00882, 0x3f82028f, 0x3fe3078f, | ||
0x3fbf0784, 0x3f200204, 0x3fbe0204, 0x3fe30204, | ||
0x04000203, 0x21a00903, 0x40848002, 0x21a00982, | ||
0x40800003, 0x21a00a03, 0x40802002, 0x21a00a82, | ||
0x21a00083, 0x40800082, 0x21a00b02, 0x10002818, | ||
0x40a80002, 0x32800007, 0x4207000c, 0x18008208, | ||
0x40a0000b, 0x4080020a, 0x40800709, 0x00200000, | ||
0x42070002, 0x3ac30384, 0x1cffc489, 0x00200000, | ||
0x18008383, 0x38830382, 0x4cffc486, 0x3ac28185, | ||
0xb0408584, 0x28830382, 0x1c020387, 0x38828182, | ||
0xb0408405, 0x1802c408, 0x28828182, 0x217ff886, | ||
0x04000583, 0x21a00803, 0x3fbe0682, 0x3fe30102, | ||
0x04000106, 0x21a00886, 0x04000603, 0x21a00903, | ||
0x40803c02, 0x21a00982, 0x40800003, 0x04000184, | ||
0x21a00a04, 0x40802202, 0x21a00a82, 0x42028005, | ||
0x34208702, 0x21002282, 0x21a00804, 0x21a00886, | ||
0x3fbf0782, 0x3f200102, 0x3fbe0102, 0x3fe30102, | ||
0x21a00902, 0x40804003, 0x21a00983, 0x21a00a04, | ||
0x40805a02, 0x21a00a82, 0x40800083, 0x21a00b83, | ||
0x01a00c02, 0x01a00d83, 0x3420c282, 0x21a00e02, | ||
0x34210283, 0x21a00f03, 0x34200284, 0x77400200, | ||
0x3421c282, 0x21a00702, 0x34218283, 0x21a00083, | ||
0x34214282, 0x21a00b02, 0x4200480c, 0x00200000, | ||
0x1c010286, 0x34220284, 0x34220302, 0x0f608203, | ||
0x5c024204, 0x3b81810b, 0x42013c02, 0x00200000, | ||
0x18008185, 0x38808183, 0x3b814182, 0x21004e84, | ||
0x4020007f, 0x35000100, 0x000004e0, 0x000002a0, | ||
0x000002e8, 0x00000428, 0x00000360, 0x000002e8, | ||
0x000004a0, 0x00000468, 0x000003c8, 0x00000360, | ||
0x409ffe02, 0x30801203, 0x40800204, 0x3ec40085, | ||
0x10009c09, 0x3ac10606, 0xb060c105, 0x4020007f, | ||
0x4020007f, 0x20801203, 0x38810602, 0xb0408586, | ||
0x28810602, 0x32004180, 0x34204702, 0x21a00382, | ||
0x4020007f, 0x327fdc80, 0x409ffe02, 0x30801203, | ||
0x40800204, 0x3ec40087, 0x40800405, 0x00200000, | ||
0x40800606, 0x3ac10608, 0x3ac14609, 0x3ac1860a, | ||
0xb060c107, 0x20801203, 0x41004003, 0x38810602, | ||
0x4020007f, 0xb0408188, 0x4020007f, 0x28810602, | ||
0x41201002, 0x38814603, 0x10009c09, 0xb060c109, | ||
0x4020007f, 0x28814603, 0x41193f83, 0x38818602, | ||
0x60ffc003, 0xb040818a, 0x28818602, 0x32003080, | ||
0x409ffe02, 0x30801203, 0x40800204, 0x3ec40087, | ||
0x41201008, 0x10009c14, 0x40800405, 0x3ac10609, | ||
0x40800606, 0x3ac1460a, 0xb060c107, 0x3ac1860b, | ||
0x20801203, 0x38810602, 0xb0408409, 0x28810602, | ||
0x38814603, 0xb060c40a, 0x4020007f, 0x28814603, | ||
0x41193f83, 0x38818602, 0x60ffc003, 0xb040818b, | ||
0x28818602, 0x32002380, 0x409ffe02, 0x30801204, | ||
0x40800205, 0x3ec40083, 0x40800406, 0x3ac14607, | ||
0x3ac18608, 0xb0810103, 0x41004002, 0x20801204, | ||
0x4020007f, 0x38814603, 0x10009c0b, 0xb060c107, | ||
0x4020007f, 0x4020007f, 0x28814603, 0x38818602, | ||
0x4020007f, 0x4020007f, 0xb0408588, 0x28818602, | ||
0x4020007f, 0x32001780, 0x409ffe02, 0x1000640e, | ||
0x40800204, 0x30801203, 0x40800405, 0x3ec40087, | ||
0x40800606, 0x3ac10608, 0x3ac14609, 0x3ac1860a, | ||
0xb060c107, 0x20801203, 0x413d8003, 0x38810602, | ||
0x4020007f, 0x327fd780, 0x409ffe02, 0x10007f0c, | ||
0x40800205, 0x30801204, 0x40800406, 0x3ec40083, | ||
0x3ac14607, 0x3ac18608, 0xb0810103, 0x413d8002, | ||
0x20801204, 0x38814603, 0x4020007f, 0x327feb80, | ||
0x409ffe02, 0x30801203, 0x40800204, 0x3ec40087, | ||
0x40800405, 0x1000650a, 0x40800606, 0x3ac10608, | ||
0x3ac14609, 0x3ac1860a, 0xb060c107, 0x20801203, | ||
0x38810602, 0xb0408588, 0x4020007f, 0x327fc980, | ||
0x00400000, 0x40800003, 0x4020007f, 0x35000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
}; |
Oops, something went wrong.