The objective of this article is to describe the content of STM32MP15-Ecosystem-v1.2.0 release of STM32MPU Embedded Software distributions and its associated ecosystem.
1. Delivery purpose and scope[edit source]
The new STM32MP15-Ecosystem-v1.2.0 release is dedicated to STM32MP15 microprocessors. It is an evolutive maintenance release that includes minor evolutions and corrections.
Like previous release, STM32MP15-Ecosystem-v1.2.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:
- two STM32MPU distributions
- the STM32MPU Embedded Software distribution
- the STM32MPU Embedded Software distribution for Android
- STM32 referenced tools
- STM32CubeIDE - new STM32 IDE targeted to replace SW4STM32 (STM32-CoPro-MPU Eclipse plugin)
- STM32CubeMX
- STM32CubeProgrammer
- Keygen tool
- Signing tool
- For more details refer to Referenced tools release notes chapter below.
- Documentation
- The present user guide in wiki format
- Documentation package (for more details refer to Reference documents chapter below)
- Supported STM32MP15 boards
- STM32MP15 Evaluation board ( for "STM32MPU Embedded Software distribution" and "STM32MPU Embedded Software distribution for Android")
- STM32MP15 Discovery kit (for STM32MPU Embedded Software distribution)
- More details ca nbe found in 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). The 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-v1.2.0 release supports the same boards as STM32MP15-Ecosystem-v1.0.0.
Boards | PCBs list | Content | Availability |
---|---|---|---|
STM32MP157C-EV1 board (board with Crypto) |
|
|
Jan'19 |
STM32MP157A-EV1 board (board without Crypto) |
|
|
Jan'19 |
STM32MP157C-DK2 board (board with Crypto) |
|
|
Jan'19 |
STM32MP157A-DK1 board (board without Crypto) |
|
|
Jan'19 |
4.2. Embedded software[edit source]
4.2.1. OpenSTLinux (Cortex®-A7)[edit source]
Openstlinux-20-02-19 is the new version delivered with STM32MP15-Ecosystem-v1.2.0 release. This software set consists of the following components:
- Build process
- OpenEmbedded Thud (v2.6.4)
- GCC version v8.2
- Software components
- Kernel version LTS v4.19.94 - NEW version versus STM32MP15-Ecosystem-v1.1.0 release
- TF-A version v2.0
- U-Boot version v2018.11
- OP-TEE version v3.3.0
- OpenOCD version v0.10.0
- Applicative components
- Weston version v5.0.0
- GStreamer version v1.14.4
- GCnano version v6.2.4
- Main NEW features coming with STM32MP15-Ecosystem-v1.2.0 release
- Added support for STM32MP15x Rev.Z
- Added support for new 800 MHz part numbers (D and F) - STM32MP15_microprocessor
- Operating points DT management wiki article - How_to_change_the_CPU_frequency
- Added support for DMA FIFO bypass (Direct mode)
- Added PINCTRL RSVD (Reserved) pin configuration to reserve pins for the coprocessor.
- Added support for I2C SMBus Alert
- Added support for UART DMA TX/RX
- Added STMIPI02 DCMI/CSI convertor + Omnivision 5MP
- Added STMFX (GPIO expander) driver backport from kernel mainline (STM32MP157x-EV1)
- Added STPMIC driver backport from kernel mainline
- Added SPI driver in U-boot
- Added RTC driver for UEFI in U-boot
- Migrated QUADSPI driver to spi-mem framework in U-boot
- Activated U-Boot ENV support in boot device (NOR/NAND/eMMC or SD card)
- 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 How to assign an internal peripheral to a runtime context article.
- Userland part
- NEW This release introduces the package repository service that enables the live installation of packages.
4.2.2. STM32CubeMP1 (Cortex®-M4)[edit source]
- Main NEW features coming with STM32CubeMP1-v1.2.0 version, delivered within STM32MP15-Ecosystem-v1.2.0 release:
- Added support for STM32MP15x Rev.Z
- Added support for new 800 MHz part numbers (D, F)
- Added Keil® Project examples on STM32MP157C-DK2
- Added IAR™ Project examples on STM32MP157C-DK2
- Added CubeIDE Project examples on STM32MP157C-DK2
- Added new PSRAM HAL driver
- Added RTC HAL + LL driver
- Added new FreeRTOS + OpenAMP example
- Features already available in previous version
- The STM32Cube HAL, STM32 abstraction layer embedded software ensuring maximized portability across the STM32 portfolio. HAL APIs are available for all peripherals.
- Low-layer APIs (LL) offering a fast light-weight expert-oriented layer that is closer to the hardware than the HAL. LL APIs are available only for a set of peripherals.
- A consistent set of middleware components such as FreeRTOS, OpenAMP.
- All embedded software utilities, delivered with a full set of examples.
4.2.3. STM32MP15 distribution for Android (Cortex®-A7) - NEW[edit source]
STM32MP15 distribution for Android™ v1.1.0 (st-android-10.0.0-2020-02-21 tag) is the version delivered within STM32MP15-Ecosystem-v1.2.0 release.
The objectives of this release are the following:
- Android™ 10.0.0 porting on OpenSTLinux BSP v1.2.0 (TF-A, U-Boot, OP-TEE, Linux kernel), provided as demonstrator
- Android™ certifications are not ensured
See STM32MP15 distribution for Android release note for more details.
4.3. STM32CubeProgrammer, Signing tool, Keygen[edit source]
STM32CubeProgrammer v2.4.0 is the version delivered within STM32MP15-Ecosystem-v1.2.0 release. This is an evolutive maintenance release for STM32CubeProgrammer.
- Main NEW features coming with STM32CubeProgrammer-v2.4.0 version, delivered within STM32MP15-Ecosystem-v1.2.0 release:
- Flashload speed improvement over USB on Windows PC
- Parallel programming on several targets
- 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-DK1, STM32MP157C-DK2 boards
- Private and public keys generation
- Images signature
- Flashlayout file format change
- STM32MP1 fuses management (with console interface only)
- PMIC NVM management (with console interface only)
4.4. STM32CubeMX[edit source]
STM32CubeMX-v5.6 is the version delivered within STM32MP15-Ecosystem-v1.2.0 release
- Main NEW features coming with STM32CubeMX-v5.6 version, delivered within STM32MP15-Ecosystem-v1.2.0 release
- Added support for new D and F part numbers
- Device tree (A7)
- Device tree compliance with Openstlinux-20-02-19
- DDR
- Added support for LPDDR on 18x18, 16x16 packages
- DDR tuning parameters saving: see the restriction below in this article
- STM32CubeMP1 (M4)
- Compliance with STM32CubeMP1 V1.2.0
- Added support for Engineering mode
- Added support for SMBus alert bit
- PCC : Power data update
- Added tutorial Videos
- Features already available in previous version
- I/O muxing and clock tree configuration
- STM32MP1 contexts management (A7 non-secure, A7 secure, M4)
- 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).
- ST32MP1Cube code generation
- Tuning of DDR settings
4.5. STM32CubeIDE[edit source]
STM32CubeIDE V1.3.0 is the version delivered within STM32MP15-Ecosystem-v1.2.0 release.
- Main NEW features coming with STM32CubeIDE V1.3.0 version, delivered within STM32MP15-Ecosystem-v1.2.0 release
- Added support for new D and F part numbers
- Features already available in previous version
- 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
4.6. Miscellaneous[edit source]
- Detailed features are available in the release notes of the different components of this delivery.
- See sections STM32MPU Embedded Software distribution detailed release notes, Referenced tools release notes and Reference documents
5. Main restrictions[edit source]
5.1. Embedded software[edit source]
5.1.1. OpenSTLinux (Cortex®-A7)[edit source]
- On STM32MP157C-DK2 boards, BT stack does not work any more after suspend / resume in Standby mode (function with Stop mode). This issue is linked to the Murata Wi-Fi/BT module that expects the 3.3 V supply to be kept, while this supply is switched off in STM32MP1 Standby mode. A similar workaround as for Wi-Fi can be used (GitHub patch). it consists in calling BT unbind and bind drivers before and after resume (modprobe -r hci_uart && modprobe hci_uart).
- For DDR initialization in TF-A, it is recommended to set up and enable all "boot-on" and "always-on" regulators at bootloader stage, after DDR power initialization. This is not yet implemented in V1.2.0 delivery. A patch is being prepared and will be available on GitHub.
5.1.2. STM32CubeMP1 (Cortex®-M4)[edit source]
- To avoid errors in OpenAMP when compiling in MDK-ARM IDE, disable the « Use MicroLIB » in « Target » tab.
- The HAL RTC is delivered within this release. However use it 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]
- Flashload through UART fails
- Key generation is not functional with STM32MP_KeyGen_CLI on Linux under Ubuntu 16.04 (functional with Ubuntu 18.04)
5.3. STM32CubeMX[edit source]
- MR0 register for LPDDR settings is not set by STM32CubeMX in the generated device tree. This register must be set manually at 0.
- DDR tuning parameters saving does not work when DDR Test Suite tool is used. Use U-Boot tag v2018.11-stm32mp-r4.1 on top of the ecosystem release v1.2.0 . This tag contains only one patch required by STM32CubeMX v5.6 ("ram: stm32mp1: display result for software read DQS gating").
- Warning: when opening a previous project built with STM32CubeMX version older than V5.6, the migration does not take into account the user section part. This part needs to be updated manually according the Openstlinux-20-02-19 manifest.
5.4. STM32CubeIDE[edit source]
- 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. Miscelleanous[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:
- Switch your Distribution package reference source code to github mode.
- Use the devtool modify <recipe name> command to have direct access to the source code git repository used by the build process.
- 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. v1.2.3[edit source]
6.2. v1.2.2[edit source]
6.3. v1.2.1[edit source]
7. Reference documents[edit source]
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.
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 | v1.0 |
AN5036 | Thermal management guidelines for STM32 applications | AN5036.pdf | v3.0 |
AN5109 | STM32MP1 Series using low-power modes | AN5109.pdf | v3.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 | v2.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 | v1.0 |
AN5260 | STM32MP151/153/157 MPU lines and STPMIC1B integration on a battery powered application | AN5260.pdf | v1.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.1 |
AN5438 | STM32MP1 Series lifetime estimates | AN5438.pdf | v1.0 |
Datasheets[1] | |||
DS12505 | STM32MP157C/F datasheet (secure) |
DS12505.pdf | v3.0 |
DS12504 | STM32MP157A/D datasheet (basic) |
DS12504.pdf | v3.0 |
DS12503 | STM32MP153C/F datasheet (secure) |
DS12503.pdf | v3.0 |
DS12502 | STM32MP153A/D datasheet (basic) |
DS12502.pdf | v3.0 |
DS12501 | STM32MP151C/F datasheet (secure) |
DS12501.pdf | v3.0 |
DS12500 | STM32MP151A/D datasheet (basic) |
DS12500.pdf | v3.0 |
DS12792 | STPMIC1 datasheet |
stpmic1.pdf | v3.0 |
Errata sheets | |||
ES0438 | STM32MP15xx device errata | ES0438.pdf | v4.0 |
Reference manuals[1] | |||
RM0436 | STM32MP157 reference manual (STM32MP157xxx advanced Arm®-based 32-bit MPUs) |
RM0436.pdf | v4.0 |
RM0442 | STM32MP153 reference manual (STM32MP153xxx advanced Arm®-based 32-bit MPUs) |
RM0442.pdf | v4.0 |
RM0441 | STM32MP151 reference manual (STM32MP151xxx advanced Arm®-based 32-bit MPUs) |
RM0441.pdf | v4.0 |
Boards schematics | |||
MB1262 schematics | STM32MP157C-EV1 motherboard schematics MB1262-C01 board schematic (Evaluation board) |
MB1262-C01.pdf | v1.0 |
MB1263 schematics | STM32MP157C-EV1 daughterboard schematics MB1263-C01 board schematic (Evaluation board) |
MB1263-C01.pdf | v1.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 | v1.0 |
UM2553 | STM32CubeIDE quick start guide | UM2553.pdf | v1.0 |
UM5360 | Getting started with projects based on the STM32MP1 Series in STM32CubeIDE | UM5360.pdf | v1.0 |
UM2609 | Description of the integrated development environment for STM32 products | UM2609.pdf | v1.0 |
UM2579 | Migration guide from System Workbench to STM32CubeIDE | UM2579.pdf | v1.0 |
UM1718 | STM32CubeMX user manual | UM1718.pdf | v31.0 |
UM2237 | STM32CubeProgrammer tool user manual | UM2237.pdf | v10.0 |
UM2238 | STM32 Trusted Package Creator tool user manual | UM2238.pdf | v5.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 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 an embedded software
Board part number | Jump to |
---|---|
STM32MP157C-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 - v1.2.0 | openstlinux-20-02-19 |
STM32Cube MPU Package | STM32CubeMP1 Package release note - v1.2.0 | STM32CubeMP1-v1.2.0 |
STM32 MPU Distribution for Android | STM32MP15 distribution for Android release note - v1.1.0 | st-android-10.0.0-2020-02-21 |
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.3.0 | 1.3.0 | ☐ | ☑ | ☐ |
STM32CubeMX | STM32CubeMX release note | from 5.6 | from 5.6 | ☐ | ☑ | ☑ |
STM32CubeProg | STM32CubeProgrammer release note | 2.4.0 | 2.4.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]
- ↑ 1.0 1.1 The part numbers are specified in STM32MP15 microprocessor part numbers