diff options
author | Raul E Rangel <rrangel@chromium.org> | 2018-06-12 10:43:09 -0600 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-06-14 09:28:45 +0000 |
commit | d3b839331058bfecab84abdb5836d2d3ef9654fc (patch) | |
tree | 9209eba154b1511a8204e129abf7df3f478cf99a | |
parent | f0afb3e335cef9c58e4460b58e72f246753f2c2c (diff) | |
download | coreboot-d3b839331058bfecab84abdb5836d2d3ef9654fc.tar.xz |
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 <rrangel@chromium.org>
Reviewed-on: https://review.coreboot.org/27034
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | src/cpu/x86/Kconfig | 8 | ||||
-rw-r--r-- | src/cpu/x86/mp_init.c | 2 |
2 files changed, 9 insertions, 1 deletions
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, |