summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Rudolph <siro@das-labor.org>2018-11-12 19:26:54 +0100
committerPatrick Rudolph <siro@das-labor.org>2018-11-14 08:24:14 +0000
commitd72d52a7e4710e7af0b9a8279f2514c6bd339e35 (patch)
treebf29c54ba6f2efa1f4c9cfce2fd5f0c6eee88b7c
parentc10fb3b9a2a34c2887d7f7f470bae754e0238463 (diff)
mb/emulation/qemu-i440fx|q35: Fix stack size
Current implementation works by luck as DCACHE area is actually RAM and stack can grow and use that RAM outside of the area. * Set DCACHE_BSP_STACK_SIZE to 0x4000. * Add an assert to make sure it is set to a sane value on all platforms. Change-Id: I71f9d74d89e4129cdc4a850acc4fc1ac90e5f628 Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-on: https://review.coreboot.org/29611 Reviewed-by: Patrick Georgi <pgeorgi@google.com> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/arch/x86/car.ld3
-rw-r--r--src/mainboard/emulation/qemu-i440fx/Kconfig4
-rw-r--r--src/mainboard/emulation/qemu-q35/Kconfig4
3 files changed, 11 insertions, 0 deletions
diff --git a/src/arch/x86/car.ld b/src/arch/x86/car.ld
index 33fb5c926c..5669020b87 100644
--- a/src/arch/x86/car.ld
+++ b/src/arch/x86/car.ld
@@ -113,3 +113,6 @@ _bogus = ASSERT((CONFIG_DCACHE_RAM_SIZE == 0) || (SIZEOF(.car.data) <= CONFIG_DC
#if IS_ENABLED(CONFIG_PAGING_IN_CACHE_AS_RAM)
_bogus2 = ASSERT(_pagetables == ALIGN(_pagetables, 4096), "_pagetables aren't 4KiB aligned");
#endif
+#if IS_ENABLED(CONFIG_C_ENVIRONMENT_BOOTBLOCK)
+_bogus3 = ASSERT(CONFIG_DCACHE_BSP_STACK_SIZE > 0x0, "BSP stack size not configured");
+#endif
diff --git a/src/mainboard/emulation/qemu-i440fx/Kconfig b/src/mainboard/emulation/qemu-i440fx/Kconfig
index 2435729ced..4454e67d96 100644
--- a/src/mainboard/emulation/qemu-i440fx/Kconfig
+++ b/src/mainboard/emulation/qemu-i440fx/Kconfig
@@ -41,4 +41,8 @@ config C_ENV_BOOTBLOCK_SIZE
hex
default 0x4000
+config DCACHE_BSP_STACK_SIZE
+ hex
+ default 0x4000
+
endif # BOARD_EMULATION_QEMU_X86_I440FX
diff --git a/src/mainboard/emulation/qemu-q35/Kconfig b/src/mainboard/emulation/qemu-q35/Kconfig
index 4394530fad..3be034a895 100644
--- a/src/mainboard/emulation/qemu-q35/Kconfig
+++ b/src/mainboard/emulation/qemu-q35/Kconfig
@@ -49,4 +49,8 @@ config C_ENV_BOOTBLOCK_SIZE
hex
default 0x4000
+config DCACHE_BSP_STACK_SIZE
+ hex
+ default 0x4000
+
endif # BOARD_EMULATION_QEMU_X86_Q35