STM32MP15 OpenSTLinux release note - v3.1.0

Revision as of 11:27, 17 November 2021 by Registered User

This article describes the content of OpenSTLinux distribution software release version openstlinux-5.10-dunfell-mp1-21-11-17, which is part of STM32MP15 ecosystem release note - v3.1.0.

1. Intended audience[edit source]

The targeted audience is STM32MP15 customers or partners.

2. Delivery scope and purpose[edit source]

The OpenSTLinux distribution is a Linux® distribution based on the OpenEmbedded build Framework. It runs on the Arm® Cortex®-A7 processors, and is a fundamental part of the STM32MPU Embedded Software distribution.

This delivery of OpenSTLinux distribution is part of STM32MP15-Ecosystem-v3.1.0 (see the STM32MP15 ecosystem release note - v3.1.0).

3. Licensing[edit source]

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

All of the packages use the same source components. All components and their respective licenses are listed here.


4. Supported hardware[edit source]

This software delivery is compatible with the following boards:

  • STM32MP157A-EV1 More info green.png, STM32MP157D-EV1 More info green.png, STM32MP157C-EV1 More info green.png and STM32MP157F-EV1 More info green.png Evaluation boards.
  • STM32MP157A-DK1 More info green.png, STM32MP157D-DK1 More info green.png, STM32MP157C-DK2 More info green.png and STM32MP157F-DK2 More info green.png Discovery kits.

5. Delivered features[edit source]

5.1. Main software components[edit source]

  • Linux kernel v5.10-stm32mp-r2 (v5.10.61)
  • TF-A v2.4-stm32mp-r2
  • U-Boot v2020.10-stm32mp-r2
  • OP-TEE v3.12.0-stm32mp-r2
  • STM32CubeMP1 Package v1.5.0
  • OpenEmbedded v3.1.11 (Dunfell)
  • Weston version v8.0.0
  • Wayland version 1.18.0
  • GStreamer version v1.16.3
  • GCC version v9.3
  • OpenOCD version v0.11.0
  • GCnano version v6.4.3

5.2. Detailed features[edit source]

5.2.1. OpenSTLinux layers part[edit source]

  • Rebase on Yocto 3.1.11 (Dunfell)
  • Rename of machine:
  • stm32mp1-eval becomes stm32mp15-eval
  • stm32mp1-disco becomes stm32mp15-disco
  • Rework "wic" configuration file for FIPsupport
  • Rework of FIP support via class
  • MACHINE: support of NOR storage


As a reminder, since OpenSTLinux v3.0.0, FIP configuration is supported by default (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' enables the FIP binary support : this is the default and ST recommended configuration for STM32MP1 machine due to 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"

5.2.2. Linux® kernel part[edit source]

  • Rebase on Linux® kernel v5.10.61
  • STMP32MP1
  • COPRO: firmware Authentication by OP-TEE: dynamic detection of the remoteproc TA
  • ADC: Support ADC2 with internal channels (VSENSE, VDDCORE, VBAT/4)
  • BSEC: NVMEM (BSEC): add remove and suspend/resume routines
  • DCMI: stm32-dcmi: memory type & dma access fixes
  • DMA2: [DMA] Add pause/resume feature
  • ETH: Enable ETH PTP clock tree by default - Linux
  • LTDC: Add CRTC background color property (v2)
  • LTDC: Add layer constant alpha support
  • LTDC: Attach immutable zpos property to planes
  • Panel Bridge: Disco 480p dsi panel from 50 to 60fps
  • MTD_fwk/QSPI: backport automatic polling mode stop feature in SNAND/SNOR frameworks
  • QSPI: throughput and power management improvements
  • UART: Linux KGDB support
  • UART: Add support of early console
  • USB_OTG: OTG forced in peripheral in kernel when no VBUS/ID on PCB
  • USB_PHYC: get vbus-supply regulator from connector
  • Minor fixes

5.2.3. U-boot part[edit source]

  • Based on official U-Boot v2020.10
  • STMP32MP1
  • Activate read valid training (RVTRN) for LPDDR2/3
  • Avoid speculative access to OP-TEE memory, respect no-map region
  • stm32prog command: solve issue for re-enumeration, correct PMIC support
  • Update GetID answer, correct help message and add initrd support
  • stm32key command: update read add close sub-command, add OTP lock support
  • i2c: add support of analog and digital filter with device tree
  • Alignment with v5.10-stm32mp-r2 Linux kernel device tree
  • Handle gpio reset in ethernet driver by using generic ethernet phy
  • Add pull for gpio button P13 and PA14
  • Update usbphyc support: support the phy tuning and connector in DT
  • Add support of ADC calibration
  • Add SYSCFG and the missing SPI clocks support
  • Activate command rng
  • Add support of overlay in syslinux.cfg
  • Add simple frame buffer in kernel device tree
  • Other minor fixes

5.2.4. TF-A part[edit source]

  • Based on official TF-A 2.4
  • STM32MP1:
  • DDR: DQS Tuning: Add RVTRN (for LPDDR2 / LPDDR3)
  • Enable ETH PTP clock tree by default on STM32MP15 boards
  • Manage backup registers security at BL32 level
  • Fix the shutdown via PMIC switch off
  • Improve boot time in FIP mode using mmc interfaces
  • Fix RTC clock rate
  • Display bootrom authentication trace
  • Minor Fixes

5.2.5. OP-TEE part[edit source]

  • Based on official OP_TEE OS 3.12.0
  • STMP32MP1
  • Add TAMP driver support
  • Enable ETH PTP clock tree by default on STM32MP15 boards
  • Backport interrupt management from master
  • Fix RTC clock rate issues
  • Fix compilation errors with GCC-11
  • Minor fixes

6. Recommendations for use[edit source]

6.1. Safe use[edit source]

  • Flash programming and boot from all supported Flash devices: SDCard, eMMC, ONFI NAND and NOR Flash memories
  • Develop Linux® applications, libraries, kernel modules based on OpenSTLinux delivery
  • Develop coprocessor Cube applications based on STM32CubeMP1 delivery
  • Develop boards based on STM32MP15
  • Prototype applications based on ST boards

6.2. Non-recommended use[edit source]

  • None

7. Main restrictions list[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.

8. Minor release updates[edit source]

STMicroelectronics regularly delivers corrections through github® components which are u-boot, optee-os, tf-a, Linux kernel.
The corrections can be incorporated into the Developer Package (please refer to STM32MP1 Developer Package) or Distribution Package (see below).

Two possibilities 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 will fetch and unpack the source code.
  2. In the extracted source code, use a git command such as git checkout -b WORK <github® TAG> to point on new revision of 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. Please find below the github® links of the quoted layers :
  • Get a new Distribution Package:
Please refer to Installing_the_OpenSTLinux_distribution page for install instructions, and use the repo command given for the minor version below if exist.

9. How to get started with openstlinux-5.10-dunfell-mp1-21-11-17[edit source]

Refer to How to download the software and start with this release?

10. Associated tools[edit source]

Refer to the Referenced tools release notes .

11. Detailed delivery content[edit source]

11.1. Detailed description of STMicroelectronics layers[edit source]

OpenSTLinux distribution is based on the build framework OpenEmbedded.
OpenEmbedded build framework engine is named OE-Core.
A layer is a collection of recipes and/or configurations applied on top of OE-Core.

Typically, each layer is organized around a specific theme, such as adding recipes for building web browser software.

The implemented layers are listed below, together with the list of recipes contained in each layer and the related information.

11.1.1. meta-st-stm32mp[edit source]

Name of layer Description
meta-st-stm32mp BSP layer for stm32mp
Recipe Name Path of recipe License Description
alsa-state-stm32mp1 meta-st/meta-st-stm32mp/recipes-bsp/alsa/alsa-state-stm32mp1.bb MIT Alsa scenario files to enable alsa state restoration
gcnano-driver-stm32mp meta-st/meta-st-stm32mp/recipes-bsp/drivers/gcnano-driver-stm32mp_6.4.3.bb GPLv1 & MIT GCNano kernel drivers
tf-a-stm32mp meta-st/meta-st-stm32mp/recipes-bsp/trusted-firmware-a/tf-a-stm32mp_2.4.bb BSD-3-Clause Trusted Firmware-A for STM32MP1
u-boot-stm32mp-extlinux meta-st/meta-st-stm32mp/recipes-bsp/u-boot/u-boot-stm32mp-extlinux.bb MIT Generate 'extlinux.conf' file for U-boot
u-boot-stm32mp-splash meta-st/meta-st-stm32mp/recipes-bsp/u-boot/u-boot-stm32mp-splash_2018.11.bb Proprietary Universal Boot Loader splash screen for stm32mp embedded devices
u-boot-stm32mp meta-st/meta-st-stm32mp/recipes-bsp/u-boot/u-boot-stm32mp_2020.10.bb GPLv2+ Universal Boot Loader for embedded devices for stm32mp (trusted)
wifi-suspend meta-st/meta-st-stm32mp/recipes-connectivity/wifi/wifi-suspend.bb MIT Systemd service to suspend/resume correctly the wifi
gcc-arm-none-eabi-native meta-st/meta-st-stm32mp/recipes-devtools/gcc-arm-none-eabi/gcc-arm-none-eabi-native_9.bb GPL-3.0-with-GCC-exception & GPLv3 Baremetal GCC for ARM
nativesdk-gcc-arm-none-eabi meta-st/meta-st-stm32mp/recipes-devtools/gcc-arm-none-eabi/nativesdk-gcc-arm-none-eabi_9.bb GPL-3.0-with-GCC-exception & GPLv3 Baremetal GCC for ARM
openocd-stm32mp meta-st/meta-st-stm32mp/recipes-devtools/openocd/openocd-stm32mp_0.11.0.bb GPLv2 Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing
sdcard-raw-tools meta-st/meta-st-stm32mp/recipes-devtools/sdcard-raw-tools/sdcard-raw-tools.bb MIT Script for creating raw SDCARD image ready to be flashed
linux-examples-stm32mp1 meta-st/meta-st-stm32mp/recipes-extended/linux-examples/linux-examples-stm32mp1.bb Proprietary ST STM32MP1 projects for Linux examples
m4fwcoredump meta-st/meta-st-stm32mp/recipes-extended/m4coredump/m4fwcoredump.bb MIT Script to manage coredump of Arm® Cortex®-M4
m4projects-stm32mp1 meta-st/meta-st-stm32mp/recipes-extended/m4projects/m4projects-stm32mp1.bb Proprietary ST STM32MP1 Examples for CM4
gcnano-userland-multi-binary-debug-stm32mp meta-st/meta-st-stm32mp/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-debug-stm32mp.bb Proprietary [DEBUG] Vivante libraries OpenGL ES, OpenVG and EGL (multi backend)
gcnano-userland-multi-binary-stm32mp meta-st/meta-st-stm32mp/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-stm32mp.bb Proprietary Vivante libraries OpenGL ES, OpenVG and EGL (multi backend)
linux-firmware-bluetooth-bcm4343 meta-st/meta-st-stm32mp/recipes-kernel/linux-firmware/linux-firmware-bluetooth-bcm4343.bb Firmware-cypress-bcm4343 Bluetooth firrmware for BCM4343
linux-stm32mp meta-st/meta-st-stm32mp/recipes-kernel/linux/linux-stm32mp_5.10.bb GPLv2 Linux STM32MP Kernel
optee-os-stm32mp meta-st/meta-st-stm32mp/recipes-security/optee/optee-os-stm32mp_3.12.0.bb BSD OPTEE OS for stm32mp
st-image-bootfs meta-st/meta-st-stm32mp/recipes-st/images/st-image-bootfs.bb MIT STM32MP bootfs Image
st-image-userfs meta-st/meta-st-stm32mp/recipes-st/images/st-image-userfs.bb MIT STM32MP userfs Image
st-image-vendorfs meta-st/meta-st-stm32mp/recipes-st/images/st-image-vendorfs.bb MIT STM32MP vendorfs Image
hidapi-stm32mp meta-st/meta-st-stm32mp/recipes-support/hidapi/hidapi-stm32mp_0.8.0-rc1.bb BSD-3-Clause GPLv3 Multi-platform library to interface with USB and Bluetooth HID-Class devices
libopencsd meta-st/meta-st-stm32mp/recipes-support/libopencsd/libopencsd_0.10.0.bb BSD-3-Clause SUMMARY=CoreSight Trace Decode library
Addons on recipes: configuration, patch, ..
Recipe Name Path of recipe
alsa-lib meta-st/meta-st-stm32mp/recipes-bsp/alsa/alsa-lib_%.bbappend
base-files meta-st/meta-st-stm32mp/recipes-core/base-files/base-files_%.bbappend
busybox meta-st/meta-st-stm32mp/recipes-core/busybox/busybox_%.bbappend
systemd-conf meta-st/meta-st-stm32mp/recipes-core/systemd/systemd-conf.bbappend
bison meta-st/meta-st-stm32mp/recipes-devtools/bison/bison_%.bbappend
gdb-cross-canadian meta-st/meta-st-stm32mp/recipes-devtools/gdb/gdb-cross-canadian_%.bbappend
gdb-cross meta-st/meta-st-stm32mp/recipes-devtools/gdb/gdb-cross_%.bbappend
libdrm meta-st/meta-st-stm32mp/recipes-graphics/drm/libdrm_%.bbappend
weston-init meta-st/meta-st-stm32mp/recipes-graphics/wayland/weston-init.bbappend
weston meta-st/meta-st-stm32mp/recipes-graphics/wayland/weston_%.bbappend
linux-firmware meta-st/meta-st-stm32mp/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
pulseaudio meta-st/meta-st-stm32mp/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend

11.1.2. meta-st-stm32mp-addons[edit source]

Name of layer Description
meta-st-stm32mp-addons BSP addons layer for stm32mp
Addons on recipes: configuration, patch, ..
Recipe Name Path of recipe
alsa-state-stm32mp1 meta-st/meta-st-stm32mp-addons/recipes-bsp/alsa/alsa-state-stm32mp1.bbappend
tf-a-stm32mp meta-st/meta-st-stm32mp-addons/recipes-bsp/trusted-firmware-a/tf-a-stm32mp_%.bbappend
u-boot-stm32mp meta-st/meta-st-stm32mp-addons/recipes-bsp/u-boot/u-boot-stm32mp_%.bbappend
linux-stm32mp meta-st/meta-st-stm32mp-addons/recipes-kernel/linux/linux-stm32mp_%.bbappend
m4projects-stm32mp1 meta-st/meta-st-stm32mp-addons/recipes-extended/m4projects/m4projects-stm32mp1.bbappend

11.1.3. meta-st-openstlinux[edit source]

Name of layer Description
meta-st-openstlinux OpenSTLinux layer - framework/image settings
Recipe Name Path of recipe License Description
resize-helper meta-st/meta-st-openstlinux/recipes-bsp/tools/resize-helper.bb GPLv2+ Tools for resizing the file system
usbotg-gadget-config meta-st/meta-st-openstlinux/recipes-bsp/tools/usbotg-gadget-config.bb MIT The goal is to enable USB Ethernet & MSC gadget
psplash-drm meta-st/meta-st-openstlinux/recipes-core/psplash/psplash-drm.bb MIT Basic splash screen displaying a picture on DRM/KMS
systemd-mount-partitions meta-st/meta-st-openstlinux/recipes-core/systemd/systemd-mount-partitions.bb MIT Mount partitions
systemd-networkd-configuration meta-st/meta-st-openstlinux/recipes-core/systemd/systemd-networkd-configuration.bb MIT Basic networkd configuration
infos-openstlinux meta-st/meta-st-openstlinux/recipes-extended/infos/infos-openstlinux.bb GPLv2+ Information for support
openstlinux-qt-eglfs meta-st/meta-st-openstlinux/recipes-qt/qt5/openstlinux-qt-eglfs.bb MIT Add script and material to help with eglfs qt configuration
ai-hand-char-reco-launcher meta-st/meta-st-openstlinux/recipes-samples/ai-nn-application/ai-hand-char-reco-launcher.bb GPLv2 & BSD-3-Clause Hand writing character recognition launcher based on HCR Neural Network
demo-launcher meta-st/meta-st-openstlinux/recipes-samples/demo/demo-launcher.bb Proprietary Python script which launch several use-cases
sensors-iks01a2 meta-st/meta-st-openstlinux/recipes-samples/demo/sensors-iks01a2.bb Proprietary Python script which monitors the temperature measured by the Nucleo extension board iks01a2a on-board sensor
demo-hotspot-wifi meta-st/meta-st-openstlinux/recipes-samples/hotspot-wifi/demo-hotspot-wifi.bb MIT Shell script to enable/disable hotsopt wifi configuration
st-example-image-qt meta-st/meta-st-openstlinux/recipes-samples/images/st-example-image-qt.bb Proprietary STMicroelectronics example of image based on QT framework.
st-example-image-qtwayland meta-st/meta-st-openstlinux/recipes-samples/images/st-example-image-qtwayland.bb Proprietary STMicroelectronics example of image based on QT framework over Weston/Wayland.
optee-client meta-st/meta-st-openstlinux/recipes-security/optee/optee-client_git.bb BSD OPTEE client
optee-examples meta-st/meta-st-openstlinux/recipes-security/optee/optee-examples.bb GPLv2 OP-TEE examples
optee-test meta-st/meta-st-openstlinux/recipes-security/optee/optee-test_git.bb BSD & GPLv2 OP-TEE sanity testsuite
packagegroup-optee-core meta-st/meta-st-openstlinux/recipes-security/packagegroups/packagegroup-optee-core.bb LGPLv2+ OP-TEE core packagegroup
packagegroup-optee-test meta-st/meta-st-openstlinux/recipes-security/packagegroups/packagegroup-optee-test.bb LGPLv2+ OP-TEE test packagegroup
libsmaf meta-st/meta-st-openstlinux/recipes-security/smaf/libsmaf.bb LGPLv2.1 SMAF library
st-image-core meta-st/meta-st-openstlinux/recipes-st/images/st-image-core.bb Proprietary OpenSTLinux core image.
st-image-weston meta-st/meta-st-openstlinux/recipes-st/images/st-image-weston.bb Proprietary OpenSTLinux weston image with basic Wayland support (if enable in distro).
packagegroup-framework-tools meta-st/meta-st-openstlinux/recipes-st/packagegroups/packagegroup-framework-tools.bb MIT Frameworks components
packagegroup-gstreamer1-0 meta-st/meta-st-openstlinux/recipes-st/packagegroups/packagegroup-gstreamer1-0.bb LGPLv2+ Gstreamer 1.0 components
Addons on recipes: configuration, patch, ..
Recipe name Recipe path
openssh meta-st/meta-st-openstlinux/oe-core/recipes-connectivity/openssh/openssh_%.bbappend
packagegroup-core-ssh-openssh meta-st/meta-st-openstlinux/oe-core/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bbappend
dpkg meta-st/meta-st-openstlinux/oe-core/recipes-devtools/dpkg/dpkg_%.bbappend
ckermit meta-st/meta-st-openstlinux/oe-core/recipes-support/ckermit/ckermit_%.bbappend
libiio meta-st/meta-st-openstlinux/oe-core/recipes-support/libiio/libiio_git.bbappend
glmark2 meta-st/meta-st-openstlinux/recipes-benchmark/glmark2/glmark2_%.bbappend
bluez5 meta-st/meta-st-openstlinux/recipes-connectivity/bluez5/bluez5_%.bbappend
connman meta-st/meta-st-openstlinux/recipes-connectivity/connman/connman_%.bbappend
busybox meta-st/meta-st-openstlinux/recipes-core/busybox/busybox_%.bbappend
meta-environment meta-st/meta-st-openstlinux/recipes-core/meta/meta-environment.bbappend
packagegroup-core-eclipse-debug meta-st/meta-st-openstlinux/recipes-core/packagegroups/packagegroup-core-eclipse-debug.bbappend
packagegroup-core-tools-profile meta-st/meta-st-openstlinux/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend
systemd-conf meta-st/meta-st-openstlinux/recipes-core/systemd/systemd-conf.bbappend
systemd-serialgetty meta-st/meta-st-openstlinux/recipes-core/systemd/systemd-serialgetty.bbappend
systemd meta-st/meta-st-openstlinux/recipes-core/systemd/systemd_%.bbappend
cairo meta-st/meta-st-openstlinux/recipes-graphics/cairo/cairo_%.bbappend
kmscube meta-st/meta-st-openstlinux/recipes-graphics/kmscube/kmscube_git.bbappend
lxdm meta-st/meta-st-openstlinux/recipes-graphics/lxdm/lxdm_0.5.3.bbappend
wayland-protocols meta-st/meta-st-openstlinux/recipes-graphics/wayland/wayland-protocols_1.10.bbappend
weston-init meta-st/meta-st-openstlinux/recipes-graphics/wayland/weston-init.bbappend
xserver-nodm-init meta-st/meta-st-openstlinux/recipes-graphics/x11-common/xserver-nodm-init_%.bbappend
xinit meta-st/meta-st-openstlinux/recipes-graphics/xorg-app/xinit_%.bbappend
pixman meta-st/meta-st-openstlinux/recipes-graphics/xorg-lib/pixman_0.34.0.bbappend
alsa-utils meta-st/meta-st-openstlinux/recipes-multimedia/alsa/alsa-utils_1.1.4.bbappend
gstreamer1.0-libav meta-st/meta-st-openstlinux/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.14.2.bbappend
gstreamer1.0-plugins-bad meta-st/meta-st-openstlinux/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.12.2.bbappend
gstreamer1.0-plugins-base meta-st/meta-st-openstlinux/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.12.2.bbappend
gstreamer1.0-plugins-good meta-st/meta-st-openstlinux/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.12.2.bbappend
pulseaudio meta-st/meta-st-openstlinux/recipes-multimedia/pulseaudio/pulseaudio_10.0.bbappend
v4l-utils meta-st/meta-st-openstlinux/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bbappend
packagegroup-qt5-toolchain-target meta-st/meta-st-openstlinux/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bbappend
qtbase meta-st/meta-st-openstlinux/recipes-qt/qt5/qtbase_git.bbappend
qtmultimedia meta-st/meta-st-openstlinux/recipes-qt/qt5/qtmultimedia_git.bbappend
st-image-userfs meta-st/meta-st-openstlinux/recipes-samples/images/st-image-userfs.bbappend
packagegroup-framework-tools meta-st/meta-st-openstlinux/recipes-st/packagegroups/packagegroup-framework-tools.bbappend
ntp meta-st/meta-st-openstlinux/recipes-support/ntp/ntp_%.bbappend
netdata meta-st/meta-st-openstlinux/recipes-webadmin/netdata/netdata_git.bbappend