summaryrefslogtreecommitdiff
path: root/src/cpu/x86
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/x86')
-rw-r--r--src/cpu/x86/mp_init.c5
-rw-r--r--src/cpu/x86/smm/smm_module_handler.c4
2 files changed, 4 insertions, 5 deletions
diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c
index 642667b41b..d3af6ecc8f 100644
--- a/src/cpu/x86/mp_init.c
+++ b/src/cpu/x86/mp_init.c
@@ -1087,10 +1087,7 @@ static void fill_mp_state_smm(struct mp_state *state, const struct mp_ops *ops)
/*
* Make sure there is enough room for the SMM descriptor
*/
- if (CONFIG(STM)) {
- state->smm_save_state_size +=
- ALIGN_UP(sizeof(TXT_PROCESSOR_SMM_DESCRIPTOR), 0x100);
- }
+ state->smm_save_state_size += STM_PSD_SIZE;
/*
* Default to smm_initiate_relocation() if trigger callback isn't
diff --git a/src/cpu/x86/smm/smm_module_handler.c b/src/cpu/x86/smm/smm_module_handler.c
index 3415b02842..0daae00ebb 100644
--- a/src/cpu/x86/smm/smm_module_handler.c
+++ b/src/cpu/x86/smm/smm_module_handler.c
@@ -9,6 +9,7 @@
#include <cpu/x86/smm.h>
#include <rmodule.h>
#include <types.h>
+#include <security/intel/stm/SmmStm.h>
#if CONFIG(SPI_FLASH_SMM)
#include <spi-generic.h>
@@ -103,7 +104,8 @@ void *smm_get_save_state(int cpu)
if (cpu > smm_runtime.num_cpus)
return NULL;
- return (void *)(smm_runtime.save_state_top[cpu] - smm_runtime.save_state_size);
+ return (void *)(smm_runtime.save_state_top[cpu] -
+ (smm_runtime.save_state_size - STM_PSD_SIZE));
}
uint32_t smm_revision(void)