Last edited 5 months ago

STM32 MPU ecosystem release note - v4.1.0

Applicable for STM32MP13x lines, STM32MP15x lines

This article describes the content of STM32MP1-ecosystem-v4.1.0 release of STM32MPU Embedded Software distribution and its associated ecosystem.

1. Delivery purpose and scope[edit source]

The STM32MP1-ecosystem-v4.1.0 release is dedicated to the STM32MP1 Series[1]. It is a major release, based on new community components version, listed in the embedded software chapter below.

This STM32MP1-ecosystem-v4.1.0 release aims at:

  • providing a full ecosystem for the STM32MP1 Series[1] devices
  • working efficiently with STM32 MPU boards, using one of the packages (Starter Package, Developer Package or Distribution Package) provided by STMicroelectronics: refer to Which Package better suits your needs for more information.

This ecosystem release consists of:

  • STM32 MPU Embedded Software distribution
  • STM32DDRFW-UTIL
  • STM32PROGFW-UTIL
  • STM32 referenced tools (more details are provided in the Referenced tools release notes chapter below):
  • STM32CubeIDE
  • STM32CubeMX
  • STM32CubeProgrammer
  • Keygen tool
  • Signing tool
  • hosted at the non-browsable URL http://packages.openstlinux.st.com
  • enabled by default in the Starter Package
  • providing 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)
  • STM32MP1 boards support
  • STM32MP15 Evaluation boards
  • STM32MP15 Discovery kits
  • STM32MP13 Discovery kits
More details are provided in the supported hardware chapter below.

2. Intended audience[edit source]

The targeted audience is STM32 MPU customers and partners.

3. Licensing[edit source]

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

4. Supported hardware[edit source]

This software delivery is compatible with the following boards:

STM32MP13 boards
Boards PCBs list Main features Ordering
STM32MP135x-DK.png
STM32MP135F-DK Discovery kit
  • MB1635 (motherboard)
  • MB1897 (camera module board)
  • STM32MP135FAF7[2] Rev.Y
    • Arm®-based Cortex®-A7 1 GHz
    • Secure boot and cryptography
    • 4-Gbit DDR3L, 16 bits, 533 MHz
  • ST PMIC STPMIC1
  • 4.3" TFT 480x272 pixels with LED backlight, and capacitive touch panel
  • 2-megapixel dual lane CSI-2 camera module with 15-pin FFC connector
  • Wi-Fi® 802.11b/g/n
  • Bluetooth® Low Energy 4.1

Discovery kit with STM32MP135F MPU


STM32MP15 boards
Boards PCBs list Main features Ordering
STM32MP157D-DK1.jpg
STM32MP157D-DK1 Discovery kit
  • MB1272C (motherboard)
  • STM32MP157DAC1[3] Rev.Z
    • Arm®-based dual Cortex®-A7 800 MHz
    • Basic security
    • 4-Gbit DDR3L, 16 bits, 533 MHz
  • ST PMIC STPMIC1APQR cut2.0

Discovery kit with STM32MP157D MPU

STM32MP157F-DK2.jpg
STM32MP157F-DK2 Discovery kit
  • MB1272C (motherboard)
  • MB1407B (daughterboard DSI display)
  • STM32MP157FAC1[3] Rev.Z
    • Arm®-based dual Cortex®-A7 800 MHz
    • Secure boot and cryptography
    • 4-Gbit DDR3L, 16 bits, 533 MHz
  • ST PMIC STPMIC1APQR cut2.0
  • 4" TFT 480×800 pixels with LED backlight, and capacitive touch panel
  • Wi-Fi® 802.11b/g/n
  • Bluetooth® Low Energy 4.1

Discovery kit with STM32MP157F MPU

STM32MP157D or F-EV1.jpg
STM32MP157D-EV1 Evaluation board
  • MB1262C (motherboard)
  • MB1263C (daughterboard)
  • MB1230C (daughterboard DSI display)
  • MB1379A (camera)
  • STM32MP157DAA1[3] Rev.Z
    • Arm®-based dual Cortex®-A7 800 MHz
    • Basic security
    • 2 × 4-Gbit DDR3L, 16 bits, 533 MHz
  • PMIC STPMIC1APQR cut2.0
  • 5.5" TFT 720×1280 pixels with LED backlight, and capacitive touch panel
  • 5-megapixel, 8-bit camera

Evaluation board with STM32MP157D MPU

STM32MP157D or F-EV1.jpg
STM32MP157F-EV1 Evaluation board
  • MB1262C (motherboard)
  • MB1263C (daughterboard)
  • MB1230C (daughterboard DSI display)
  • MB1379A (camera)
  • STM32MP157FAA1[3] Rev.Z
    • Arm®-based dual Cortex®-A7 800 MHz
    • Secure boot and cryptography
    • 2 × 4-Gbit DDR3L, 16 bits, 533 MHz
  • PMIC STPMIC1APQR cut2.0
  • 5.5" TFT 720×1280 pixels with LED backlight, and capacitive touch panel
  • 5-megapixel, 8-bit camera

Evaluation board with STM32MP157F MPU

STM32MP157A-DK1.jpg
STM32MP157A-DK1 Discovery kit
  • MB1272C (motherboard)
  • STM32MP157AAC3[3] Rev.B
    • Arm®-based dual Cortex®-A7 650 MHz
    • Basic security
    • 4-Gbit DDR3L, 16 bits, 533 MHz
  • ST PMIC STPMIC1APQR cut1.2

Out of production

STM32MP157C-DK2.jpg
STM32MP157C-DK2 Discovery kit
  • MB1272C (motherboard)
  • MB1407B (daughterboard DSI display)
  • STM32MP157CAC3[3] Rev.B
    • Arm®-based dual Cortex®-A7 650 MHz
    • Secure boot and cryptography
    • 4-Gbit DDR3L, 16 bits, 533 MHz
  • ST PMIC STPMIC1APQR cut1.2
  • 4" TFT 480×800 pixels with LED backlight, and capacitive touch panel
  • Wi-Fi® 802.11b/g/n
  • Bluetooth® Low Energy 4.1

Out of production

STM32MP157A or C-EV1.jpg
STM32MP157A-EV1 Evaluation board
  • MB1262C (motherboard)
  • MB1263C (daughterboard)
  • MB1230C (daughterboard DSI display)
  • MB1379A (camera)
  • STM32MP157AAA3[3] Rev.B
    • Arm®-based dual Cortex®-A7 650 MHz
    • Basic security
    • 2 × 4-Gbit DDR3L, 16 bits, 533 MHz
  • PMIC STPMIC1APQR cut1.2
  • 5.5" TFT 720×1280 pixels with LED backlight, and capacitive touch panel
  • 5-megapixel, 8-bit camera

Out of production

STM32MP157A or C-EV1.jpg
STM32MP157C-EV1 Evaluation board
  • MB1262C (motherboard)
  • MB1263C (daughterboard)
  • MB1230C (daughterboard DSI display)
  • MB1379A (camera)
  • STM32MP157CAA3[3] Rev.B
    • Arm®-based dual Cortex®-A7 650 MHz
    • Secure boot and cryptography
    • 2 × 4-Gbit DDR3L, 16 bits, 533 MHz
  • PMIC STPMIC1APQR cut1.2
  • 5.5" TFT 720×1280 pixels with LED backlight, and capacitive touch panel
  • 5-megapixel, 8-bit camera

Out of production

Info white.png Information
The STLINK embedded on the boards requires upgraded USB PC drivers: see this article

5. Release content[edit source]

5.1. Embedded software[edit source]

Embedded software STM32MP13x lines More info.png STM32MP15x lines More info.png
OpenSTLinux (Arm® Cortex®-A7) Yes Yes
STM32CubeMP1 (Arm® Cortex®-M4) No Yes
Buildroot (Arm® Cortex®-A7) Yes Yes
STM32DDRFW-UTIL (Arm® Cortex®-A7) Yes Yes
STM32PROGFW-UTIL (Arm® Cortex®-A7) Yes Yes

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

openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23 is the new version delivered with the STM32MP1-ecosystem-v4.1.0 release. This software set consists of the following components:

  • Build process
    • OpenEmbedded v4.0.4 (Kirkstone) - Updated
    • GCC version v11.3.0 - Updated
  • Embedded software components
    • Linux kernel v5.15-stm32mp-r2 (v5.15.67) - Updated
    • TF-A v2.6-stm32mp-r2 - Updated
    • U-Boot v2021.10-stm32mp-r2 - Updated
    • OP-TEE 3.16.0-stm32mp-r2 - Updated
    • OpenOCD version v0.11.0
  • Applicative components
    • Weston version v10.0.2 - Updated
    • Wayland version 1.20.0
    • GStreamer version v1.20.3 - Updated
    • GCnano version v6.4.9 - Updated
5.1.1.1. Main changes[edit source]

Linux® kernel

  • Real Time ready drivers (RT-Linux)
  • SPI slave support
  • ADC oversampling support
  • SPI master driver with dual-qspi mode support
  • DMA support for CRYP IP (Crypto performance improvement)
  • STM32MP13x lines More info.png:
    • New wake up sources
      • USB OTG wake up via STM32G0
      • Ethernet PHY Wakeup on LAN

TF-A

  • Firmware update on NAND devices
  • Improve FIP management on NAND devices
  • Add GPIO regulators driver
  • Use FCONF to manage the Chain of Trust

OP-TEE

  • ADC driver implementation
  • IRQ forwarding
  • Update regulator IO management
  • Hardware unique key (HUK) implementation:
  • using secured OTP through BSEC driver mapping on STM32MP15
  • through SAES on STM32MP13

OpenSTLinux layers

  • Rebase on Yocto LTS Release 4.0.4 (Kirkstone)
  • Add support of Firmware Update feature for NAND memory
Warning DB.png Important
More information about the changes are available through the detailed release note
Info white.png Information
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.
Info white.png Information
At boot time, STM32MP15x lines More info.png internal peripherals are assigned according to one of the following kernel configurations:
  • Configuration 1: all internal peripherals are assigned to the Arm® Cortex-A7 for Linux® drivers. The Arm® Cortex-M4 coprocessing TTY firmware is executed by default.
  • Configuration 2: some internal peripherals are assigned to the Arm® Cortex-M4 to execute the delivered examples (on EVAL or DISCO board) see (How to run Arm® 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.

5.1.1.2. Restrictions[edit source]
  • If Firmware Update is not enabled, and the flashlayout partition is not needed anymore, but the storage mapping is hardcoded in U-Boot; either the flashlayout keeps the partitions for Firmware Update feature or U-Boot needs to be updated.
Warning white.png Warning
On an Ubuntu 18.04 (with a host gcc version prior to 8.0), U-Boot cannot be built by using the STM32MP1_Developer_Package because the option : -fmacro-prefix-map , used in U-Boot is not supported by Ubuntu 18.04


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

STM32CubeMP1 Package v1.6.0 version - same version as the one delivered for the STM32MP1-ecosystem-v4.0.0 release.

  • Applicative components
    • OpenAMP v2021.10.0

5.1.3. Buildroot (Arm® Cortex®-A7)[edit source]

Buildroot distribution based on ST Linux BSP from openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23 is delivered with STM32MPU-ecosystem-v4.1.0 release with the tag openstlinux-5.15-buildroot-2022.02-mp1-v22.11.23.


Puzzle partner program.png Partner program
Bootlin.png Bootlin has developed specific support, demonstration configurations and documentation to help ST customers use Buildroot on STM32MP1 platforms.

See https://www.st.com/content/st_com/en/partner/partner-program/partnerpage/Bootlin.html


5.1.4. STM32DDRFW-UTIL (Arm® Cortex®-A7)[edit source]

STM32DDRFW-UTIL-v1.0.0 version - same version as the one delivered for the STM32MP1-ecosystem-v4.0.0 release.

STM32DDRFW-UTIL provides utilities for DDR.

Features available in this version

  • Functionalities are available in command-line and in STM32CubeMX DDR Tool
    • Read/Write DDR registers and DDR info
    • Launch DDR tests

5.1.5. STM32PROGFW-UTIL (Arm® Cortex®-A7)[edit source]

STM32PROGFW-UTIL-v1.0.2 version - Updated .

Warning white.png Warning
It is mandatory to use STM32PRGFW-UTIL version 1.0.2, instead of using version 1.0.0, as a major correction has been done in the new version to avoid potential device bricking.
Info white.png Information
This new version has some dependencies with STM32CubeIDE v1.11.0 and STM32CubeProgrammer v1.12.0, it is then highly recommended to update also those 2 other ST tools

STM32PROGFW-UTIL provides multiple applications to manage the one-time programmable (OTP) memories.


Functionalities are available through 4 applications:

  • STM32CubeProgrammer based application
  • Standalone STM32CubeIDE based application
  • 2 other applications for development purpose
    • UART configuration for the Standalone application
    • Run mode for STM32CubeProgrammer application
5.1.5.1. Main changes[edit source]
  • Documentation update
  • STM32MP15 Semihosting mode issue fixed
  • STM32MP15 USB reconnection issue fixed

Features already available in previous version

  • STM32CubeProgrammer based application (in Serial boot mode)
    • OTP v2 structure
    • STM32CubeProgrammer UART interface and USB DFU
  • OTP Console based application (in Dev boot mode)
    • OTP CLI implemented based on STM32CubeProgrammer OTP CLI with OTP v2 structure
    • UART and STM32CubeIDE Semihosting interface
5.1.5.2. Restrictions[edit source]

Semihosting mode is not functional on Windows PC.

5.2. Tools[edit source]

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

STM32CubeProgrammer v2.12.0 version - Updated .

5.2.1.1. Main changes[edit source]
  • SSP UI
    • Facilitate the SSP management for STM32MP devices
    • Extract the device product ID to select the correct HSM package
    • Get HSM (Hardware Security Module) information
    • Save HSM license as binary file
    • Launch the SSP flow at any running partition
  • SSP maturation improvements
  • Fix USB connection issue for MP15 STM32PRGFW-UTIL flashing

Features already available in previous STM32CubeProgrammer version

  • STM32CubeProg installer including STM32CubeProgrammer, Keygen and Signing tools.
  • Flash programming of SD Card, 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)
Warning white.png Warning
OpenSTLinux generates flashlayout.tsv files only for USB programming mode.
For UART usage, refer to Using_STM32Programmer_over_UART article to modify those files.
5.2.1.2. Restrictions[edit source]

Key generation is functional with STM32MP_KeyGen_CLI on Linux® only from Ubuntu 18.04 and upper versions.

5.2.2. STM32CubeMX[edit source]

STM32CubeMX-v6.7.0 version - Updated .

5.2.2.1. Main changes[edit source]
  • GUI: Add possibilities to download some documents of selected MCU/Board
  • Allow virtual HAL driver components to have conditions on peripheral HAL mode

Features already available in previous version

  • Ubuntu 20.04 support
  • I/O muxing and clock tree configuration
  • STM32MP1 contexts management (A7 non-secure, A7 secure, M4)
  • STM32CubeMP1 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> */)
5.2.2.2. Restrictions[edit source]

When opening a previous project built with an older STM32CubeMX version, the migration does not take into account the user section part. This part needs to be updated manually according to the openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23 manifest.

5.2.3. STM32CubeIDE[edit source]

STM32CubeIDE-v1.11.0 version - Updated .

5.2.3.1. Main changes[edit source]
  • Redirection of semihosting on tcp port with openOCD
  • Debug via weston user for executable using GTK library
  • Redirection of semihosting on tcp port with openOCD for STM32PRGFW-UTIL (outside CubeIDE, via Netcat external tool)

Features already available in previous version

  • Ubuntu 20.04 support
  • Application and libraries userland Arm® Cortex®-A7 support based on OpenSTLinux Developer Package and Yocto SDK.
  • Arm® Cortex®-M4 STM32CubeMP1 in "Production mode" and "Engineering mode"
  • Arm® Cortex®-M4 Firmware compilation, loading and debugging
  • PC Linux® with ethernet (recommended) or serial link
  • PC Windows with ethernet or ethernet over USB link
  • Arm® 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 artefacts update on running target
    • For more information refer to How to manage OpenSTLinux projects in STM32CubeIDE article
    • Installation of Yocto SDK
    • Installation of OpenSTLinux projects Sources

5.3. Miscellaneous[edit source]

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

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

6. Minor release updates[edit source]

A minor release of STM32PRGFW-UTIL (version 1.0.2) has been done a containing a major correction which corrected potential device bricking. More details can be found in STM32PRGFW-UTIL_release_note.


7. Reference documents[edit source]

7.1. STM32MP13 resources[edit source]

7.2. STM32MP15 resources[edit source]

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 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
STM32MP157x-EV1
Evaluation board
STM32MP15 Evaluation boards - getting started, including software download
STM32MP157x-DKx
Discovery kit
STM32MP15 Discovery kits - getting started, including software download
STM32MP135x-DK Discovery kit More info green.png STM32MP13 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 download the software and start with this release.

Firmware Release note Version
OpenSTLinux Distribution STM32 MPU OpenSTLinux release note - v4.1.0 openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23
Buildroot Distribution README.md openstlinux-5.15-buildroot-2022.02-mp1-v22.11.23
STM32Cube MPU Package STM32CubeMP1 Package release note - v1.6.0 STM32CubeMP1 Package v1.6.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 ?
Linux® version Windows version Starter Package Developer Package Distribution Package
STM32CubeIDE STM32CubeIDE_release_note 1.11.0 1.11.0
STM32CubeMX STM32CubeMX release note 6.7.0 6.7.0
STM32CubeProg STM32CubeProgrammer release note 2.12.0 2.12.0
Keygen KeyGen release note 2.12.0 2.12.0
Signing tool Signing tool release note 2.12.0 2.12.0
STM32DDRFW-UTIL STM32DDRFW-UTIL release note 1.0.0 1.0.0
STM32PRGFW-UTIL STM32PRGFW-UTIL release note 1.0.2 1.0.2

11. References[edit source]

  1. 1.0 1.1 The STM32MP1 Series includes the STM32MP13x lines More info.png and the STM32MP15x lines More info.png
  2. STM32MP13 microprocessor part numbers
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 STM32MP15 microprocessor part numbers