summaryrefslogtreecommitdiff
path: root/src/soc/intel/apollolake
diff options
context:
space:
mode:
authorMichael Niewöhner <foss@mniewoehner.de>2019-10-08 12:00:24 +0200
committerNico Huber <nico.h@gmx.de>2019-10-10 14:06:09 +0000
commit6e66d7b8ebfd179f3fedd4ead05fe166d4e8e1fe (patch)
treef13d44396542f8edca7aa1fddd3118882faccd71 /src/soc/intel/apollolake
parentedfe125bf9441fdfcfe37855ddcdc594d5e652aa (diff)
downloadcoreboot-6e66d7b8ebfd179f3fedd4ead05fe166d4e8e1fe.tar.xz
soc/intel: sgx: get rid of UEFI-style usage of global variable
Rework SGX enable status in a clean way without using a global variable. Change-Id: Ida6458eb46708df8fd238122aed41b57ca48c15b Signed-off-by: Michael Niewöhner <foss@mniewoehner.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/35882 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src/soc/intel/apollolake')
-rw-r--r--src/soc/intel/apollolake/cpu.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/soc/intel/apollolake/cpu.c b/src/soc/intel/apollolake/cpu.c
index 33496273d2..0022b3a6ea 100644
--- a/src/soc/intel/apollolake/cpu.c
+++ b/src/soc/intel/apollolake/cpu.c
@@ -72,10 +72,12 @@ static const struct reg_script core_msr_script[] = {
void soc_core_init(struct device *cpu)
{
+ config_t *conf = config_of_soc();
+
/* Clear out pending MCEs */
/* TODO(adurbin): Some of these banks are core vs package
scope. For now every CPU clears every bank. */
- if (CONFIG(SOC_INTEL_COMMON_BLOCK_SGX) ||
+ if ((CONFIG(SOC_INTEL_COMMON_BLOCK_SGX) && conf->sgx_enable) ||
acpi_get_sleep_type() == ACPI_S5)
mca_configure();
@@ -89,7 +91,7 @@ void soc_core_init(struct device *cpu)
enable_pm_timer_emulation();
/* Configure Core PRMRR for SGX. */
- if (CONFIG(SOC_INTEL_COMMON_BLOCK_SGX))
+ if (CONFIG(SOC_INTEL_COMMON_BLOCK_SGX) && conf->sgx_enable)
prmrr_core_configure();
/* Set Max Non-Turbo ratio if RAPL is disabled. */
@@ -253,9 +255,11 @@ static void relocation_handler(int cpu, uintptr_t curr_smbase,
static void post_mp_init(void)
{
+ config_t *conf = config_of_soc();
+
smm_southbridge_enable(PWRBTN_EN | GBL_EN);
- if (CONFIG(SOC_INTEL_COMMON_BLOCK_SGX))
+ if (CONFIG(SOC_INTEL_COMMON_BLOCK_SGX) && conf->sgx_enable)
mp_run_on_all_cpus(sgx_configure, NULL);
}
@@ -293,11 +297,3 @@ void cpu_lock_sgx_memory(void)
/* Do nothing because MCHECK while loading microcode and enabling
* IA untrusted mode takes care of necessary locking */
}
-
-int soc_fill_sgx_param(struct sgx_param *sgx_param)
-{
- config_t *conf = config_of_soc();
-
- sgx_param->enable = conf->sgx_enable;
- return 0;
-}