Last edited 5 months ago

STM32MP15 peripherals overview: Difference between revisions


Latest revision as of 15:58, 8 October 2024



This article lists all internal peripherals embedded in STM32MP15x lines More info.png and shows the assignment possibilities to the execution contexts for each one of them.
From this article, you can also access to individual peripheral articles in which information related to the overview and configuration can be found.

1. Internal peripherals overview

The figure below shows all peripherals embedded in STM32MP15x lines More info.png, grouped per functional domains that are reused in many places of this wiki to structure the articles.

Several execution contexts exist on STM32MP15x lines More info.png[1], corresponding to the different Arm cores and associated security modes:

  •  Arm dual core Cortex-A7 secure  (Trustzone), running ROM code and TF-A BL2 at boot time, and running OP-TEE at runtime
  •  Arm dual core Cortex-A7 non secure , running U-Boot at boot time, and running Linux at runtime
  •  Arm Cortex-M4 non-secure , running STM32Cube


Some peripherals can be strictly assigned to one execution context: this is the case for most of the peripherals, like USART or I2C.
Other ones can be shared between several execution contexts: this is the case for system peripherals, like PWR or RCC.
The legend below shows how assigned and shared peripherals are identified in the assignment diagram that follows:

STM32MP1IPsOverview legend.png

Both the diagram below and the following summary table (in Internal peripherals runtime assignment and Internal peripherals boot time assignment chapters below) are clickable in order to jump to each peripheral overview articles and get more detailed information (like software frameworks used to control them). They list STMicroelectronics recommendations. The STM32MP15 reference manual [2] may expose more possibilities than what is shown here.


Cortex-A7Cortex-M4STGENSYSCFGRTCEXTIGICNVICIWDGIWDGWWDGDMADMADMAMUXMDMASYSRAMDDR via DDR CTRLBKPSRAMMCU SRAMMCU SRAMRETRAMTIMTIMLPTIMGPIOGPIOIPCCHSEMRCCPWRDTSDDRPERFMDBGMCUHDPBSECQUADSPIFMCSDMMCFDCANETHSDMMCUSBHOTGUSBPHYCUSARTUSARTUSARTI2CI2CI2CSPISPIRNGHASHETZPCCRYPCRCTZCRNGHASHTAMPCRYPCRCGPUDSILTDCDCMICECVREFBUFDACDFSDMADCSPI I2SSPDIFRXSAI
STM32MP1 internal peripherals overview

2. Internal peripherals runtime assignment

Click on How to.png to expand or collapse the legend...

Domain Peripheral Runtime allocation Comment How to.png
Instance Cortex-A7
secure
(OP-TEE)
Cortex-A7
non-secure
(Linux)
Cortex-M4

(STM32Cube)
Analog DFSDM DFSDM Assignment (single choice)
Core RTC RTC RTC is mandatory to resynchronize STGEN after exiting low-power modes.
Core SYSCFG SYSCFG
Core/RAM MCU SRAM SRAM1 Assignment (between A7 S and A7 NS / M4)
Shareable (between A7 NS and M4)
SRAM2 Assignment (between A7 S and A7 NS / M4)
Shareable (between A7 NS and M4)
SRAM3 Assignment (between A7 S and A7 NS / M4)
Shareable (between A7 NS and M4)
SRAM4 Assignment (between A7 S and A7 NS / M4)
Shareable (between A7 NS and M4)
Power & Thermal RCC RCC
Security CRYP CRYP1 Assignment (single choice)
CRYP2
Security ETZPC ETZPC
Security HASH HASH1 Assignment (single choice)
HASH2
Security RNG RNG1 Assignment (single choice)
RNG2
Security TAMP TAMP

3. Internal peripherals boot time assignment

Click on How to.png to expand or collapse the legend...

Domain Peripheral Boot time allocation Comment How to.png
Instance Cortex-A7
secure
(ROM code)
Cortex-A7
secure
(TF-A BL2)
Cortex-A7
non-secure
(U-Boot)
Core RTC RTC
Core SYSCFG SYSCFG
Core/RAM MCU SRAM Any instance
Power & Thermal RCC RCC
Security ETZPC Any instance ETZPC configuration is set by OP-TEE
Security HASH HASH1
HASH2 not used at boot time.
Security RNG RNG1
Security TAMP TAMP

4. References