summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2008-09-15 01:03:16 +0000
committermarcel <marcel@FreeBSD.org>2008-09-15 01:03:16 +0000
commitd328b9fcc7fe699bd4f91f8c969074f128bc1b2c (patch)
tree0fbf0d4826cd7280c1a143599bd28eb7b5e8570f /sys/powerpc
parent1c94c735686e1423a38f24bdb1ec849d8baf3b59 (diff)
downloadFreeBSD-src-d328b9fcc7fe699bd4f91f8c969074f128bc1b2c.zip
FreeBSD-src-d328b9fcc7fe699bd4f91f8c969074f128bc1b2c.tar.gz
Dont worry about PSL_RI (restartable interrupt indicator) in
common PowerPC code when all we want to achieve is to enable external interrupts. We can set PSL_RI at any time before we allow interrupts and/or exceptions, so move it to the AIM specific initialization and do it when we also set PSL_ME (machine check enable).
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/aim/mp_cpudep.c2
-rw-r--r--sys/powerpc/powerpc/autoconf.c5
-rw-r--r--sys/powerpc/powerpc/mp_machdep.c2
3 files changed, 3 insertions, 6 deletions
diff --git a/sys/powerpc/aim/mp_cpudep.c b/sys/powerpc/aim/mp_cpudep.c
index 5b867dd..cd50755 100644
--- a/sys/powerpc/aim/mp_cpudep.c
+++ b/sys/powerpc/aim/mp_cpudep.c
@@ -169,7 +169,7 @@ cpudep_ap_bootstrap(volatile uint32_t *trcp)
trcp[0] = 0x2003;
trcp[1] = hid;
- msr = PSL_IR | PSL_DR | PSL_ME;
+ msr = PSL_IR | PSL_DR | PSL_ME | PSL_RI;
mtmsr(msr);
isync();
diff --git a/sys/powerpc/powerpc/autoconf.c b/sys/powerpc/powerpc/autoconf.c
index acf1325..3749321 100644
--- a/sys/powerpc/powerpc/autoconf.c
+++ b/sys/powerpc/powerpc/autoconf.c
@@ -75,11 +75,8 @@ configure_final(void *dummy)
powerpc_enable_intr();
/* Enable external interrupts. */
-#if defined(AIM)
- mtmsr(mfmsr() | PSL_EE | PSL_RI);
-#elif defined(E500)
mtmsr(mfmsr() | PSL_EE);
-#endif
+
cninit_finish();
cold = 0;
}
diff --git a/sys/powerpc/powerpc/mp_machdep.c b/sys/powerpc/powerpc/mp_machdep.c
index c21f9db..f21851b 100644
--- a/sys/powerpc/powerpc/mp_machdep.c
+++ b/sys/powerpc/powerpc/mp_machdep.c
@@ -72,7 +72,7 @@ machdep_ap_bootstrap(volatile uint32_t *trcp)
/* Initialize curthread. */
PCPU_SET(curthread, PCPU_GET(idlethread));
- mtmsr(mfmsr() | PSL_EE | PSL_RI);
+ mtmsr(mfmsr() | PSL_EE);
sched_throw(NULL);
}
OpenPOWER on IntegriCloud