aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/skylake/cpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/skylake/cpu.c')
-rw-r--r--src/soc/intel/skylake/cpu.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/soc/intel/skylake/cpu.c b/src/soc/intel/skylake/cpu.c
index a7745cec91..031a01de66 100644
--- a/src/soc/intel/skylake/cpu.c
+++ b/src/soc/intel/skylake/cpu.c
@@ -437,8 +437,8 @@ void soc_core_init(device_t cpu)
/* Enable Turbo */
enable_turbo();
- /* Configure SGX */
- sgx_configure();
+ /* Configure Core PRMRR for SGX. */
+ prmrr_core_configure();
}
static int adjust_apic_id(int index, int apic_id)
@@ -472,6 +472,8 @@ static void post_mp_init(void)
#if IS_ENABLED(CONFIG_HAVE_SMI_HANDLER)
smm_lock();
#endif
+
+ mp_run_on_all_cpus(sgx_configure, 2000);
}
static const struct mp_ops mp_ops = {
@@ -498,14 +500,6 @@ void soc_init_cpus(struct bus *cpu_bus)
/* Thermal throttle activation offset */
configure_thermal_target();
-
- /*
- * TODO: somehow calling configure_sgx() in cpu_core_init() is not
- * successful on the BSP (other threads are fine). Have to run it again
- * here to get SGX enabled on BSP. This behavior needs to root-caused
- * and we shall not have this redundant call.
- */
- sgx_configure();
}
int soc_skip_ucode_update(u32 current_patch_id, u32 new_patch_id)