STM32MP15 ecosystem release note - v3.0.0

This article describes the content of STM32MP15-ecosystem-v3.0.0 release of STM32MPU Embedded Software distributions and its associated ecosystem.

1. Delivery purpose and scope[edit source]

The new STM32MP15-ecosystem-v3.0.0 release is dedicated to STM32MP15 microprocessors. It is a major release of MPU Mass Market based on new community components version (Yocto LTS Dunfell, Kernel 5.10 LTS, U-BOOT v2020-10, TF-A 2.4, OP-TEE 3.12).

As for the previous release, STM32MP15-ecosystem-v3.0.0 aims at:

  • providing a full ecosystem for STM32MP15x devices
  • working efficiently with STM32MP15 boards, using one of the packages (Starter Package, Developer Package or Distribution Package) developed by STMicroelectronics for STM32 MPUs.

Refer to Which Package better suits your needs for more information on these packages.


This ecosystem release consists of:

  • the STM32MPU Embedded Software distribution
  • STM32CubeIDE
  • STM32CubeMX
  • STM32CubeProgrammer
  • Keygen tool
  • Signing tool
  • Documentation
  • the present user guide in wiki format
  • the Documentation package (for more details refer to Reference documents chapter below)
  • Supported STM32MP15 boards (more details are provided in the Board chapter below)
  • STM32MP15 Evaluation boards ( for "STM32MPU Embedded Software distribution" and "STM32MPU Embedded Software distribution for Android")
  • STM32MP15 Discovery kits (for STM32MPU Embedded Software distribution)
More details are provided in the Board chapter below.

2. Intended audience[edit source]

The targeted audience is STMicroelectronics customers.

3. Licensing[edit source]

This software package is licensed under a SOFTWARE LICENSE AGREEMENT FOR ST MATERIALS (SLA). Customers may not use this package except in compliance with the software license agreement (SLA).

4. Main features / main highlights[edit source]

4.1. Boards[edit source]

This STM32MP15-ecosystem-v3.0.0 release supports the same boards as STM32MP15-ecosystem-v2.1.0 plus the STM32MP157D-EV1, STM32MP157F-DK2 and STM32MP157D-DK1 new boards.

Boards PCBs list Content Availability
STM32MP157C-EV1 board (board with Crypto)
  • MB1263C (Daughter)
  • MB1262C (Mother)
  • MB1230C (Display)
  • MB1379A (Camera)
  • STM32MP1 STM32MP157CAA3 Rev.B
  • PMIC STPMIC1APQR cut1.2
  • External oscillator
Jan '19
STM32MP157A-EV1 board (board without Crypto)
  • MB1263C (Daughter)
  • MB1262C (Mother)
  • MB1230C (Display)
  • MB1379A (Camera)
  • STM32MP1 STM32MP157AAA3 Rev.B
  • PMIC STPMIC1APQR cut1.2
  • External oscillator
Jan '19
STM32MP157F-EV1 board (board with Crypto ; CPU at 800MHz)
  • MB1263C (Daughter)
  • MB1262C (Mother)
  • MB1230C (Display)
  • MB1379A (Camera)
  • STM32MP1 STM32MP157FAA3 Rev.Z
  • PMIC STPMIC1APQR cut2.0
  • External oscillator
Jun '20
STM32MP157D-EV1 board (board without Crypto ; CPU at 800MHz)
  • MB1263C (Daughter)
  • MB1262C (Mother)
  • MB1230C (Display)
  • MB1379A (Camera)
  • STM32MP1 STM32MP157DAA3 Rev.Z
  • PMIC STPMIC1APQR cut2.0
  • External oscillator
Nov '20
STM32MP157C-DK2 board (board with Crypto)
  • MB1272C (Mother)
  • MB1407B (Display)
  • STM32MP1 STM32MP157CAC3 Rev.B
  • PMIC STPMIC1APQR cut1.2
  • External oscillator
Jan '19
STM32MP157F-DK2 board (board with Crypto ; CPU at 800MHz)
  • MB1272C (Mother)
  • MB1407B (Display)
  • STM32MP1 STM32MP157FAC3 Rev.Z
  • PMIC STPMIC1APQR cut2.0
  • External oscillator
Nov '20
STM32MP157A-DK1 board (board without Crypto)
  • MB1272C (Mother)
  • STM32MP1 STM32MP157AAC3 Rev.B
  • PMIC STPMIC1APQR cut1.2
  • External oscillator
Jan '19
STM32MP157D-DK1 board (board without Crypto ; CPU at 800MHz)
  • MB1272C (Mother)
  • STM32MP1 STM32MP157DAC3 Rev.Z
  • PMIC STPMIC1APQR cut2.0
  • External oscillator
Nov '20


Info white.png Information
STLINK in EVAL and DISCO Rev.C boards integrates the latest firmware STLINK (V2J32M22) which requires upgraded USB PC drivers - Windows USB driver

4.2. Embedded software[edit source]

4.2.1. OpenSTLinux (Cortex®-A7)[edit source]

Openstlinux-5.10-dunfell-mp1-21-03-31 is the new version delivered with the STM32MP15-ecosystem-v3.0.0 release. This software set consists of the following components:

  • Build process
    • OpenEmbedded LTS Dunfell (v3.1.5) - NEW version versus STM32MP15-ecosystem-v2.1.0 release
    • GCC version v9.3
  • Software components
    • Kernel version LTS v5.10.10 - NEW version versus STM32MP15-ecosystem-v2.1.0 release
    • TF-A version v2.4 - NEW version versus STM32MP15-ecosystem-v2.1.0 release
    • U-Boot version v2020.10 - NEW version versus STM32MP15-ecosystem-v2.1.0 release
    • OP-TEE version v3.12.0 - NEW version versus STM32MP15-ecosystem-v2.1.0 release
    • OpenOCD version v0.11.0 - NEW version versus STM32MP15-ecosystem-v2.1.0 release
  • Applicative components
    • Weston version v8.0.0
    • GStreamer version v1.16.3 - NEW version versus STM32MP15-ecosystem-v2.1.0 release
    • GCnano version v6.4.3
  • Main NEW features of the STM32MP15-ecosystem-v3.0.0 release
    • Firmware Image Package (FIP) used to pack into a single binary the various files (executables -U-Boot, OP-TEE-, device trees and certificates) loaded by TF-A BL2
    • Firmware Configuration Framework (FCONF) used to define TF-A BL2 expected behaviour with the FIP binaries and the platform low level memory firewalling (TZC)
Warning white.png Warning
Basic boot has been removed since STM32MP15-ecosystem-v2.0.0, if you were using basic boot with U-BOOT-SPL to load U-BOOT and the Kernel, then you need to use now the ST reference boot scheme in replacing U-BOOT-SPL by TF-A as FSBL as explained in Boot chain overview.
  • Internal peripheral assignment at boot time
At boot time, you can select two kernel configurations:
  • Configuration 1: all internal peripherals are assigned to Cortex-A7 for Linux drivers. Cortex-M4 coprocessing firmware TTY is executed by default.
  • Configuration 2: some internal peripherals are assigned to Cortex-M4 to execute Cortex-M4 delivered examples on the board (EVAL or DISCO) see (How to run Cortex-M4 examples).
Configuration 1 is activated by default if you do not specify "2" in the U-Boot console.
More information can be found in the How to assign an internal peripheral to a runtime context article.

4.2.2. STM32CubeMP1 (Cortex®-M4)[edit source]

  • STM32CubeMP1-v1.4.0 version - NEW version versus STM32MP15-ecosystem-v2.1.0 release
  • Main NEW features of STM32CubeMP1-v1.3.0, delivered within STM32MP15-ecosystem-v3.0.0 release
    • General updates to fix known defects and enhancements implementation for HAL, LL, CMSIS, BSP
      • DTS (TMPSENS) : Add Register Callback feature
      • EXTI: Remove management of C1EMRx registers which does not exist on the silicon
      • RCCLL - Fix compilation issue ( Align CMSIS Device and LL definitions removing LL_APB3_GRP1_PERIPH_PMBCTRL and LL_AHB5_GRP1_PERIPH_AXIMC)
      • SMARTCARD: Alignment with other STM32 families (some API Change)
      • USART: Alignment with other STM32 families (No API Change) 
      • CMSIS: Update RNG register structure
      • OpenAMP: Align OpenAMP projects with v2020.10_20201215 and fix compilation warnings
      • Projects:
        • Port all EV1 projects on STM32CubeIDE
        • Port AI_Character_Recognition on STM32CubeIDE
        • Port OpenAMP_FreeRTOS_echo project on STM32CubeIDE for DK2
        • Add HAL_RCC_DeInit() in projects to improve successive debug session
        • Fix TIM2 IRQ management for FreeRTOS projects in case of successive debug session (HAL_Tick issue) 

4.3. STM32CubeProgrammer, Signing tool, Keygen[edit source]

STM32CubeProgrammer v2.7.0 is the version delivered within the STM32MP15-ecosystem-v2.1.0 release. This is an evolutive maintenance release for STM32CubeProgrammer.

  • Main NEW features of STM32CubeProgrammer-v2.6.0, delivered within STM32MP15-ecosystem-v2.1.0 release
  • No new feature only corrective maintenance
  • Features already available in previous version
  • STM32CubeProg installer includes STM32CubeProgrammer, Keygen and Signing tools
  • Flashload SDCard, eMMC, NAND, NOR images through USB and UART for STM32MP157C-EV1, STM32MP157A-EV1, STM32MP157A-DK1, STM32MP157C-DK2 boards
  • Private and public key generation
  • Image signatures
  • Flashlayout file format change
  • STM32MP1 fuse management (with console interface only)
  • PMIC NVM management (with console interface only)
  • SSP (Secure Secrets Provisonning) UI.

4.4. STM32CubeMX[edit source]

STM32CubeMX-v6.1 is the version delivered within STM32MP15-ecosystem-v2.1.0 release

  • Main NEW features of STM32CubeMX-v6.1, delivered within the STM32MP15-ecosystem-v2.1.0 release
  • New Boards 800 MHz support - STM32MP157F-DK2
    • STM32MP157D-DK1 and STM32MP157D-EV1 boards not yet supported - #STM32CubeMX_2
  • Ubuntu 20.04 support
  • Device tree (A7)
    • RS485 UART support
    • FMC EBI mode support
    • Device tree compliance with openstlinux-5.4-dunfell-mp1-20-11-12 tag
  • Features already available in previous version
  • STM32CubeMP1 (M4): Compliance with STM32CubeMP1 v1.2.0
  • I/O muxing and clock tree configuration
  • STM32MP1 contexts management (A7 non-secure, A7 secure, M4)
  • ST32MP1Cube code generation
  • Tuning of DDR settings
  • Device tree code generation
    • dtsi and header file inclusions
    • pinctrl and clock generation
    • System-on-chip device node positioning
    • multi-core related configurations (ETZPC binding, resources manager binding, peripheral assignment).
    • DMA config generation - DMA nodes
Info white.png Information
Note: The other device tree parameters must be filled in manually through user section tags (from /* USER CODE BEGIN <node> */ to /* USER CODE END <node> */)

4.5. STM32CubeIDE[edit source]

STM32CubeIDE-v1.5.0 is the version delivered within STM32MP15-ecosystem-v2.1.0 release

  • Main NEW features of STM32CubeIDE v1.5.0, delivered within the STM32MP15-ecosystem-v2.1.0 release
    • New Boards 800 MHz support - STM32MP157F-DK2
      • STM32MP157D-DK1 and STM32MP157D-EV1 boards not yet supported - #STM32CubeIDE_2
    • Ubuntu 20.04 support
    • A toolchain manager now available with v7 by default (STM32CubeIDE v1.4.0)
  • Features already available in previous version
  • STM32CubeMP1 v1.2.0 M4 support as STM32MP15-ecosystem-v1.2.0 release
  • Cortex-M4 STM32CubeMP1 in "Production mode" and "Engineering mode"
  • Cortex-M4 Firmware compilation, loading and debugging
  • PC Linux with Ethernet (recommended) or serial link
  • PC Windows with Ethernet or Ethernet over USB link
  • Cortex-M4 Firmware installation directory configurable.
  • OpenSTLinux developer package support with
    • TF-A component project with native dt selected or external dt (for example, generated from CubeMX)
    • U-BOOT component project with native dt selected or external dt (for example, generated from CubeMX)
    • OP-TEE component project with native dt selected or external dt (for example, generated from CubeMX)
    • KERNEL component project with native dt selected or external dt (for example, generated from CubeMX)
    • KERNEL artefacts update on running target
    • refer to How_to_manage_OpenSTLinux_project_in_STM32CubeIDE article

4.6. Miscellaneous[edit source]

5. Main restrictions[edit source]

5.1. Embedded software[edit source]

5.1.1. OpenSTLinux (Cortex®-A7)[edit source]

  • M-CAN Bus is not functional if power management is activated ("sleep" state defined in pinctrl): the issue is corrected thanks to this patch

5.1.2. STM32CubeMP1 (Cortex®-M4)[edit source]

  • Examples projects for STM32MP157X-EV1 not migrated on STM32CubeIDE and still on SW4STM32 (deprecated) – To use them on STM32CubeIDE, need to use STM32CubeIDE import menu
  • Please use the HAL RTC with caution since this driver is also used by Linux. To remove any risk of contention between Linux and the HAL, proceed as follows:
    • The write protect (wpr) must be disabled by default and it must never be enabled in any driver (Linux nor HAL).
    • The HAL must use only Alarm B, since Linux uses Alarm A.
    • The RTC interrupt must be shared between Linux and the HAL to be able to receive alarm notifications on both sides.

5.2. STM32CubeProgrammer, Signing tool and Keygen[edit source]

  • Key generation is not functional with STM32MP_KeyGen_CLI on Linux under Ubuntu 16.04 (functional with Ubuntu 18.04 and upper versions).

5.3. STM32CubeMX[edit source]

  • Warning: To generate an device tree for new Boards STM32MP157D-DK1, STM32MP157D-EV1, please select respectively the ST boards project STM32MP157F-DK2, STM32MP157F-EV1. The generated device trees will work but with some probe errors on Crypto, Display DSI, Wifi, BT linux drivers for STM32MP157D-DK1 board and on Crypto Linux driver for STM32MP157D-EV1
  • Warning: When opening a previous project built with STM32CubeMX version older than V6.1, the migration does not take into account the user section part. This part needs to be updated manually according the Openstlinux-5.4-dunfell-mp1-20-11-12 manifest.

5.4. STM32CubeIDE[edit source]

  • Warning - v9 toolchain already available and installable through the toolchain manager but no yet validated with STM32CubeMP1
  • Warning: To use an project based on new Boards STM32MP157D-DK1, STM32MP157D-EV1, please select respectively the ST boards project STM32MP157F-DK2, STM32MP157F-EV1. The generated device trees by STM32CubeMX will work but with some probe errors on Crypto, Display DSI, Wifi, BT Linux drivers for STM32MP157D-DK1 board and on Crypto Linux driver for STM32MP157D-EV1 board.
  • Using OpenOCD with ST-LINK does not check and force ST-LINK firmware update at debug launch. It is therefore recommended to manually update to the latest ST-LINK firmware for the best debug experience. Use the Help > ST-LINK Upgrade menu".

5.5. Miscellaneous[edit source]

Restriction lists are available in each subcomponent release note. They are available in the following chapters in the present article:

Moreover, the software workarounds implemented in the ecosystem to provide solutions to the STM32MPU device errata are listed in STM32MP15 ecosystem errata sheet.

6. Minor release updates[edit source]

STMicroelectronics regularly delivers updates through the following github® components: tf-a, u-boot, optee-os, Linux kernel.
You can decide to incorporate them into your Developer Package (refer to STM32MP1 Developer Package or Distribution Package below).

To update the Distribution package, proceed as follows:

  1. Switch your Distribution package reference source code to github mode.
  2. Use the devtool modify <recipe name> command to have direct access to the source code git repository used by the build process.
  3. In the freshly cloned source code, check out the revision you want to start from via git checkout -b WORK <github® TAG>.

STMicroelectronics also delivers dedicated fixes on layers through github®. These changes can be integrated (via git commands) into your local STM32MP1 Distribution Package environment. Below the github® links corresponding to each layers:

6.1. v2.1.1[edit source]

Component Recipe name new github® release
tf-a tf-a-stm32mp v2.2-stm32mp-r2.1
u-boot u-boot-stm32mp v2020.01-stm32mp-r2.1
kernel linux-stm32mp v5.4-stm32mp-r2.1
optee-os optee-os-stm32mp 3.9.0-stm32mp-r2

7. Reference documents[edit source]

STM32MP15 resources - v2.1.0

8. How to download the software and start with this release?[edit source]

The list of embedded software packages available for download depends on the selected package.

The table below provides the available board part numbers as well as information in order to:

  • get started with one of the three available Packages (Starter, Developer or Distribution Package)
  • get started with the board
  • find the associated embedded software distributions
  • download source code
  • build a piece of embedded software.
Board part number Jump to
STM32MP157x-EV1
Evaluation board
STM32MP15 Evaluation boards - getting started, including software download
STM32MP157x-DKx
Discovery kit
STM32MP15 Discovery kits - getting started, including software download

9. STM32MPU Embedded Software distribution detailed release notes[edit source]

The table below lists the software packages available in the STM32MPU Embedded Software distributions, and provides the corresponding release notes.
The release notes give more information and details about the features and content of the packages.
They do not explain how to download the software. Refer to How to get the software and start with this release.

Firmware Release note Version
OpenSTLinux Distribution STM32MP15 OpenSTLinux release note - v2.1.0 unknown revision
STM32Cube MPU Package STM32CubeMP1 Package release note - v1.3.0 STM32CubeMP1-v1.3.0

10. Referenced tools release notes[edit source]

The table below lists the available tools, and provides links to the corresponding release notes.

Each release note gives information on how to install and use the corresponding tool.

The set of tools that can be downloaded depends on the package that is used (double check Which Package better suits your needs article for more information on each package).

Tools Release notes Host PC Which Package may need the tool ?
STM32MPU ecosystem v2.1.0 release Availability on ST.com targeted on 12th November 2020 Linux version Windows version Starter Package Developer Package Distribution Package
STM32CubeIDE STM32CubeIDE_release_note 1.5.0 1.5.0
STM32CubeMX STM32CubeMX release note from 6.1 from 6.1
STM32CubeProg STM32CubeProgrammer release note 2.6.0 2.6.0
Keygen KeyGen release note 1.0.0 1.0.0
Signing tool Signing tool release note 1.0.0 1.0.0

11. References[edit source]