[PATCH v1 2/4] mach-k3: add a jump stub to support older ATF builds

Anshul Dalal anshuld at ti.com
Wed Apr 16 09:30:55 CEST 2025


The older ATF had it's PRELOADED_BL33_BASE set to 0x80080000, changing
SPL_TEXT_BASE to the newer address of 0x822000000 is incompatible with
older ATF builds.

Therefore, this patch adds a jump stub to move execution back to
SPL_TEXT_BASE with the stub being loaded at the older ATF address of
0x80080000.

Signed-off-by: Anshul Dalal <anshuld at ti.com>
---
 arch/arm/mach-k3/Makefile    |  7 +++++++
 arch/arm/mach-k3/jump_stub.S | 16 ++++++++++++++++
 2 files changed, 23 insertions(+)
 create mode 100644 arch/arm/mach-k3/jump_stub.S

diff --git a/arch/arm/mach-k3/Makefile b/arch/arm/mach-k3/Makefile
index b2fd5810b67..573956a8a2c 100644
--- a/arch/arm/mach-k3/Makefile
+++ b/arch/arm/mach-k3/Makefile
@@ -17,3 +17,10 @@ obj-$(CONFIG_SOC_K3_J7200) += j7200/
 obj-$(CONFIG_SOC_K3_J721S2) += j721s2/
 obj-$(CONFIG_SOC_K3_J722S) += j722s/
 obj-$(CONFIG_SOC_K3_J784S4) += j784s4/
+
+ifdef CONFIG_ARM64
+obj-y += jump_stub.o
+$(src)/jump_stub.o: $(src)/jump_stub.s
+	$(AS) $(src)/jump_stub.s -o $(src)/jump_stub.o
+	$(OBJCOPY) -O binary --only-section .text $(src)/jump_stub.o jump_stub.bin
+endif
diff --git a/arch/arm/mach-k3/jump_stub.S b/arch/arm/mach-k3/jump_stub.S
new file mode 100644
index 00000000000..694d4ee47a6
--- /dev/null
+++ b/arch/arm/mach-k3/jump_stub.S
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2025 Texas Instruments Incorporated - https://www.ti.com/
+ *	Anshul Dalal <anshuld at ti.com>
+ */
+
+/*
+	This jump stub is to be loaded at the older PRELOADED_BL33_BASE to forward
+	execution to SPL_TEXT_BASE when using older ATF builds.
+ */
+
+.text
+
+jump_stub:
+	mov x15, CONFIG_SPL_TEXT_BASE
+	br x15
-- 
2.49.0



More information about the U-Boot mailing list