On Sun, Sep 20, 2026 at 06:15:11PM +0300, Aleksei Sviridkin wrote:

> LINUX_KERNEL_IMAGE_HEADER has no prompt, so a board can only get the
> header through a select in its platform Kconfig, and the text offset
> base it needs has no prompt either, so a board cannot set it from its
> defconfig.
> 
> The header is what a stock boot loader that only ever starts a kernel
> image checks before it jumps, and a board whose stock loader cannot be
> replaced has to be chainloaded through it. The Keenetic KN-1012, an
> MT7981 router, is such a board: its loader accepts a kernel FIT and
> nothing else, and U-Boot runs from it as that kernel. Getting the header
> onto the binary took a platform Kconfig change for one board.
> 
> Give both symbols a prompt, so a board defconfig can enable the header
> and set the offset base the loader expects. Platforms that select the
> header are not affected, and the existing per-platform defaults for the
> offset base stay in force.
> 
> Assisted-by: LLM
> Signed-off-by: Aleksei Sviridkin <[email protected]>
> ---
>  arch/arm/Kconfig | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 3e9f3b5103..cc40be0048 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -92,18 +92,19 @@ config SPL_USE_SEPARATE_FAULT_HANDLERS
>         on them separately.
>  
>  config LINUX_KERNEL_IMAGE_HEADER
> +     bool "Place a Linux kernel image header at the start of U-Boot"
>       depends on ARM64
> -     bool
>       help
>         Place a Linux kernel image header at the start of the U-Boot binary.
>         The format of the header is described in the Linux kernel source at
>         Documentation/arm64/booting.txt. This feature is useful since the
>         image header reports the amount of memory (BSS and similar) that
> -       U-Boot needs to use, but which isn't part of the binary.
> +       U-Boot needs to use, but which isn't part of the binary. It also
> +       lets a boot loader that only starts kernel images chainload U-Boot.
>  
>  config LNX_KRNL_IMG_TEXT_OFFSET_BASE
> +     hex "Base of the text offset in the Linux kernel image header"
>       depends on LINUX_KERNEL_IMAGE_HEADER
> -     hex
>       help
>         The value subtracted from CONFIG_TEXT_BASE to calculate the
>         TEXT_OFFSET value written to the Linux kernel image header.

This isn't a prompted option as boards that need it are expected to
select it and provide the correct value.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to