Last edited 3 months ago

STM32MPU Embedded Software architecture overview

Applicable for STM32MP13x lines, STM32MP15x lines, STM32MP25x lines

1. STM32MPU Embedded Software overview[edit | edit source]

The diagram below shows STM32MPU Embedded Software distribution main components:

  • The OpenSTLinux distribution, running on the Arm® Cortex®-A, includes:
    • The OpenSTLinux BSP with:
      • The boot chain based on TF-A BL2 and U-Boot.
      • The secure monitor based on TF-A BL31 or OP-TEE depending on Cortex®-A architecture, running on the Arm® Cortex®-A in secure mode.
      • The OP-TEE secure OS running on the Arm® Cortex®-A in secure mode.
      • The Linux® kernel running on the Arm® Cortex®-A in non-secure mode.
    • The Linux middleware relies on the BSP to provide API to the Applications that typically interact with the user via the display, the touchscreen, etc.
    • On OP-TEE side, the Trusted Applications (TA) relies on the OP-TEE core for secrets operations (not visible from the Linux and other software components).
  • The composition of the firmware running on Arm® Cortex®-M (not available on STM32MP13x lines More info.png) depends on Arm® Cortex®-M architecture; it includes:
    • The STM32Cube MPU Package running on the Arm® Cortex®-M non secure mode: it is based on HAL drivers and middleware, like STM32 microcontrollers, completed with coprocessor management for interaction with the Cortex-A.
    • The Trusted Firmware Cortex-M secure OS running on the Arm® Cortex®-M in secure mode: it provides local secure services to STM32Cube MPU Package.

The OpenSTLinux distribution is generated with OpenEmbedded build framework : the BSP components are modified open source software components, stored on github, whereas the middleware is directly inherited from communities. See our Open Source Software (OSS) philosophy just below for further information.

The figure below is clickable so that the user can directly jump to one of the sub-levels listed above.

Linux application frameworks overviewSTM32 MPU OP-TEE overviewTF-A overviewU-Boot overviewSTM32 MPU Linux kernel overviewBoot chain overviewOpenSTLinux BSP architecture overviewOpenSTLinux architecture overviewCategory:STM32Cube MPU PackagesTF-M overviewSecurity overviewSecurity overviewArm_processorsPlatform configurationSTM32MP13 microprocessorSTM32MP15 microprocessorSTM32MP25 microprocessor
STM32MPU Embedded Software architecture overview.
OpenSTLinux OE legend.png


2. Open Source Software (OSS) philosophy[edit | edit source]

The Open source software source code is released under a license in which the copyright holder grants users the rights to study, change and distribute the software to anyone and for any purpose[1].
STMicroelectronics maximizes the using of open source software and contributes to those communities. Notice that, due to the software review life cycle, it can take some time before getting all developments accepted in the communities, so STMicroelectronics can also temporarily provide some source code on github[2], until it is merged in the targeted repository.

3. References[edit | edit source]