[PATCH] stm32mp2: update register used by BL31 for boot parameter
Patrick Delaunay
patrick.delaunay at foss.st.com
Wed Sep 17 14:31:30 CEST 2025
Use the ARM64 kernel booting register settings, defined in Linux
documentation Documentation/arch/arm64/booting.rst:
x0 = physical address of device tree blob (dtb) in system RAM.
so kernel can replace U-Boot in FIP without modification of BL31.
Use x0 for future TF-A version and keep x2 as fallback to be compatible
with previous version of TF-A BL31.
Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
---
arch/arm/mach-stm32mp/stm32mp2/cpu.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-stm32mp/stm32mp2/cpu.c b/arch/arm/mach-stm32mp/stm32mp2/cpu.c
index c3b87d7f9810..e081dc605b84 100644
--- a/arch/arm/mach-stm32mp/stm32mp2/cpu.c
+++ b/arch/arm/mach-stm32mp/stm32mp2/cpu.c
@@ -92,13 +92,21 @@ uintptr_t get_stm32mp_bl2_dtb(void)
}
/*
- * Save the FDT address provided by TF-A in r2 at boot time
+ * Save the FDT address provided by TF-A at boot time
* This function is called from start.S
*/
-void save_boot_params(unsigned long r0, unsigned long r1, unsigned long r2,
- unsigned long r3)
+void save_boot_params(unsigned long x0, unsigned long x1, unsigned long x2,
+ unsigned long x3)
{
- nt_fw_dtb = r2;
+ /* use the ARM64 kernel booting register settings:
+ * x0 = physical address of device tree blob (dtb) in system RAM.
+ * so kernel can replace U-Boot in FIP wihtout BL31 modification
+ * else falback to x2 used in previous TF-A version
+ */
+ if (x0)
+ nt_fw_dtb = x0;
+ else
+ nt_fw_dtb = x2;
save_boot_params_ret();
}
--
2.25.1
More information about the U-Boot
mailing list