On 1/18/26 11:48, Dario Binacchi wrote:
> Following the commit 95b5a7de30f6 (“FWU: STM32MP1: Add support to read
> boot index from backup register”), this patch enables reading the boot
> index from backup registers on STM32MP2 platforms.
>
> Signed-off-by: Dario Binacchi <[email protected]>
>
> ---
>
> arch/arm/mach-stm32mp/include/mach/stm32.h | 4 ++++
> board/st/stm32mp2/stm32mp2.c | 21 +++++++++++++++++++++
> 2 files changed, 25 insertions(+)
>
> diff --git a/arch/arm/mach-stm32mp/include/mach/stm32.h
> b/arch/arm/mach-stm32mp/include/mach/stm32.h
> index 2bf50c755cbd..90f06a052d3f 100644
> --- a/arch/arm/mach-stm32mp/include/mach/stm32.h
> +++ b/arch/arm/mach-stm32mp/include/mach/stm32.h
> @@ -188,8 +188,12 @@ enum forced_boot_mode {
> /* TAMP registers x = 0 to 127 : hardcoded description, waiting NVMEM node
> in DT */
> #define TAMP_BACKUP_REGISTER(x) (STM32_TAMP_BASE + 0x100 + 4 *
> (x))
>
> +#define TAMP_FWU_BOOT_INFO_REG TAMP_BACKUP_REGISTER(48)
> /* TAMP registers zone 3 RIF 1 (RW) at 96*/
> #define TAMP_BOOT_CONTEXT TAMP_BACKUP_REGISTER(96)
> +
> +#define TAMP_FWU_BOOT_IDX_MASK GENMASK(3, 0)
> +#define TAMP_FWU_BOOT_IDX_OFFSET 0
> #endif /* defined(CONFIG_STM32MP23X) || defined(CONFIG_STM32MP25X) */
>
> /* offset used for BSEC driver: misc_read and misc_write */
> diff --git a/board/st/stm32mp2/stm32mp2.c b/board/st/stm32mp2/stm32mp2.c
> index 7bc7d2a608fd..43bc583378e6 100644
> --- a/board/st/stm32mp2/stm32mp2.c
> +++ b/board/st/stm32mp2/stm32mp2.c
> @@ -188,3 +188,24 @@ void board_quiesce_devices(void)
> {
> led_boot_off();
> }
> +
> +#if defined(CONFIG_FWU_MULTI_BANK_UPDATE)
> +
> +#include <fwu.h>
> +
> +/**
> + * fwu_plat_get_bootidx() - Get the value of the boot index
> + * @boot_idx: Boot index value
> + *
> + * Get the value of the bank(partition) from which the platform
> + * has booted. This value is passed to U-Boot from the earlier
> + * stage bootloader which loads and boots all the relevant
> + * firmware images
> + *
> + */
> +void fwu_plat_get_bootidx(uint *boot_idx)
> +{
> + *boot_idx = (readl(TAMP_FWU_BOOT_INFO_REG) >>
> + TAMP_FWU_BOOT_IDX_OFFSET) & TAMP_FWU_BOOT_IDX_MASK;
> +}
> +#endif /* CONFIG_FWU_MULTI_BANK_UPDATE */
Hi Dario
Reviewed-by: Patrice Chotard <[email protected]>
Thanks
Patrice