summaryrefslogtreecommitdiffstats
path: root/src/security/intel/stm/StmPlatformSmm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/security/intel/stm/StmPlatformSmm.c')
-rw-r--r--src/security/intel/stm/StmPlatformSmm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/security/intel/stm/StmPlatformSmm.c b/src/security/intel/stm/StmPlatformSmm.c
index 248ccc028a91..3f29afc096be 100644
--- a/src/security/intel/stm/StmPlatformSmm.c
+++ b/src/security/intel/stm/StmPlatformSmm.c
@@ -173,12 +173,15 @@ void stm_setup(uintptr_t mseg, int cpu, int num_cpus, uintptr_t smbase,
return;
}
+ // This code moved here because paralled SMM setup can cause some
+ // processors to get a bad value.
+ addr_calc = mseg - CONFIG_BIOS_RESOURCE_LIST_SIZE;
+ stm_resource_heap = (uint8_t *) addr_calc;
+
if (cpu == 0) {
// need to create the BIOS resource list once
// first calculate the location in SMRAM
- addr_calc = mseg - CONFIG_BIOS_RESOURCE_LIST_SIZE;
- stm_resource_heap = (uint8_t *) addr_calc;
printk(BIOS_DEBUG, "STM: stm_resource_heap located at %p\n",
stm_resource_heap);
//setup the the list