summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2009-09-11 15:28:41 -0500
committerKumar Gala <galak@kernel.crashing.org>2009-09-15 21:30:09 -0500
commit15fba3279b56333bdb65ead366f82c945ed320d1 (patch)
treefdfec8225f9a34aa7b8f2cf8f2fa877039a0c550
parent9f00409a9d04cf533305531da32437130802f3a3 (diff)
downloadu-boot-imx-15fba3279b56333bdb65ead366f82c945ed320d1.zip
u-boot-imx-15fba3279b56333bdb65ead366f82c945ed320d1.tar.gz
u-boot-imx-15fba3279b56333bdb65ead366f82c945ed320d1.tar.bz2
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>
-rw-r--r--cpu/mpc85xx/cpu_init.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/cpu/mpc85xx/cpu_init.c b/cpu/mpc85xx/cpu_init.c
index 48a82ed..a6d1e99 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();
}