Skip to content

v2.10-stm32mp-r3.1

Latest

Choose a tag to compare

@meremST meremST released this 10 Jun 15:01

The following changes since commit 41575b2:

fix(st): rework metadata partition selection (2026-01-27 10:15:09 +0100)

are available in the Git repository at:

https://github.com/STMicroelectronics/arm-trusted-firmware.git tags/v2.10-stm32mp-r3.1

for you to fetch changes up to 104df65:

fix(stm32mp2): set FWU boot index before BL2 DT is overwritten (2026-06-05 10:36:14 +0200)


TF‑A – OpenSTLinux 6.2.1 Release (based on official LTS 2.10.24 branch)

  • Update mbedtls to version 3.6.5
  • Add M33TDCID FWU support
  • Multiple fixes and improvements

Christophe Kerello (3):
fix(st-spi): Avoid using uninitialized value
feat(st): keep TAMP_BKP_REG_CLK always on
fix(st-nvmem): Fix an overflow in stm32_tamp_nvram_read function

Gabriel Fernandez (1):
feat(stm32mp2): add CK_KER_TSDBG clock support

Maxime Méré (12):
feat(stm32mp2): add specific BL2 size for M33TD
feat(stm32mp2): support of previous STM32MP23/25 revision with workaround [MP25-REVY]
fix(st): update stm32image tool to address Coverity issues
feat(stm32mp2-fdts): add TAMP backup register node for M33 FW update status
feat(st): add helper to access Cortex-M firmware update backup register
feat(st): add sync mechanism for asymmetrical firmware update
fix(st): check return values of NVMEM functions
feat(stm32mp2): add a cold boot detection indication
feat(stm32mp1): add a cold boot detection indication
fix(stm32mp2): fix Coverity issue in print_reset_reason
fix(st): remove redundant fd initializations in stm32image_create_header_file
fix(stm32mp2): set FWU boot index before BL2 DT is overwritten

Nicolas Le Bayon (6):
fix(stm32mp2-fdts):fix LPDDR4 16bits swizzle
fix(st-ddr): fix coverity static analysis issues
feat(stm32mp2): set VREF and VTT regulators as optional
fix(stm32mp2): disable programmer UART before changing clock tree
fix(stm32mp2): reset USB in UART programmer mode
fix(st-ddr): fix coverity static analysis issues

Patrick Delaunay (9):
refactor(stm32mp2): simplify stm32_pm_init
feat(stm32mp2): add synchronization point between CA35 and M33 for stop mode
fix(stm32mp2): remove unused code in stm32_pwr_domain_suspend_finish
fix(stm32mp2): manage DDR data cache for M33-TD flavor
refactor(stm32mp2): update defines for 32 bit registers access
fix(stm32mp2): fix debug clock ID used for TSGEN isolation
fix(st-ddr): disabled DDR bus clock
fix(stm32mp2): no more disable DDR in low power
feat(stm32mp2): use scmi system power request for system off

Yann Gautier (35):
fix(st-bsec): use unsigned type for timeout
fix(st-rif): do not assign an unused value for node when parsing config
fix(st-nvmem): check fdt_node_offset_by_phandle() return
fix(st-clock): do not include platform_def.h
fix(st-clock): do not return NULL in _clk_get
fix(st-clock): remove some variables default assignment
fix(st-clock): check fdt_subnode_offset return
fix(stm32mp2): cast values to uint32_t before shifting them
fix(stm32mp2): check index before accessing the PM tables
fix(psci): check error value for psci_find_target_suspend_lvl
fix(stm32mp2): cast ST_CTX_VER_MAJOR for ST_CTX_VERSION
fix(stm32mp2): add a check on fdt_get_address when saving PM context
fix(stm32mp2): skip minor version check if it is 0
fix(st-pmic): check stpmic2_is_buck1_high_voltage return
fix(st-pmic): initialize some structs in dt_pmic2_i2c_config
refactor(st): remove unused GPIO regulator driver
fix(stm32mp2): correct ORR instruction in plat_crash_console_init
fix(st-clock): improve clock enabling/disabling barriers
fix(st-pmic): check volt_table in stpmic2_regulator_get_voltage
fix(stm32mp2): check core_id in stm32mp_state_set
fix(st-spi): avoid overflow in stm32_ospi_dtr_calibrate()
fix(st-spi): cast the number of banks from DT to uint8_t
feat(mbedtls): update mbedtls to version 3.6.5
fix(st): make STM32MP1X/STM32MP2X boolean flags
fix(st-usb): make register_usb_driver and register_platform return void
fix(st-usb): change prototype of usb_dwc3_init_driver()
fix(st-usb): rename some global variables
fix(st-usb): void variables instead of using __unused
fix(st-usb): use const pointers for function parameters when not modified
fix(st-usb): move usb_dwc3driver inside usb_dwc3_init_driver()
fix(st-usb): avoid unreachable statement in dwc3_execute_dep_cmd()
fix(st-usb): avoid dead code in dwc3_read_dev_evt_type()
fix(st-usb): update __HAL_PCD_EPADDR_TO_PHYEPNUM macro
fix(st-usb): remove useless asserts
fix(st-usb): check that endoint number does not overflow

docs/getting_started/prerequisites.rst | 2 +-
drivers/st/bsec/bsec3.c | 4 +-
drivers/st/clk/clk-stm32-core.c | 20 +-
drivers/st/clk/clk-stm32mp13.c | 8 +-
drivers/st/clk/clk-stm32mp2.c | 4 +-
drivers/st/clk/stm32mp1_clk.c | 15 +-
.../phyinit/src/ddrphy_phyinit_c_initphyconfig.c | 14 +-
.../st/ddr/phy/phyinit/src/ddrphy_phyinit_calcmb.c | 8 +-
.../phyinit/src/ddrphy_phyinit_isdbytedisabled.c | 2 -
.../phyinit/src/ddrphy_phyinit_progcsrskiptrain.c | 21 +-
drivers/st/ddr/stm32mp2_ddr.c | 2 +-
drivers/st/ddr/stm32mp2_ddr_helpers.c | 26 +-
drivers/st/ddr/stm32mp_ddr.c | 6 +-
drivers/st/ddr/stm32mp_ddr_test.c | 4 +-
drivers/st/fmc/stm32_fmc2_nand.c | 16 +-
drivers/st/gpio/stm32_gpio.c | 4 +-
drivers/st/mmc/stm32_sdmmc2.c | 4 +-
drivers/st/nvmem/nvmem.c | 5 +-
drivers/st/nvmem/stm32mp_tamp_nvram_core.c | 2 +-
drivers/st/pmic/stm32mp_pmic2.c | 10 +-
drivers/st/pmic/stpmic2.c | 8 +-
drivers/st/regulator/regulator_gpio.c | 166 --
drivers/st/rif/stm32mp2_risaf.c | 4 +-
drivers/st/spi/stm32_ospi.c | 8 +-
drivers/st/usb/stm32mp1_usb.c | 10 +-
drivers/st/usb_dwc3/usb_dwc3.c | 158 +-
drivers/usb/usb_device.c | 24 +-
...stm32mp21-lpddr4-1x16Gbits-1x16bits-800MHz.dtsi | 38 +-
fdts/stm32mp211.dtsi | 8 +-
...tm32mp23-lpddr4-1x16Gbits-1x16bits-1200MHz.dtsi | 56 +-
fdts/stm32mp231.dtsi | 8 +-
fdts/stm32mp251.dtsi | 8 +-
.../drivers/auth/mbedtls/default_mbedtls_config.h | 4 +-
include/drivers/st/regulator_gpio.h | 12 -
include/drivers/st/stm32mp21_pwr.h | 376 +--
include/drivers/st/stm32mp21_rcc.h | 2668 ++++++++---------
include/drivers/st/stm32mp25_rcc.h | 2992 ++++++++++----------
include/drivers/st/stm32mp2_clk.h | 4 +-
include/drivers/st/stm32mp2_pwr.h | 444 +--
include/drivers/st/stm32mp_ddr.h | 4 +-
include/drivers/st/usb_dwc3.h | 4 +-
include/drivers/usb_device.h | 21 +-
lib/psci/psci_main.c | 2 +-
plat/st/common/bl2_io_storage.c | 30 +-
plat/st/common/common.mk | 3 +-
plat/st/common/include/stm32mp_common.h | 11 +-
plat/st/common/stm32mp_common.c | 41 +-
plat/st/stm32mp1/bl2_plat_setup.c | 14 +-
plat/st/stm32mp1/platform.mk | 22 +-
plat/st/stm32mp1/stm32mp1_def.h | 2 -
plat/st/stm32mp1/stm32mp1_private.c | 9 +
plat/st/stm32mp2/aarch64/stm32mp2_helper.S | 20 +-
plat/st/stm32mp2/bl2_plat_setup.c | 72 +-
plat/st/stm32mp2/include/stm32mp2_private.h | 2 +-
plat/st/stm32mp2/plat_ddr.c | 37 +-
plat/st/stm32mp2/platform.mk | 33 +-
plat/st/stm32mp2/stm32mp2_ca35ss.c | 2 +-
plat/st/stm32mp2/stm32mp2_context.c | 10 +-
plat/st/stm32mp2/stm32mp2_def.h | 12 +-
plat/st/stm32mp2/stm32mp2_pm.c | 170 +-
plat/st/stm32mp2/stm32mp2_private.c | 33 +
plat/st/stm32mp2/stm32mp2_syscfg.c | 15 +-
plat/st/stm32mp2/stm32mp2_usb_dfu.c | 63 +-
tools/stm32image/stm32image.c | 108 +-
64 files changed, 4044 insertions(+), 3869 deletions(-)
delete mode 100644 drivers/st/regulator/regulator_gpio.c
delete mode 100644 include/drivers/st/regulator_gpio.h