From d3b839331058bfecab84abdb5836d2d3ef9654fc Mon Sep 17 00:00:00 2001 From: Raul E Rangel Date: Tue, 12 Jun 2018 10:43:09 -0600 Subject: cpu/x86: Make SMM stack size configurable Stoneyridge is running into a stack overflow in the SMM handler. BUG=b:80539294 TEST=built on grunt Change-Id: I94e385497bd93c3638c69fb08d9b843c3bbb55ce Signed-off-by: Raul E Rangel Reviewed-on: https://review.coreboot.org/27034 Reviewed-by: Martin Roth Reviewed-by: Marshall Dawson Tested-by: build bot (Jenkins) --- src/cpu/x86/Kconfig | 8 ++++++++ src/cpu/x86/mp_init.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/cpu/x86/Kconfig b/src/cpu/x86/Kconfig index c67e6e5345..5e2d79657e 100644 --- a/src/cpu/x86/Kconfig +++ b/src/cpu/x86/Kconfig @@ -110,6 +110,14 @@ config SMM_MODULE_HEAP_SIZE This option determines the size of the heap within the SMM handler modules. +config SMM_MODULE_STACK_SIZE + hex + default 0x400 + depends on SMM_TSEG + help + This option determines the size of the stack within the SMM handler + modules. + config SMM_LAPIC_REMAP_MITIGATION bool default y if NORTHBRIDGE_INTEL_I945 diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c index 54b6d1571a..515bc676c4 100644 --- a/src/cpu/x86/mp_init.c +++ b/src/cpu/x86/mp_init.c @@ -795,7 +795,7 @@ static int install_permanent_handler(int num_cpus, uintptr_t smbase, /* There are num_cpus concurrent stacks and num_cpus concurrent save * state areas. Lastly, set the stack size to 1KiB. */ struct smm_loader_params smm_params = { - .per_cpu_stack_size = 1 * KiB, + .per_cpu_stack_size = CONFIG_SMM_MODULE_STACK_SIZE, .num_concurrent_stacks = num_cpus, .per_cpu_save_state_size = save_state_size, .num_concurrent_save_states = num_cpus, -- cgit v1.2.3