aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/xeon_sp/cpx/cpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/xeon_sp/cpx/cpu.c')
-rw-r--r--src/soc/intel/xeon_sp/cpx/cpu.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/soc/intel/xeon_sp/cpx/cpu.c b/src/soc/intel/xeon_sp/cpx/cpu.c
index d1bcbd7977..2f4ab0663e 100644
--- a/src/soc/intel/xeon_sp/cpx/cpu.c
+++ b/src/soc/intel/xeon_sp/cpx/cpu.c
@@ -7,7 +7,9 @@
#include <console/debug.h>
#include <cpu/cpu.h>
#include <cpu/intel/common/common.h>
+#include <cpu/intel/em64t101_save_state.h>
#include <cpu/intel/microcode.h>
+#include <cpu/intel/smm_reloc.h>
#include <cpu/intel/turbo.h>
#include <cpu/x86/lapic.h>
#include <cpu/x86/mp.h>
@@ -17,6 +19,7 @@
#include <soc/cpu.h>
#include <soc/msr.h>
#include <soc/soc_util.h>
+#include <soc/smmrelocate.h>
#include <soc/util.h>
#include "chip.h"
@@ -172,16 +175,16 @@ static void post_mp_init(void)
/* Set Max Ratio */
set_max_turbo_freq();
- /*
- * TODO: Now that all APs have been relocated as well as the BSP let SMIs
- * start flowing.
- */
- if (0) global_smi_enable();
+ if (CONFIG(HAVE_SMI_HANDLER))
+ global_smi_enable();
}
static const struct mp_ops mp_ops = {
.pre_mp_init = pre_mp_init,
.get_cpu_count = get_thread_count,
+ .get_smm_info = get_smm_info,
+ .pre_mp_smm_init = smm_initialize,
+ .relocation_handler = smm_relocation_handler,
.get_microcode_info = get_microcode_info,
.post_mp_init = post_mp_init,
};