diff options
author | marcel <marcel@FreeBSD.org> | 2008-09-15 01:03:16 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2008-09-15 01:03:16 +0000 |
commit | d328b9fcc7fe699bd4f91f8c969074f128bc1b2c (patch) | |
tree | 0fbf0d4826cd7280c1a143599bd28eb7b5e8570f /sys/powerpc | |
parent | 1c94c735686e1423a38f24bdb1ec849d8baf3b59 (diff) | |
download | FreeBSD-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.c | 2 | ||||
-rw-r--r-- | sys/powerpc/powerpc/autoconf.c | 5 | ||||
-rw-r--r-- | sys/powerpc/powerpc/mp_machdep.c | 2 |
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); } |