summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/reg.h
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-07-24 01:15:39 +0200
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-08-20 02:25:07 +0200
commit13363ab9b9d040ebeace3a1a3a5ddcb13bf0d644 (patch)
tree3745a72246b62a991d9d2d38faf91d136515b8a7 /arch/powerpc/include/asm/reg.h
parentpowerpc: Add memory management headers for new 64-bit BookE (diff)
downloadlinux-13363ab9b9d040ebeace3a1a3a5ddcb13bf0d644.tar.xz
linux-13363ab9b9d040ebeace3a1a3a5ddcb13bf0d644.zip
powerpc: Add definitions used by exception handling on 64-bit Book3E
This adds various definitions and macros used by the exception and TLB miss handling on 64-bit BookE It also adds the definitions of the SPRGs used for various exception types Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm/reg.h')
-rw-r--r--arch/powerpc/include/asm/reg.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index c8715331e1b0..6315edc205d8 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -652,6 +652,16 @@
* - SPRG2 scratch for exception vectors
* - SPRG3 unused (user visible)
*
+ * 64-bit embedded
+ * - SPRG0 generic exception scratch
+ * - SPRG2 TLB exception stack
+ * - SPRG3 unused (user visible)
+ * - SPRG4 unused (user visible)
+ * - SPRG6 TLB miss scratch (user visible, sorry !)
+ * - SPRG7 critical exception scratch
+ * - SPRG8 machine check exception scratch
+ * - SPRG9 debug exception scratch
+ *
* All 32-bit:
* - SPRG3 current thread_info pointer
* (virtual on BookE, physical on others)
@@ -705,6 +715,15 @@
#define SPRN_SPRG_SCRATCH0 SPRN_SPRG2
#endif
+#ifdef CONFIG_PPC_BOOK3E_64
+#define SPRN_SPRG_MC_SCRATCH SPRN_SPRG8
+#define SPRN_SPRG_CRIT_SCRATCH SPRN_SPRG7
+#define SPRN_SPRG_DBG_SCRATCH SPRN_SPRG9
+#define SPRN_SPRG_TLB_EXFRAME SPRN_SPRG2
+#define SPRN_SPRG_TLB_SCRATCH SPRN_SPRG6
+#define SPRN_SPRG_GEN_SCRATCH SPRN_SPRG0
+#endif
+
#ifdef CONFIG_PPC_BOOK3S_32
#define SPRN_SPRG_SCRATCH0 SPRN_SPRG0
#define SPRN_SPRG_SCRATCH1 SPRN_SPRG1