summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <[email protected]>2026-02-17 08:46:55 +0100
committerHeinrich Schuchardt <[email protected]>2026-03-14 08:09:16 +0100
commitca495f011f603e3f033e9a14100cc43ebb297c0b (patch)
treefb1812de9b637f2a7f4ae327052685cae0529f03
parentfab3b667b4128fae2d94752bb03088f84dafcf89 (diff)
efi_loader: require at least 128 KiB of stack space
The UEFI specification requires at least 128 KiB stack space. Consider this value as a prerequisite for CONFIG_EFI_LOADER. Mention the requirement in the CONFIG_STACK_SPACE description and decribe that the UEFI sub-system uses CONFIG_STACK_SPACE when defining the memory map. Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
-rw-r--r--Kconfig8
-rw-r--r--lib/efi_loader/Kconfig2
2 files changed, 7 insertions, 3 deletions
diff --git a/Kconfig b/Kconfig
index a50b4c8c68a..b52331d6ff2 100644
--- a/Kconfig
+++ b/Kconfig
@@ -615,9 +615,11 @@ config STACK_SIZE
default 0x4000 if ARCH_STM32
default 0x1000000
help
- Define Max stack size that can be used by U-Boot. This value is used
- by the UEFI sub-system. On some boards initrd_high is calculated as
- base stack pointer minus this stack size.
+ Define Max stack size that can be used by U-Boot. The UEFI sub-system
+ considers this value when setting up the memory map. The UEFI
+ specification requires 128 KiB or more of available stack space. On
+ some boards initrd_high is calculated as base stack pointer minus this
+ stack size.
config SYS_MEM_TOP_HIDE
hex "Exclude some memory from U-Boot / OS information"
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index 579eed65880..2d8581b57bb 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -15,6 +15,8 @@ config EFI_LOADER
# We need EFI_STUB_32BIT to be set on x86_32 with EFI_STUB
depends on !EFI_STUB || !X86 || X86_64 || EFI_STUB_32BIT
depends on !EFI_APP
+ # The EFI specification requires 128 KiB or more of stack space
+ depends on STACK_SIZE >= 0x20000
default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8
select EFI
select CHARSET