From be0e9ac7c8a141fbc52f658fbfdd96cf2c27d0de Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Thu, 30 Oct 2025 22:23:50 +0100 Subject: spl: fit: Add ability to jump to Linux via OPTEE-OS on ARMv7a Add support for jumping to Linux kernel through OPTEE-OS on ARMv7a to SPL. This is already supported on ARMv8a, this patch adds the ARMv7a support. Extend the SPL fitImage loader to record OPTEE-OS load address and in case the load address is non-zero, use the same bootm-optee.S code used by the U-Boot fitImage jump code to start OPTEE-OS first and jump to Linux next. Signed-off-by: Marek Vasut --- arch/arm/lib/spl.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'arch') diff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c index 6c7d1fb5629..bce51b9cc7d 100644 --- a/arch/arm/lib/spl.c +++ b/arch/arm/lib/spl.c @@ -16,6 +16,9 @@ #include #include #include +#if defined(CONFIG_ARM) && !defined(CONFIG_ARM64) +#include +#endif #ifndef CONFIG_SPL_DM /* Pointer to as well as the global data structure for SPL */ @@ -71,6 +74,13 @@ void __noreturn jump_to_image_linux(struct spl_image_info *spl_image) image_entry_arg_t image_entry = (image_entry_arg_t)(uintptr_t) spl_image->entry_point; cleanup_before_linux(); +#if defined(CONFIG_BOOTM_OPTEE) && defined(CONFIG_ARM) && !defined(CONFIG_ARM64) + if (spl_image->optee_addr) + boot_jump_linux_via_optee((void *)(spl_image->entry_point), + machid, + (u32)(spl_image->arg), + spl_image->optee_addr); +#endif image_entry(0, machid, spl_image->arg); } #endif /* CONFIG_ARM64 */ -- cgit v1.3.1