diff options
author | Arnd Bergmann <arnd@arndb.de> | 2005-06-22 19:43:37 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-06-22 19:43:37 -0400 |
commit | fef1c772fa154c16e0a54577e9ecb5480f7b937e (patch) | |
tree | 7c1483966f984c822b58f761b9be873dce94999c /include/asm-ppc64 | |
parent | 031f7edecf46d731673a5dd19ecb0de38f1a2219 (diff) |
[PATCH] ppc64: add BPA platform type
This adds the basic support for running on BPA machines.
So far, this is only the IBM workstation, and it will
not run on others without a little more generalization.
It should be possible to configure a kernel for any
combination of CONFIG_PPC_BPA with any of the other
multiplatform targets.
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-ppc64')
-rw-r--r-- | include/asm-ppc64/mmu.h | 5 | ||||
-rw-r--r-- | include/asm-ppc64/processor.h | 15 | ||||
-rw-r--r-- | include/asm-ppc64/smp.h | 8 |
3 files changed, 24 insertions, 4 deletions
diff --git a/include/asm-ppc64/mmu.h b/include/asm-ppc64/mmu.h index c78282a67d8e..9d03a98a4fa3 100644 --- a/include/asm-ppc64/mmu.h +++ b/include/asm-ppc64/mmu.h | |||
@@ -47,9 +47,10 @@ | |||
47 | #define SLB_VSID_KS ASM_CONST(0x0000000000000800) | 47 | #define SLB_VSID_KS ASM_CONST(0x0000000000000800) |
48 | #define SLB_VSID_KP ASM_CONST(0x0000000000000400) | 48 | #define SLB_VSID_KP ASM_CONST(0x0000000000000400) |
49 | #define SLB_VSID_N ASM_CONST(0x0000000000000200) /* no-execute */ | 49 | #define SLB_VSID_N ASM_CONST(0x0000000000000200) /* no-execute */ |
50 | #define SLB_VSID_L ASM_CONST(0x0000000000000100) /* largepage 16M */ | 50 | #define SLB_VSID_L ASM_CONST(0x0000000000000100) /* largepage */ |
51 | #define SLB_VSID_C ASM_CONST(0x0000000000000080) /* class */ | 51 | #define SLB_VSID_C ASM_CONST(0x0000000000000080) /* class */ |
52 | 52 | #define SLB_VSID_LS ASM_CONST(0x0000000000000070) /* size of largepage */ | |
53 | |||
53 | #define SLB_VSID_KERNEL (SLB_VSID_KP|SLB_VSID_C) | 54 | #define SLB_VSID_KERNEL (SLB_VSID_KP|SLB_VSID_C) |
54 | #define SLB_VSID_USER (SLB_VSID_KP|SLB_VSID_KS) | 55 | #define SLB_VSID_USER (SLB_VSID_KP|SLB_VSID_KS) |
55 | 56 | ||
diff --git a/include/asm-ppc64/processor.h b/include/asm-ppc64/processor.h index 3084099086a8..af28aa55d8c1 100644 --- a/include/asm-ppc64/processor.h +++ b/include/asm-ppc64/processor.h | |||
@@ -138,8 +138,16 @@ | |||
138 | #define SPRN_NIADORM 0x3F3 /* Hardware Implementation Register 2 */ | 138 | #define SPRN_NIADORM 0x3F3 /* Hardware Implementation Register 2 */ |
139 | #define SPRN_HID4 0x3F4 /* 970 HID4 */ | 139 | #define SPRN_HID4 0x3F4 /* 970 HID4 */ |
140 | #define SPRN_HID5 0x3F6 /* 970 HID5 */ | 140 | #define SPRN_HID5 0x3F6 /* 970 HID5 */ |
141 | #define SPRN_TSC 0x3FD /* Thread switch control */ | 141 | #define SPRN_HID6 0x3F9 /* BE HID 6 */ |
142 | #define SPRN_TST 0x3FC /* Thread switch timeout */ | 142 | #define HID6_LB (0x0F<<12) /* Concurrent Large Page Modes */ |
143 | #define HID6_DLP (1<<20) /* Disable all large page modes (4K only) */ | ||
144 | #define SPRN_TSCR 0x399 /* Thread switch control on BE */ | ||
145 | #define SPRN_TTR 0x39A /* Thread switch timeout on BE */ | ||
146 | #define TSCR_DEC_ENABLE 0x200000 /* Decrementer Interrupt */ | ||
147 | #define TSCR_EE_ENABLE 0x100000 /* External Interrupt */ | ||
148 | #define TSCR_EE_BOOST 0x080000 /* External Interrupt Boost */ | ||
149 | #define SPRN_TSC 0x3FD /* Thread switch control on others */ | ||
150 | #define SPRN_TST 0x3FC /* Thread switch timeout on others */ | ||
143 | #define SPRN_L2CR 0x3F9 /* Level 2 Cache Control Regsiter */ | 151 | #define SPRN_L2CR 0x3F9 /* Level 2 Cache Control Regsiter */ |
144 | #define SPRN_LR 0x008 /* Link Register */ | 152 | #define SPRN_LR 0x008 /* Link Register */ |
145 | #define SPRN_PIR 0x3FF /* Processor Identification Register */ | 153 | #define SPRN_PIR 0x3FF /* Processor Identification Register */ |
@@ -259,6 +267,7 @@ | |||
259 | #define PV_970FX 0x003C | 267 | #define PV_970FX 0x003C |
260 | #define PV_630 0x0040 | 268 | #define PV_630 0x0040 |
261 | #define PV_630p 0x0041 | 269 | #define PV_630p 0x0041 |
270 | #define PV_BE 0x0070 | ||
262 | 271 | ||
263 | /* Platforms supported by PPC64 */ | 272 | /* Platforms supported by PPC64 */ |
264 | #define PLATFORM_PSERIES 0x0100 | 273 | #define PLATFORM_PSERIES 0x0100 |
@@ -267,6 +276,7 @@ | |||
267 | #define PLATFORM_LPAR 0x0001 | 276 | #define PLATFORM_LPAR 0x0001 |
268 | #define PLATFORM_POWERMAC 0x0400 | 277 | #define PLATFORM_POWERMAC 0x0400 |
269 | #define PLATFORM_MAPLE 0x0500 | 278 | #define PLATFORM_MAPLE 0x0500 |
279 | #define PLATFORM_BPA 0x1000 | ||
270 | 280 | ||
271 | /* Compatibility with drivers coming from PPC32 world */ | 281 | /* Compatibility with drivers coming from PPC32 world */ |
272 | #define _machine (systemcfg->platform) | 282 | #define _machine (systemcfg->platform) |
@@ -278,6 +288,7 @@ | |||
278 | #define IC_INVALID 0 | 288 | #define IC_INVALID 0 |
279 | #define IC_OPEN_PIC 1 | 289 | #define IC_OPEN_PIC 1 |
280 | #define IC_PPC_XIC 2 | 290 | #define IC_PPC_XIC 2 |
291 | #define IC_BPA_IIC 3 | ||
281 | 292 | ||
282 | #define XGLUE(a,b) a##b | 293 | #define XGLUE(a,b) a##b |
283 | #define GLUE(a,b) XGLUE(a,b) | 294 | #define GLUE(a,b) XGLUE(a,b) |
diff --git a/include/asm-ppc64/smp.h b/include/asm-ppc64/smp.h index 8115ecb8feee..d86f742e9a21 100644 --- a/include/asm-ppc64/smp.h +++ b/include/asm-ppc64/smp.h | |||
@@ -85,6 +85,14 @@ extern void smp_generic_take_timebase(void); | |||
85 | 85 | ||
86 | extern struct smp_ops_t *smp_ops; | 86 | extern struct smp_ops_t *smp_ops; |
87 | 87 | ||
88 | #ifdef CONFIG_PPC_PSERIES | ||
89 | void vpa_init(int cpu); | ||
90 | #else | ||
91 | static inline void vpa_init(int cpu) | ||
92 | { | ||
93 | } | ||
94 | #endif /* CONFIG_PPC_PSERIES */ | ||
95 | |||
88 | #endif /* __ASSEMBLY__ */ | 96 | #endif /* __ASSEMBLY__ */ |
89 | 97 | ||
90 | #endif /* !(_PPC64_SMP_H) */ | 98 | #endif /* !(_PPC64_SMP_H) */ |