[PATCH] ARM: stm32: Auto-detect ROM API table on STM32MP15xx
Patrice CHOTARD
patrice.chotard at foss.st.com
Wed May 21 16:40:36 CEST 2025
On 5/12/25 18:45, Marek Vasut wrote:
> The ROM API table location is passed to the SPL by BootROM in register r0,
> make use of this, store the content of r0 and later use it to access the
> ROM API table to determine current boot device.
>
> Signed-off-by: Marek Vasut <marek.vasut at mailbox.org>
> ---
> Cc: Patrice Chotard <patrice.chotard at foss.st.com>
> Cc: Patrick Delaunay <patrick.delaunay at foss.st.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Sughosh Ganu <sughosh.ganu at linaro.org>
> Cc: Tom Rini <trini at konsulko.com>
> Cc: u-boot at lists.denx.de
> Cc: uboot-stm32 at st-md-mailman.stormreply.com
> ---
> arch/arm/mach-stm32mp/stm32mp1/cpu.c | 3 +--
> arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c | 3 +--
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/mach-stm32mp/stm32mp1/cpu.c b/arch/arm/mach-stm32mp/stm32mp1/cpu.c
> index 18175fd12cc..9ab5a3ede52 100644
> --- a/arch/arm/mach-stm32mp/stm32mp1/cpu.c
> +++ b/arch/arm/mach-stm32mp/stm32mp1/cpu.c
> @@ -330,8 +330,7 @@ static uintptr_t nt_fw_dtb __section(".data");
> void save_boot_params(unsigned long r0, unsigned long r1, unsigned long r2,
> unsigned long r3)
> {
> - if (IS_ENABLED(CONFIG_STM32_ECDSA_VERIFY))
> - rom_api_table = r0;
> + rom_api_table = r0;
>
> if (IS_ENABLED(CONFIG_TFABOOT))
> nt_fw_dtb = r2;
> diff --git a/arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c b/arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c
> index caeeeca863c..07d99034861 100644
> --- a/arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c
> +++ b/arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c
> @@ -64,7 +64,6 @@
> * - boot instance = bit 31:16
> * - boot device = bit 15:0
> */
> -#define BOOTROM_PARAM_ADDR 0x2FFC0078
> #define BOOTROM_MODE_MASK GENMASK(15, 0)
> #define BOOTROM_MODE_SHIFT 0
> #define BOOTROM_INSTANCE_MASK GENMASK(31, 16)
> @@ -189,7 +188,7 @@ void spl_board_init(void)
> static void update_bootmode(void)
> {
> u32 boot_mode;
> - u32 bootrom_itf = readl(BOOTROM_PARAM_ADDR);
> + u32 bootrom_itf = readl(get_stm32mp_rom_api_table());
> u32 bootrom_device, bootrom_instance;
>
> /* enable TAMP clock = RTCAPBEN */
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
Thanks
Patrice
More information about the U-Boot
mailing list