From d72d52a7e4710e7af0b9a8279f2514c6bd339e35 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Mon, 12 Nov 2018 19:26:54 +0100 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/29611 Reviewed-by: Patrick Georgi Reviewed-by: Arthur Heymans Tested-by: build bot (Jenkins) --- src/arch/x86/car.ld | 3 +++ src/mainboard/emulation/qemu-i440fx/Kconfig | 4 ++++ src/mainboard/emulation/qemu-q35/Kconfig | 4 ++++ 3 files changed, 11 insertions(+) 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