[PATCH 1/1] efi_loader: require at least 128 KiB of stack space

Ilias Apalodimas ilias.apalodimas at linaro.org
Tue Feb 17 09:18:32 CET 2026


Hi Heinrich,

On Tue, 17 Feb 2026 at 09:47, Heinrich Schuchardt
<heinrich.schuchardt at canonical.com> wrote:
>
> 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.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> ---
>  Kconfig                | 8 +++++---
>  lib/efi_loader/Kconfig | 2 ++
>  2 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/Kconfig b/Kconfig
> index ce25ea24a60..99b3cd62526 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 13e44be1d06..450ffa61c0a 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

Won't this disable EFI for ARCH_STM32 devices? Those define the
default stack size as 0x4000.

Thanks
/Ilias
>         default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8
>         select EFI
>         select CHARSET
> --
> 2.51.0
>


More information about the U-Boot mailing list