diff options
author | marcel <marcel@FreeBSD.org> | 2002-05-01 22:19:03 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2002-05-01 22:19:03 +0000 |
commit | 047c7fe5d2b029fb2ea05880861844d8022cd7ef (patch) | |
tree | dba98e61cd3a003ca2c2ed2681f0c88e1e4afeda /sys/ia64 | |
parent | c9a9ce82ccaa1dd472e04656931bdece6689fd31 (diff) | |
download | FreeBSD-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/ia64')
-rw-r--r-- | sys/ia64/ia64/mp_machdep.c | 11 |
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 */; |