diff options
author | Patrick Rudolph <siro@das-labor.org> | 2018-11-12 19:26:54 +0100 |
---|---|---|
committer | Patrick Rudolph <siro@das-labor.org> | 2018-11-14 08:24:14 +0000 |
commit | d72d52a7e4710e7af0b9a8279f2514c6bd339e35 (patch) | |
tree | bf29c54ba6f2efa1f4c9cfce2fd5f0c6eee88b7c | |
parent | c10fb3b9a2a34c2887d7f7f470bae754e0238463 (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.ld | 3 | ||||
-rw-r--r-- | src/mainboard/emulation/qemu-i440fx/Kconfig | 4 | ||||
-rw-r--r-- | src/mainboard/emulation/qemu-q35/Kconfig | 4 |
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 |