[PATCH] arm: mach-qemu: add support for qemu booted from TF-A.
Raymond Mao
raymond.mao at linaro.org
Sat Sep 20 02:37:38 CEST 2025
Hi,
On Fri, 19 Sept 2025 at 18:24, <chalianis1 at gmail.com> wrote:
>
> From: Chali Anis <chalianis1 at gmail.com>
>
> add the ability to be booted from Arm Trusted Firmware for qemu aarch64,
> to do so we need to skip NOR flash partition setup.
> U-boot launched as BL33 from TF-A is supported and Tested on arm64 with
> qemu-system-aarch64 and the qemu ARM64 support ARCH_SUPPORT_TFABOOT.
>
Actually the patch is trying to skip part of the initialization when
U-Boot is running as BL33, so the statement like "add the ability to
be booted...", "U-boot launched as BL33 from TF-A is supported" won't
help as U-Boot is working as BL33 already.
> Signed-off-by: Chali Anis <chalianis1 at gmail.com>
> ---
> arch/arm/mach-qemu/Kconfig | 1 +
> board/emulation/common/qemu_mtdparts.c | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff --git a/arch/arm/mach-qemu/Kconfig b/arch/arm/mach-qemu/Kconfig
> index 9c06c6a3a5ce..316dde5145c0 100644
> --- a/arch/arm/mach-qemu/Kconfig
> +++ b/arch/arm/mach-qemu/Kconfig
> @@ -18,6 +18,7 @@ config TARGET_QEMU_ARM_64BIT
> bool "ARMv8, 64bit"
> select ARM64
> select BOARD_LATE_INIT
> + select ARCH_SUPPORT_TFABOOT
>
> config TARGET_QEMU_ARM_SBSA
> bool "SBSA Reference"
> diff --git a/board/emulation/common/qemu_mtdparts.c b/board/emulation/common/qemu_mtdparts.c
> index c1501276789c..c3863d3b0479 100644
> --- a/board/emulation/common/qemu_mtdparts.c
> +++ b/board/emulation/common/qemu_mtdparts.c
> @@ -59,6 +59,7 @@ void board_mtdparts_default(const char **mtdids, const char **mtdparts)
> debug("mtd device = %s\n", dev->name);
> }
>
> +#ifndef CONFIG_TFABOOT
> mtd = get_mtd_device_nm("nor0");
> if (!IS_ERR_OR_NULL(mtd)) {
> mtd_partition = CONFIG_MTDPARTS_NOR0;
> @@ -72,6 +73,7 @@ void board_mtdparts_default(const char **mtdids, const char **mtdparts)
> board_get_mtdparts("nor1", mtd_partition, ids, parts);
> put_mtd_device(mtd);
> }
> +#endif
>
Skipping the default NOR mtdparts when TFABOOT is selected looks fine.
However, qemu_dfu.c still sets dfu_alt_info based on those NOR
partitions (used by DFU/EFI capsule flows).
This actually brings one concern related to capsule update: currently
the QEMU ARM64 board depends on mtdparts to make EFI capsule update
work.
It raises a question: do we actually want to support capsule update
when U-Boot is running as BL33?
If yes, then the current patch breaks capsule update and more work is needed.
If no, we should make it explicit (e.g. prevent
EFI_CAPSULE_FIRMWARE_MANAGEMENT from being selected together with
TFABOOT).
BTW, can you please add a rev number in the subject line? E.g. [PATCH
v2], [PATCH v3]... See the patterns from other patches.
Regards,
Raymond
> }
>
> mtd_initialized = true;
> --
> 2.34.1
>
More information about the U-Boot
mailing list