Skip to content

Commit

Permalink
[POWERPC] Reworking machine check handling and Fix 440/440A
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Benjamin Herrenschmidt authored and Josh Boyer committed Dec 23, 2007
1 parent c2a7dca commit 47c0bd1
Show file tree
Hide file tree
Showing 11 changed files with 258 additions and 58 deletions.
9 changes: 9 additions & 0 deletions arch/powerpc/kernel/cpu_setup_44x.S
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,20 @@ _GLOBAL(__setup_cpu_440epx)
mflr r4
bl __init_fpu_44x
bl __plb_disable_wrp
bl __fixup_440A_mcheck
mtlr r4
blr
_GLOBAL(__setup_cpu_440grx)
b __plb_disable_wrp
_GLOBAL(__setup_cpu_440gx)
_GLOBAL(__setup_cpu_440spe)
b __fixup_440A_mcheck

/* Temporary fixup for arch/ppc until we kill the whole thing */
#ifndef CONFIG_PPC_MERGE
_GLOBAL(__fixup_440A_mcheck)
blr
#endif

/* enable APU between CPU and FPU */
_GLOBAL(__init_fpu_44x)
Expand Down
Loading

0 comments on commit 47c0bd1

Please sign in to comment.