summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/intel/fsp2_0/Kconfig12
-rw-r--r--src/drivers/intel/fsp2_0/memory_init.c3
2 files changed, 9 insertions, 6 deletions
diff --git a/src/drivers/intel/fsp2_0/Kconfig b/src/drivers/intel/fsp2_0/Kconfig
index 3caa04ac25..00bfd67b50 100644
--- a/src/drivers/intel/fsp2_0/Kconfig
+++ b/src/drivers/intel/fsp2_0/Kconfig
@@ -132,12 +132,14 @@ config FSP_USES_CB_STACK
config FSP_TEMP_RAM_SIZE
hex
- depends on FSP_USES_CB_STACK
help
- The amount of anticipated heap usage in CAR by FSP to setup HOB.
- This configuration is applicable for FSP specification using shared
- stack with coreboot/bootloader.
- Sync this value with Platform FSP integration guide recommendation.
+ The amount of memory coreboot reserves for the FSP to use. In the
+ case of FSP 2.1 and newer that share the stack with coreboot instead
+ of having its own stack, this is the amount of anticipated heap usage
+ in CAR by FSP to setup HOB and needs to be the recommended value from
+ the Platform FSP integration guide. In the case of the FSP having its
+ own stack that will be placed in DRAM and not in CAR, this is the
+ amount of memory the FSP needs for its stack and heap.
config FSP2_0_USES_TPM_MRC_HASH
bool
diff --git a/src/drivers/intel/fsp2_0/memory_init.c b/src/drivers/intel/fsp2_0/memory_init.c
index 7f5d389592..57a052037e 100644
--- a/src/drivers/intel/fsp2_0/memory_init.c
+++ b/src/drivers/intel/fsp2_0/memory_init.c
@@ -184,8 +184,9 @@ static enum cb_err fsp_fill_common_arch_params(FSPM_ARCH_UPD *arch_upd,
* top and does not reinitialize stack pointer. The parameters passed
* as StackBase and StackSize are actually for temporary RAM and HOBs
* and are not related to FSP stack at all.
+ * Non-CAR FSP 2.0 platforms pass a DRAM location for the FSP stack.
*/
- if (CONFIG(FSP_USES_CB_STACK)) {
+ if (CONFIG(FSP_USES_CB_STACK) || !ENV_CACHE_AS_RAM) {
arch_upd->StackBase = temp_ram;
arch_upd->StackSize = sizeof(temp_ram);
} else if (setup_fsp_stack_frame(arch_upd, memmap)) {