STM32 MPU ecosystem release note - v4.0.0

Revision as of 09:05, 18 July 2022 by Romuald Jeanne (talk | contribs) (Minor release updates)

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

1 Delivery purpose and scope[edit]

The STM32MP1-ecosystem-v4.0.0 release is dedicated to the STM32MP1 Series[1]. It is a major release based on new community components version: Yocto LTS Kirkstone 4.0, Kernel 5.15 LTS, U-Boot v2021.10, TF-A v2.6, OP-TEE v3.16 and OpenAMP 2021.10.

This STM32MP1-ecosystem-v4.0.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:

  • STM32CubeIDE
  • STM32CubeMX
  • STM32CubeProgrammer
  • Keygen tool
  • Signing tool
  • hosted at the non-browsable URL
  • 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 Board chapter below.

2 Intended audience[edit]

The targeted audience is STM32 MPU customers and partners.

3 Licensing[edit]

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 Main features / main highlights[edit]

4.1 Boards[edit]

This STM32MP1-ecosystem-v4.0.0 release supports the same boards as previous STM32MP15-ecosystem-v3.1.0 ones, plus STM32MP13 upcoming one.

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 2019
STM32MP157A-EV1 board (board without crypto)
  • MB1263C (daughter)
  • MB1262C (mother)
  • MB1230C (display)
  • MB1379A (camera)
  • STM32MP1 STM32MP157AAA3 Rev.B
  • External oscillator
Jan 2019
STM32MP157F-EV1 board (board with crypto ; CPU at 800 MHz)
  • MB1263C (daughter)
  • MB1262C (mother)
  • MB1230C (display)
  • MB1379A (camera)
  • STM32MP1 STM32MP157FAA3 Rev.Z
  • External oscillator
Jun 2020
STM32MP157D-EV1 board (board without crypto ; CPU at 800MHz)
  • MB1263C (daughter)
  • MB1262C (mother)
  • MB1230C (display)
  • MB1379A (camera)
  • STM32MP1 STM32MP157DAA3 Rev.Z
  • External oscillator
Nov 2020
STM32MP157C-DK2 board (board with crypto)
  • MB1272C (mother)
  • MB1407B (display)
  • STM32MP1 STM32MP157CAC3 Rev.B
  • External oscillator
Jan 2019
STM32MP157F-DK2 board (board with Crypto ; CPU at 800MHz)
  • MB1272C (mother)
  • MB1407B (display)
  • STM32MP1 STM32MP157FAC3 Rev.Z
  • External oscillator
Nov 2020
STM32MP157A-DK1 board (board without Crypto)
  • MB1272C (Mother)
  • STM32MP1 STM32MP157AAC3 Rev.B
  • External oscillator
Jan 2019
STM32MP157D-DK1 board (board without Crypto ; CPU at 800MHz)
  • MB1272C (mother)
  • STM32MP1 STM32MP157DAC3 Rev.Z
  • External oscillator
Nov 2020

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.15-yocto-kirkstone-mp1-v22.06.15 is the new version delivered with the STM32MP1-ecosystem-v4.0.0 release. This software set consists of the following components:

  • Build process
    • OpenEmbedded LTS Kirkstone(v4.0.1) - NEW
    • GCC version v11.2 - NEW
  • Software components
    • Kernel version LTS v5.15.24 - NEW
    • TF-A version v2.6 - NEW
    • U-Boot version v2021.10 - NEW
    • OP-TEE version v3.16.0 - NEW
    • OpenOCD version v0.11.0
  • Applicative components
    • Weston version v10.0.0 - NEW
    • Wayland version 1.20.0 - NEW
    • GStreamer version v1.20.1 - NEW
    • GCnano version v6.4.7 - NEW
  • Main NEW features of the STM32MP1-ecosystem-v4.0.0 release
    • OP-TEE by default (updated driver model based on DT)
    • New OTP structure exchange between U-Boot / cube Programmer
    • ADC calibration in U-Boot
    • TF-A BL2: Firmware Update (FWU) support
    • STM32MP15x lines More info.png updates
      • STM32MP15-EVAL boards: LCD Rocktech RK055MHD042A0-CTG support
    • STM32MP13x lines More info.png support

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 Cortex-A7 for Linux drivers. The Cortex-M4 coprocessing TTY firmware is executed by default.
  • Configuration 2: some internal peripherals are assigned to the Cortex-M4 to execute the delivered examples (on EVAL or DISCO board) 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 Buildroot (Cortex®-A7)[edit]

Under construction.png Delivery for this build system is being prepared

4.2.3 STM32DDRFW-UTIL (Cortex®-A7)[edit]

STM32DDRFW-UTIL-v1.0.0 version - NEW utilities firmware STM32DDRFW-UTIL provides utilities for DDR

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

4.2.4 STM32PROGFW-UTIL (Cortex®-A7)[edit]

STM32PROGFW-UTIL-v1.0.0 version - NEW utilities firmware 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
  • Features
    • 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

4.2.5 STM32CubeMP1 (Cortex®-M4)[edit]

STM32CubeMP1-v1.6.0 version - NEW version versus STM32MP1-ecosystem-v4.0.0 release

Main NEW features of STM32CubeMP1-v1.6.0, delivered within STM32MP1-ecosystem-v4.0.0 release

  • General updates to fix known defects and enhancements implementation for HAL, LL, CMSIS, BSP
    • HAL Generic
      • Implement HAL_GetUIDw{0,1,2} (New API)
      • Add ALIGN_32BYTES definitions
    • SPI
      • Alignment with other STM32 families (No API Change)
    • TIM
      • LL : ONEPULSEMODE defines description are inverted
      • LL : COUNTERMODE defines are inverted for TIM_CR1_CMS
    • EXTI (No API change):
      • Fix some MISRA warnings
      • Optimize Get Config API
    • SMBUS:
      • Alignment with other STM32 families
      • SMBUS Extended files support (API Change)
  • CortexM - CMSIS:
    • New version V5.6.0
    • New version V2021.10
    • Examples:
      • Implement new examples for STM32MP15 EVAL Board :
        • Implement ADC_MultiChannelSingleConversion example,
        • Implement ADC AnalogWatchdog example,
        • Implement ADC Oversampler example,
        • Implement LPTIM_PWM_LSE example,
        • Implement TIM_OnePulse example,
        • Implement TIM_PWMOutput example,
        • Implement TIM_Synchronization example,
        • Implement TIM_TimeBase example,
      • Update LPTIM_PulseCounter example (add low power mode)
    • Applications:
      • Update project relying on OpenAMP 2021.10
      • OpenAMP_TTY_echo_wakeup example:
        • Implement the firmware shutdown to force the stop of ADC and DMA
      • Fix include declaration with gcc++ in openamp
      • Implement OpenAMP_for_signed_fw project

4.3 STM32CubeProgrammer, Signing tool, Keygen[edit]

STM32CubeProgrammer v2.11.0 is the new version compatible within the STM32MP1-ecosystem-v4.0.0 release.

Main NEW features of STM32CubeProgrammer-v2.11.0, delivered with STM32MP1-ecosystem-v4.0.0 release

  • Download command verifies all binaries are available before launching the programming.
  • Same version (v2.11) for signing Tool, Key generator, Trusted Package Creator and STM32CubeProgrammer.
  • Support PKCS#11 in Signing tool.

Features already available in previous STM32CubeProgrammer-v2.9.0 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) UI..
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.

4.4 STM32CubeMX[edit]

STM32CubeMX-v6.6.0 is the new version compatible with STM32MP1-ecosystem-v4.0.0 release.

Main NEW features of STM32CubeMX-v6.6.0, delivered with the STM32MP1-ecosystem-v4.0.0 release

  • Device tree (Cortex-A7)
    • New database based on openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15
  • STM32CubeMP1 1.6.0 (Cortex-M4)
    • OpenAMP-2021.10 support

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> */)

New features

  • add search feature to ease selectors filters findings
  • LL header file, of the selected IPS, must be copied in the generated project
  • Remove U-Boot SPL generation
  • OpenSTLinux : consider dropping SP_MIN and focus on OP-TEE
  • Device Tree Generation - remove secure-status in TF-A

4.5 STM32CubeIDE[edit]

STM32CubeIDE-v1.10.0 is the new version compatible with STM32MP1-ecosystem-v4.0.0 release

Main NEW features of STM32CubeIDE v1.10.0, delivered with the STM32MP1-ecosystem-v4.0.0 release

  • Bootloaders target update support (TF-A, U-boot, OP-TEE)

Features already available in previous version

  • Ubuntu 20.04 support
  • Application and libraries userland Cortex-A7 support based on OpenSTLinux Developer Package and Yocto SDK.
  • 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 artefacts update on running target
    • For more information refer to How to manage OpenSTLinux projects in STM32CubeIDE article

New features

  • Installation of Yocto SDK
  • Installation of OpenSTLinux projects Sources

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 Buildroot (Cortex®-A7)[edit]


5.1.3 STM32CubeMP1 (Cortex®-M4)[edit]

  • OpenAMP compilation issue with MDK-ARM when the code is generated through the STM32CubeMx :
    To avoid compilation errors in OpenAMP when compiling in MDK-ARM IDE, disable the « Use MicroLIB » in « Target » tab.

5.2 STM32CubeProgrammer, Signing tool and Keygen[edit]

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

5.3 STM32CubeMX[edit]

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.06.15 manifest.

5.4 STM32CubeIDE[edit]

5.5 Miscellaneous[edit]

Restriction lists are available in the sub-components release notes, which are available in the following chapters:

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

6 Minor release updates[edit]

STMicroelectronics regularly delivers corrections through github® components which are U-Boot, OP-TEE, TF-A, Linux kernel.
The corrections can be incorporated into the Developer Package (refer to STM32MP1 Developer Package) or Distribution Package (see below).

Two possibilities exist to update a Distribution Package:

  • Update your existing Distribution Package:
Switch your Distribution Package to # github® mode .
  1. Use the devtool modify <recipe name> command to set up an environment. It fetches and unpacks the source code.
  2. In the extracted source code, use a git command such as git checkout -b WORK <github® TAG> to point to a new revision of the component.
More rarely STMicroelectronics also delivers 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. See below the github® links of the quoted layers :
  • Get a new Distribution Package:
Refer to Installing_the_OpenSTLinux_distribution page for install instructions, and use the repo command given for the minor version below, if it exists.

6.1 v4.0.2[edit]

  • Update to Yocto 4.0.2
  • BSP layers update:
Layer name github® tag reference to get list of changes
meta-st-stm32mp tag/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27
meta-st-openstlinux tag/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27
  • OpenSTLinux layers update:
Layer name github® tag reference to get list of changes
meta-st-stm32mp-addons tag/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27
meta-st-scripts tag/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27
  • New manifest tag available to get the release: openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27
repo init -u -b refs/tags/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27
repo sync

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.

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

7.1 STM32 MPU's family documentation[edit]

7.2 STM32MP1 common resources[edit]

STM32 MPU resources - v4.0.0

7.3 STM32MP13 resources[edit]

7.4 STM32MP15 resources[edit]

STM32MP15 resources - v4.0.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
Discovery kit
STM32MP13 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 STM32 MPU OpenSTLinux release note - v4.0.0 openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15
Buildroot Distribution
Under construction.png Coming soon
Previous version compatible with STM32MPU ecosystem V3 flow can be found here STM32MP15 Buildroot release note - v3.1.0
STM32Cube MPU Package STM32CubeMP1 Package release note - v1.6.0 STM32CubeMP1-v1.6.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 ?
Linux version Windows version Starter Package Developer Package Distribution Package
STM32CubeIDE STM32CubeIDE_release_note 1.10.0 1.10.0
STM32CubeMX STM32CubeMX release note 6.6.0 6.6.0
STM32CubeProg STM32CubeProgrammer release note 2.11.0 2.11.0
Keygen KeyGen release note 2.11.0 2.11.0
Signing tool Signing tool release note 2.11.0 2.11.0
STM32DDRFW-UTIL STM32DDRFW-UTIL release note 1.0.0 1.0.0
STM32PROGFW-UTIL 1.0.0 1.0.0

11 References[edit]

  1. 1.01.1 The STM32MP1 Series includes the STM32MP13x lines More info.png and the STM32MP15x lines More info.png