STM32MP15 ecosystem release note - v3.0.0

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

1 Delivery purpose and scope[edit]

The 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 releases, the STM32MP15-ecosystem-v3.0.0 aims at:

  • providing a full ecosystem for the STM32MP15x devices
  • working efficiently with STM32MP15 boards, using one of the packages (Starter Package, Developer Package or Distribution Package) developed by STMicroelectronics for the 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
  • hosted at the non-browsable URL
  • enabled by default in the Starter Package
  • provides regularly updated or additional packages
  • 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
  • STM32MP15 Discovery kits
More details are provided in the Board chapter below.

2 Intended audience[edit]

The targeted audience is STMicroelectronics customers.

3 Licensing[edit]

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]

4.1 Boards[edit]

This STM32MP15-ecosystem-v3.0.0 release supports the same boards as STM32MP15-ecosystem-v2.1.0.

Boards PCBs list Content Availability
STM32MP157C-EV1 board (board with Crypto)
  • MB1263C (Daughter)
  • MB1262C (Mother)
  • MB1230C (Display)
  • MB1379A (Camera)
  • STM32MP1 STM32MP157CAA3 Rev.B
  • External oscillator
Jan '19
STM32MP157A-EV1 board (board without Crypto)
  • MB1263C (Daughter)
  • MB1262C (Mother)
  • MB1230C (Display)
  • MB1379A (Camera)
  • STM32MP1 STM32MP157AAA3 Rev.B
  • 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
  • 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
  • External oscillator
Nov '20
STM32MP157C-DK2 board (board with Crypto)
  • MB1272C (Mother)
  • MB1407B (Display)
  • STM32MP1 STM32MP157CAC3 Rev.B
  • External oscillator
Jan '19
STM32MP157F-DK2 board (board with Crypto ; CPU at 800MHz)
  • MB1272C (Mother)
  • MB1407B (Display)
  • STM32MP1 STM32MP157FAC3 Rev.Z
  • External oscillator
Nov '20
STM32MP157A-DK1 board (board without Crypto)
  • MB1272C (Mother)
  • STM32MP1 STM32MP157AAC3 Rev.B
  • External oscillator
Jan '19
STM32MP157D-DK1 board (board without Crypto ; CPU at 800MHz)
  • MB1272C (Mother)
  • STM32MP1 STM32MP157DAC3 Rev.Z
  • 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]

4.2.1 OpenSTLinux (Cortex®-A7)[edit]

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
    • GCC version v9.3
  • Software components
    • Kernel version LTS v5.10.10 - NEW
    • TF-A version v2.4 - NEW
    • U-Boot version v2020.10 - NEW
    • OP-TEE version v3.12.0 - NEW
    • OpenOCD version v0.11.0 - NEW
  • Applicative components
    • Weston version v8.0.0
    • GStreamer version v1.16.3 - NEW
    • GCnano version v6.4.3

Main NEW features of the STM32MP15-ecosystem-v3.0.0 release

  • Firmware Image Package (FIP) support (more about FIP here)
    • It means that only TF-A BL2 requires the stm32 header for a ROM Code authentication. Others bootloader binaries are embedded in a FIP container.
    • A dedicated fip-utils-stm32mp.bbclass class is provided on meta-st-stm32mp layer side to manage the FIP image configuration, build and update.
    • A new MACHINE_FEATURES 'fip' allows to enable the FIP binary support : this is the default and ST recommended configuration for STM32MP1 machine due to the compliance with Trusted firmware-A.
Info white.png Information
Note that if no FIP binary support is expected, meaning use legacy mode with stm32 header binary files for bootloaders, remove 'fip' from MACHINE_FEATURES configuration on machine file with:
MACHINE_FEATURES_remove = "fip"
  • Firmware Configuration framework (FCONF) used to define TF-A BL2 expected behavior 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 using basic boot with U-BOOT-SPL to load U-BOOT and the Kernel, use now the ST reference boot scheme replacing U-BOOT-SPL by TF-A as FSBL as explained in Boot chain overview.
  • Internal peripheral assignment at boot time
    • At boot time, 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 "2" is not specified in the U-Boot console.
More information is available in the How to assign an internal peripheral to a runtime context article.

4.2.2 STM32CubeMP1 (Cortex®-M4)[edit]

STM32CubeMP1-v1.4.0 version - NEW version versus STM32MP15-ecosystem-v2.1.0 release

Main NEW features of STM32CubeMP1-v1.4.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 do not exist in the STM32MP15 devices
    • RCC: LL - 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 FreeRTOSTM projects in case of successive debug session (HAL_Tick issue) 

4.3 STM32CubeProgrammer, Signing tool, Keygen[edit]

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

No NEW features compared to STM32CubeProgrammer-v2.6.0, already delivered within STM32MP15-ecosystem-v2.1.0 release

  • only corrective maintenance

Features already available in previous STM32CubeProgrammer-v2.6.0 version

  • STM32CubeProg installer includes STM32CubeProgrammer, Keygen and Signing tools
  • Flash programming of 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 Provisioning) UI.
Warning white.png Warning
OpenSTLinux generates flashlayout files only for USB programming mode.
For UART usage, please refer to Using_STM32Programmer_over_UART article to modify those files.

4.4 STM32CubeMX[edit]

STM32CubeMX-v6.2.1 is the new version delivered within STM32MP15-ecosystem-v3.0.0 release

Main NEW features of STM32CubeMX-v6.2.1, delivered within the STM32MP15-ecosystem-v3.0.0 release

  • Device tree (A7)
    • New database based on openstlinux-5.10-dunfell-mp1-21-03-31
    • FIP package support
  • STM32Cube
    • OpenAMP-2020.10 support

Features already available in previous version

  • Ubuntu 20.04 support
  • 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 manually in user section tags (from /* USER CODE BEGIN <node> */ to /* USER CODE END <node> */)

4.5 STM32CubeIDE[edit]

STM32CubeIDE-v1.6.1 is the new version delivered within STM32MP15-ecosystem-v3.0.0 release

Main NEW features of STM32CubeIDE v1.6.1, delivered within the STM32MP15-ecosystem-v3.0.0 release

  • Application and librairies userland Cortex-A7 support based on OpenSTLinux Developer Package and Yocto SDK.

Features already available in previous version

  • Ubuntu 20.04 support
  • A toolchain manager now available with v7 by default (STM32CubeIDE v1.4.0)
  • STM32CubeMP1 v1.2.0 Cortex-M4 support as with 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 compilation with native dt selected or external dt (for example, generated from CubeMX)
    • U-BOOT component project compilation with native dt selected or external dt (for example, generated from CubeMX)
    • OP-TEE component project compilation with native dt selected or external dt (for example, generated from CubeMX)
    • KERNEL component project compilation with native dt selected or external dt (for example, generated from CubeMX)
    • KERNEL component project debug
    • KERNEL component project artefacts update on running target
    • For more information refer to How to manage OpenSTLinux projects in STM32CubeIDE article

4.6 Miscellaneous[edit]

Detailed features are available in the release notes of the different components that constitute this delivery.

See sections STM32MPU Embedded Software distribution detailed release notes, Referenced tools release notes and Reference documents

5 Main restrictions[edit]

5.1 Embedded software[edit]

5.1.1 OpenSTLinux (Cortex®-A7)[edit]


5.1.2 STM32CubeMP1 (Cortex®-M4)[edit]

  • 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]

  • 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]

Warning white.png Warning
To generate a device tree for new boards (STM32MP157D-DK1, STM32MP157D-EV1), select the ST boards project STM32MP157F-DK2, STM32MP157F-EV1 respectively .

The generated device trees are functional but generate some probe errors on Crypto, Display DSI, Wifi, BT Linux drivers for STM32MP157D-DK1 board and on Crypto Linux driver for STM32MP157D-EV1.

Warning white.png Warning
When opening a previous project built with STM32CubeMX version older than V6.2.1, the migration does not take into account the user section part. This part needs to be updated manually according the Openstlinux-5.10-dunfell-mp1-21-03-31 manifest.

5.4 STM32CubeIDE[edit]

Warning white.png Warning
To use a project based on the new STM32MP157D-DK1, STM32MP157D-EV1 boards, select the ST STM32MP157F-DK2, STM32MP157F-EV1 boards projects respectively. The generated device trees by STM32CubeMX will work but can generate 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 the latest ST-LINK firmware for the best debug experience. Use the Help > ST-LINK Upgrade menu".

5.5 Miscellaneous[edit]

Restriction lists are available in the subcomponent release notes. They are available in the following chapters:

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]

STMicroelectronics regularly delivers updates through the following github® components: tf-a, u-boot, optee-os, Linux kernel.
They can be incorporated the Developer Package (refer to STM32MP1 Developer Package) or Distribution Package.

To update the Distribution Package, proceed as follows:

  1. Switch the Distribution package reference source code to github mode.
  2. Use the devtool modify <recipe name> command to access to the git source code repository used by the build process.
  3. In the freshly cloned source code, check out the required revision 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: git checkout -b WORK <github® commit SHA1>) into the local STM32MP1 Distribution Package environment. The github® links corresponding to each layers in hte following list:

6.1 v3.0.2[edit]

  • Update to Yocto 3.1.9 (2020-04.9-dunfell)
  • correct syntax changed for fit
Layer name github® commit SHA1 reference
meta-st-stm32mp 816fd629ab31700a5c08442b29f6906e95c31df0
oe-manifest a11d44f622f484a2e1053e7038c6da0ddf1d97da

6.2 v3.0.1[edit]

  • Minor fixes
  • Use a smaller picture as u-boot splash screen
  • Align fsbl name with storage name
  • Manage mutliple defconfig for same UBOOT_CONFIG label
  • Manage u-boot config via SOC_NAME
  • Added support of LTDC screen
  • Added support without GPU enabled for demo
Layer name github® commit SHA1 reference
meta-st-stm32mp c44b9052ae3b262d5e73212c696e79f0890a018b
meta-st-openstlinux 3d772ac02e01e1a76e6888fcabb2d5fa26f1c579

7 Reference documents[edit]

All the resources for the STM32MP1 Series are located in the Resources area of the STM32MP1 Series web page.

The resources below are referenced in some of the articles of this user guide.

Info white.png Information
The different STM32MP15 microprocessor part numbers available (with their corresponding internal peripherals, security options and packages) are described in the STM32MP15 microprocessor part numbers.

New.png means that the document (or its version) is new compared to what was delivered within the previous ecosystem release.

Reference Name Link Version
Application notes
AN4803 High-speed SI simulations using IBIS and board-level simulations using HyperLynx® SI on STM32 MCUs and MPUs AN4803.pdf v2.0
AN5027 Interfacing PDM digital microphones using STM32 MCUs and MPUs AN5027.pdf v2.0
AN5031 Getting started with STM32MP15 Series hardware development AN5031.pdf New.png v3.0
AN5036 Thermal management guidelines for STM32 applications AN5036.pdf v3.0
AN5109 STM32MP1 Series using low-power modes AN5109.pdf v4.0
AN5122 STM32MP1 Series DDR memory routing guidelines AN5122.pdf v3.0
AN5168 STM32MP1 series DDR configuration AN5168.pdf v1.0
AN5225 USB Type-C™ Power Delivery using STM32xx Series MCUs and STM32xxx Series MPUs AN5225.pdf v3.0
AN5253 Migration of microcontroller applications from STM32F4x9 lines to STM32MP151, STM32MP153 and STM32MP157 lines microprocessor AN5253.pdf v1.0
AN5256 STM32MP151, STM32MP153 and STM32MP157 discrete power supply hardware integration AN5256.pdf v2.0
AN5260 STM32MP151/153/157 MPU lines and STPMIC1B integration on a battery powered application AN5260.pdf New.png v2.0
AN5275 USB DFU/USART protocols used in STM32MP1 Series bootloaders AN5275.pdf v1.0
AN5284 STM32MP1 series system power consumption AN5284.pdf v1.0
AN5348 FDCAN peripheral on STM32 devices AN5348.pdf v1.0
AN5431 The STPMIC1 PCB layout guidlines AN5431.pdf v1.0
AN5438 STM32MP1 Series lifetime estimates AN5438.pdf v1.0
AN5510 Overview of the secure secret provisioning (SSP) on STM32MP1 Series AN5510.pdf v1.0
DS12505 STM32MP157C/F datasheet
DS12505.pdf New.png v5.0
DS12504 STM32MP157A/D datasheet
DS12504.pdf New.png v5.0
DS12503 STM32MP153C/F datasheet
DS12503.pdf New.png v5.0
DS12502 STM32MP153A/D datasheet
DS12502.pdf New.png v5.0
DS12501 STM32MP151C/F datasheet
DS12501.pdf New.png v5.0
DS12500 STM32MP151A/D datasheet
DS12500.pdf New.png v5.0
DS12792 STPMIC1 datasheet
DS12792.pdf New.png v7.0
Errata sheets
ES0438 STM32MP15xx device errata ES0438.pdf New.png v7.0
Reference manuals[1]
RM0436 STM32MP157 reference manual
(STM32MP157xxx advanced Arm®-based 32-bit MPUs)
RM0436.pdf New.png v6.0
RM0442 STM32MP153 reference manual
(STM32MP153xxx advanced Arm®-based 32-bit MPUs)
RM0442.pdf New.png v6.0
RM0441 STM32MP151 reference manual
(STM32MP151xxx advanced Arm®-based 32-bit MPUs)
RM0441.pdf New.png v6.0
Boards schematics
MB1262 schematics STM32MP157C-EV1 motherboard schematics
MB1262-C01 board schematic (Evaluation board)
MB1262-C01.pdf v1.0
MB1263 schematics STM32MP157F-EV1 daughterboard schematics
MB1263-C04 board schematic (Evaluation board)
MB1263-C04.pdf v4.0
MB1230 schematics DSI 720p LCD display daughterboard schematics
MB1230-C board schematic (Evaluation board)
MB1230-C.pdf v1.1
MB1379 schematics Camera daughterboard schematics
MB1379-A01 board schematic (Evaluation board)
MB1379-A01.pdf v1.0
MB1272 schematics STM32MP157x-DKx motherboard schematics
MB1272-DK2-C01 board schematic (Discovery kit)
MB1272-C01.pdf v1.0
MB1407 schematics STM32MP157x-DKx daughterboard schematics
MB1407-LCD-C01 board schematic (Discovery kit)
MB1407-C01.pdf v1.0
Boards user manuals
UM2535 STM32MP157x-EV1 evaluation board user manual UM2535.pdf v2.0
UM2534 STM32MP157x-DKx discovery board user manual UM2534.pdf v1.0
Tools user manuals
UM2563 STM32CubeIDE installation guide UM2563.pdf New.png v2.0
UM2579 Migration guide from System Workbench to STM32CubeIDE UM2579.pdf v1.0
UM2553 STM32CubeIDE quick start guide UM2553.pdf New.png v2.0
AN5360 Getting started with projects based on the STM32MP1 Series in STM32CubeIDE AN5360.pdf v1.0
UM2609 STM32CubeIDE user guide UM2609.pdf New.png v3.0
UM1718 STM32CubeMX user manual UM1718.pdf New.png v34.0
UM2237 STM32CubeProgrammer tool user manual UM2237.pdf New.png v15.0
UM2238 STM32 Trusted Package Creator tool user manual UM2238.pdf v7.0
UM2542 STM32 Series Key Generator tool user manual UM2542.pdf v1.0
UM2543 STM32 Series Signing tool user manual UM2543.pdf v1.0

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

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

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
Evaluation board
STM32MP15 Evaluation boards - getting started, including software download
Discovery kit
STM32MP15 Discovery kits - getting started, including software download

9 STM32MPU Embedded Software distribution detailed release notes[edit]

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 - v3.0.0 openstlinux-5.10-dunfell-mp1-21-03-31
STM32Cube MPU Package STM32CubeMP1 Package release note - v1.4.0 STM32CubeMP1-v1.4.0

10 Referenced tools release notes[edit]

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 v3.0.0 release Availability on targeted in April, 2021 Linux version Windows version Starter Package Developer Package Distribution Package
STM32CubeIDE STM32CubeIDE_release_note 1.6.1 1.6.1
STM32CubeMX STM32CubeMX release note 6.2.1 6.2.1
STM32CubeProg STM32CubeProgrammer release note 2.7.0 2.7.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]

  1. 1.01.1 The part numbers are specified in STM32MP15 microprocessor part numbers