diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2007-12-20 23:39:21 -0500 |
---|---|---|
committer | Josh Boyer <jwboyer@linux.vnet.ibm.com> | 2007-12-23 14:11:59 -0500 |
commit | 47c0bd1ae24c34e851cf0f2b02ef2a6847d7ae15 (patch) | |
tree | 86fab68618a4afa03660cc576c9e7da3e5a0b520 /include/asm-powerpc/reg_booke.h | |
parent | c2a7dcad9f0d92d7a96e735abb8bec7b9c621536 (diff) |
[POWERPC] Reworking machine check handling and Fix 440/440A
This adds a cputable function pointer for the CPU-side machine
check handling. The semantic is still the same as the old one,
the one in ppc_md. overrides the one in cputable, though
ultimately we'll want to change that so the CPU gets first.
This removes CONFIG_440A which was a problem for multiplatform
kernels and instead fixes up the IVOR at runtime from a setup_cpu
function. The "A" version of the machine check also tweaks the
regs->trap value to differenciate the 2 versions at the C level.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'include/asm-powerpc/reg_booke.h')
-rw-r--r-- | include/asm-powerpc/reg_booke.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/include/asm-powerpc/reg_booke.h b/include/asm-powerpc/reg_booke.h index d3e8dd0fc738..0405ef479814 100644 --- a/include/asm-powerpc/reg_booke.h +++ b/include/asm-powerpc/reg_booke.h | |||
@@ -218,7 +218,6 @@ | |||
218 | #define CCR1_TCS 0x00000080 /* Timer Clock Select */ | 218 | #define CCR1_TCS 0x00000080 /* Timer Clock Select */ |
219 | 219 | ||
220 | /* Bit definitions for the MCSR. */ | 220 | /* Bit definitions for the MCSR. */ |
221 | #ifdef CONFIG_440A | ||
222 | #define MCSR_MCS 0x80000000 /* Machine Check Summary */ | 221 | #define MCSR_MCS 0x80000000 /* Machine Check Summary */ |
223 | #define MCSR_IB 0x40000000 /* Instruction PLB Error */ | 222 | #define MCSR_IB 0x40000000 /* Instruction PLB Error */ |
224 | #define MCSR_DRB 0x20000000 /* Data Read PLB Error */ | 223 | #define MCSR_DRB 0x20000000 /* Data Read PLB Error */ |
@@ -228,7 +227,7 @@ | |||
228 | #define MCSR_DCSP 0x02000000 /* D-Cache Search Parity Error */ | 227 | #define MCSR_DCSP 0x02000000 /* D-Cache Search Parity Error */ |
229 | #define MCSR_DCFP 0x01000000 /* D-Cache Flush Parity Error */ | 228 | #define MCSR_DCFP 0x01000000 /* D-Cache Flush Parity Error */ |
230 | #define MCSR_IMPE 0x00800000 /* Imprecise Machine Check Exception */ | 229 | #define MCSR_IMPE 0x00800000 /* Imprecise Machine Check Exception */ |
231 | #endif | 230 | |
232 | #ifdef CONFIG_E500 | 231 | #ifdef CONFIG_E500 |
233 | #define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */ | 232 | #define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */ |
234 | #define MCSR_ICPERR 0x40000000UL /* I-Cache Parity Error */ | 233 | #define MCSR_ICPERR 0x40000000UL /* I-Cache Parity Error */ |