On Fri, Oct 09, 2026 at 06:18:34PM +0200, Arkadiusz Wadowski via B4 Relay wrote:

> From: Arkadiusz Wadowski <[email protected]>
> 
> Add an optional SPL boot path for the QEMU ARM64 virt machine,
> allowing the SPL-to-U-Boot boot flow to be explored without
> physical hardware.
> 
> Use the existing NOR loader to load u-boot.img from flash into
> RAM at 0x41000000. Generate u-boot-with-spl.bin with the payload
> placed after SPL padding.
> 
> Signed-off-by: Arkadiusz Wadowski <[email protected]>
> ---
> This patch adds an optional SPL boot path for the QEMU ARM64 virt
> machine. It provides an emulated environment for exploring the
> SPL-to-U-Boot boot flow without physical hardware.
> 
> SPL starts at flash address zero and uses the existing NOR loader
> to load U-Boot proper into RAM at 0x41000000. The combined
> u-boot-with-spl.bin image places u-boot.img at flash offset 0x100000.
> 
> QEMU provides initialized RAM at reset, so this boot path does
> not require a DRAM initialization sequence.
[snip]
> diff --git a/board/emulation/qemu-arm/Kconfig 
> b/board/emulation/qemu-arm/Kconfig
> index 447061b25cd..c6bfb82e7f3 100644
> --- a/board/emulation/qemu-arm/Kconfig
> +++ b/board/emulation/qemu-arm/Kconfig
> @@ -1,3 +1,7 @@
> +if TARGET_QEMU_ARM_64BIT && SPL
> +source "board/emulation/qemu-arm/Kconfig.spl"
> +endif

This guard should be in the new file.

> +
>  if TARGET_QEMU_ARM_32BIT || TARGET_QEMU_ARM_64BIT
>  
>  config TEXT_BASE
> diff --git a/board/emulation/qemu-arm/Kconfig.spl 
> b/board/emulation/qemu-arm/Kconfig.spl
> new file mode 100644
> index 00000000000..38002a87b70
> --- /dev/null
> +++ b/board/emulation/qemu-arm/Kconfig.spl
> @@ -0,0 +1,43 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +
> +config TEXT_BASE
> +     range 0x41000000 0xffffffff
> +     default 0x41000000
> +
> +config OF_OMIT_DTB
> +     default n
> +
> +config DEFAULT_DEVICE_TREE
> +     default "qemu-arm64"
> +
> +config QEMU_ARM64_SPL
> +     def_bool y
> +     select SPL_LIBCOMMON_SUPPORT
> +     select SPL_LIBGENERIC_SUPPORT
> +     select SPL_HAS_BSS_LINKER_SECTION
> +     select SPL_SEPARATE_BSS
> +     select SPL_NOR_SUPPORT
> +     select PANIC_HANG
> +     select SPL_LEGACY_IMAGE_FORMAT
> +     select SPL_DM
> +     select SPL_OF_CONTROL
> +     select SPL_SERIAL
> +     select SPL_DM_SERIAL
> +
> +config SPL_PAYLOAD
> +     default "u-boot.img"
> +
> +config SPL_TARGET
> +     default "u-boot-with-spl.bin"
> +
> +config SPL_BLOBLIST
> +     default n

We should be able to omit the dtb, and then pass along the dtb we've
been given via QEMU from one stage to the next, like some real hardware
platforms do.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to