Skip to content

Commit 8a2e75e

Browse files
patrickdelaunayPatrice Chotard
authored andcommitted
stm32mp2: update register used by BL31 for boot parameter
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 <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
1 parent d1afa66 commit 8a2e75e

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

  • arch/arm/mach-stm32mp/stm32mp2

arch/arm/mach-stm32mp/stm32mp2/cpu.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,21 @@ uintptr_t get_stm32mp_bl2_dtb(void)
9292
}
9393

9494
/*
95-
* Save the FDT address provided by TF-A in r2 at boot time
95+
* Save the FDT address provided by TF-A at boot time
9696
* This function is called from start.S
9797
*/
98-
void save_boot_params(unsigned long r0, unsigned long r1, unsigned long r2,
99-
unsigned long r3)
98+
void save_boot_params(unsigned long x0, unsigned long x1, unsigned long x2,
99+
unsigned long x3)
100100
{
101-
nt_fw_dtb = r2;
101+
/* use the ARM64 kernel booting register settings:
102+
* x0 = physical address of device tree blob (dtb) in system RAM.
103+
* so kernel can replace U-Boot in FIP wihtout BL31 modification
104+
* else falback to x2 used in previous TF-A version
105+
*/
106+
if (x0)
107+
nt_fw_dtb = x0;
108+
else
109+
nt_fw_dtb = x2;
102110

103111
save_boot_params_ret();
104112
}

0 commit comments

Comments
 (0)