| Message ID | 20260118104912.1672642-1-dario.binacchi@amarulasolutions.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
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 <dario.binacchi@amarulasolutions.com> > > --- > > 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 <patrice.chotard@foss.st.com> Thanks Patrice To unsubscribe from this group and stop receiving emails from it, send an email to linux-amarula+unsubscribe@amarulasolutions.com.
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 */
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 <dario.binacchi@amarulasolutions.com> --- arch/arm/mach-stm32mp/include/mach/stm32.h | 4 ++++ board/st/stm32mp2/stm32mp2.c | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+)