summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/lib/spl.c10
1 files changed, 10 insertions, 0 deletions
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 <asm/global_data.h>
#include <linux/compiler.h>
#include <asm/mach-types.h>
+#if defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
+#include <asm/armv7.h>
+#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 */