diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2009-09-11 15:28:41 -0500 |
---|---|---|
committer | Tom Rix <Tom.Rix@windriver.com> | 2009-10-03 09:04:29 -0500 |
commit | f8d7b56e003fe19f37d4e9e326df9e9024a052b0 (patch) | |
tree | 2d6eeaf2939c50d0511643567211b4151eb5b9b8 /cpu/mpc85xx | |
parent | 002ebefddcf7589307aec95947f0133fd53958c6 (diff) |
ppc/85xx: Disable all async interrupt sources when we boot
We should make sure to clear MSR[ME, CE, DE] when we boot an OS image
since we have changed the exception vectors and the OSes vectors might
not be setup we should avoid async interrupts at all costs.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'cpu/mpc85xx')
-rw-r--r-- | cpu/mpc85xx/cpu_init.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/cpu/mpc85xx/cpu_init.c b/cpu/mpc85xx/cpu_init.c index 48a82eda6d..a6d1e999b6 100644 --- a/cpu/mpc85xx/cpu_init.c +++ b/cpu/mpc85xx/cpu_init.c @@ -364,5 +364,16 @@ extern void setup_ivors(void); void arch_preboot_os(void) { + u32 msr; + + /* + * We are changing interrupt offsets and are about to boot the OS so + * we need to make sure we disable all async interrupts. EE is already + * disabled by the time we get called. + */ + msr = mfmsr(); + msr &= ~(MSR_ME|MSR_CE|MSR_DE); + mtmsr(msr); + setup_ivors(); } |