summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2002-05-01 22:19:03 +0000
committermarcel <marcel@FreeBSD.org>2002-05-01 22:19:03 +0000
commit047c7fe5d2b029fb2ea05880861844d8022cd7ef (patch)
treedba98e61cd3a003ca2c2ed2681f0c88e1e4afeda /sys
parentc9a9ce82ccaa1dd472e04656931bdece6689fd31 (diff)
downloadFreeBSD-src-047c7fe5d2b029fb2ea05880861844d8022cd7ef.zip
FreeBSD-src-047c7fe5d2b029fb2ea05880861844d8022cd7ef.tar.gz
Save the MCA info specific to the AP as part of the AP launch.
Diffstat (limited to 'sys')
-rw-r--r--sys/ia64/ia64/mp_machdep.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/ia64/ia64/mp_machdep.c b/sys/ia64/ia64/mp_machdep.c
index ec65e1b..ff5b4ae 100644
--- a/sys/ia64/ia64/mp_machdep.c
+++ b/sys/ia64/ia64/mp_machdep.c
@@ -48,6 +48,7 @@
#include <machine/pcb.h>
#include <machine/pmap.h>
#include <machine/clock.h>
+#include <machine/mca.h>
#include <machine/sal.h>
#include <machine/smp.h>
#include <machine/fpu.h>
@@ -87,8 +88,7 @@ ia64_ap_startup(void)
/*
* Set ia32 control registers.
*/
- ia64_set_cflg((CR0_PE | CR0_PG)
- | ((long)(CR4_XMM | CR4_FXSR) << 32));
+ ia64_set_cflg(CR0_PE | CR0_PG | ((long)(CR4_XMM|CR4_FXSR) << 32));
ap_awake = 1;
ap_delay = 0;
@@ -99,6 +99,13 @@ ia64_ap_startup(void)
__asm __volatile("ssm psr.ic|psr.i;; srlz.i;;");
+ /*
+ * Get and save the CPU specific MCA records. Should we get the
+ * MCA state for each processor, or just the CMC state?
+ */
+ ia64_mca_save_state(SAL_INFO_MCA);
+ ia64_mca_save_state(SAL_INFO_CMC);
+
ap_awake++;
while (!smp_started)
/* spin */;
OpenPOWER on IntegriCloud