summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/common/block/include/intelblocks/sgx.h2
-rw-r--r--src/soc/intel/common/block/sgx/sgx.c6
-rw-r--r--src/soc/intel/skylake/cpu.c4
3 files changed, 8 insertions, 4 deletions
diff --git a/src/soc/intel/common/block/include/intelblocks/sgx.h b/src/soc/intel/common/block/include/intelblocks/sgx.h
index 03d4ab5123..bdc35540dc 100644
--- a/src/soc/intel/common/block/include/intelblocks/sgx.h
+++ b/src/soc/intel/common/block/include/intelblocks/sgx.h
@@ -25,6 +25,6 @@ void cpu_lock_sgx_memory(void);
/*
* Configure SGX.
*/
-void sgx_configure(const void *microcode_patch);
+void sgx_configure(void);
#endif /* SOC_INTEL_COMMON_BLOCK_SGX_H */
diff --git a/src/soc/intel/common/block/sgx/sgx.c b/src/soc/intel/common/block/sgx/sgx.c
index 5a0b61dda6..525e6859a9 100644
--- a/src/soc/intel/common/block/sgx/sgx.c
+++ b/src/soc/intel/common/block/sgx/sgx.c
@@ -13,11 +13,13 @@
* GNU General Public License for more details.
*/
+#include <assert.h>
#include <console/console.h>
#include <chip.h>
#include <cpu/x86/msr.h>
#include <cpu/x86/mtrr.h>
#include <cpu/intel/microcode.h>
+#include <intelblocks/mp_init.h>
#include <intelblocks/sgx.h>
#include <soc/cpu.h>
#include <soc/msr.h>
@@ -125,10 +127,12 @@ static void activate_sgx(void)
}
}
-void sgx_configure(const void *microcode_patch)
+void sgx_configure(void)
{
device_t dev = SA_DEV_ROOT;
+ assert(dev != NULL);
config_t *conf = dev->chip_info;
+ const void *microcode_patch = intel_mp_current_microcode();
if (!conf->sgx_enable || !is_sgx_supported())
return;
diff --git a/src/soc/intel/skylake/cpu.c b/src/soc/intel/skylake/cpu.c
index 1a081915a2..fe9c00841d 100644
--- a/src/soc/intel/skylake/cpu.c
+++ b/src/soc/intel/skylake/cpu.c
@@ -438,7 +438,7 @@ void soc_core_init(device_t cpu, const void *microcode)
enable_turbo();
/* Configure SGX */
- sgx_configure(microcode);
+ sgx_configure();
}
static int adjust_apic_id(int index, int apic_id)
@@ -505,7 +505,7 @@ void soc_init_cpus(struct bus *cpu_bus, const void *microcode)
* here to get SGX enabled on BSP. This behavior needs to root-caused
* and we shall not have this redundant call.
*/
- sgx_configure(microcode);
+ sgx_configure();
}
int soc_skip_ucode_update(u32 current_patch_id, u32 new_patch_id)