[PATCH] ARM: stm32: Auto-detect ROM API table on STM32MP15xx

Patrice CHOTARD patrice.chotard at foss.st.com
Mon Jun 9 10:55:08 CEST 2025



On 5/21/25 16:40, Patrice CHOTARD wrote:
> 
> 
> 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
Applied to u-boot-stm32/next

Thanks
Patrice


More information about the U-Boot mailing list