aboutsummaryrefslogtreecommitdiff
path: root/src/cpu/intel/smm/gen1/smmrelocate.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/intel/smm/gen1/smmrelocate.c')
-rw-r--r--src/cpu/intel/smm/gen1/smmrelocate.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cpu/intel/smm/gen1/smmrelocate.c b/src/cpu/intel/smm/gen1/smmrelocate.c
index da43de09fd..e80fa31489 100644
--- a/src/cpu/intel/smm/gen1/smmrelocate.c
+++ b/src/cpu/intel/smm/gen1/smmrelocate.c
@@ -132,6 +132,10 @@ static void fill_in_relocation_params(struct smm_relocation_params *params)
params->ied_base = tsegmb + params->smram_size;
params->ied_size = tseg_size - params->smram_size;
+ /* Adjust available SMM handler memory size. */
+ if (IS_ENABLED(CONFIG_CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM))
+ params->smram_size -= CONFIG_SMM_RESERVED_SIZE;
+
/* SMRR has 32-bits of valid address aligned to 4KiB. */
params->smrr_base.lo = (params->smram_base & rmask) | MTRR_TYPE_WRBACK;
params->smrr_base.hi = 0;