STM32MP15 OpenSTLinux release note - v3.0.0

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

1 Intended audience[edit]

The targeted audience is STM32MP15 customers or partners.

2 Delivery scope and purpose[edit]

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.0.0 (see the STM32MP15 ecosystem release note - v3.0.0).

3 Licensing[edit]

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]

This software delivery is compatible with the following boards:

5 Delivered features[edit]

5.1 Main software components[edit]

  • Linux kernel v5.10-stm32mp-r1 (v5.10.10)
  • TF-A v2.4-stm32mp-r1
  • U-Boot v2020.10-stm32mp-r1
  • OP-TEE v3.12.0-stm32mp-r1
  • STM32CubeMP1 Package v1.4.0
  • OpenEmbedded v3.1.5 (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]

5.2.1 OpenSTLinux layers part[edit]

  • Rebase on Yocto 3.1.5
  • Introduce MTD partition configuration check to highlight any misalignment between STM32MP1 machine configuration and U-Boot source code
  • Add 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 an 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.png 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]

  • Rebase on Linux® kernel v5.10.10
  • STMP32MP1
  • LowSpeed/UART: UART/USART- DMA transfer lock: DMA stream could be locked when transferring data to/from USART/UART
  • LowSpeed/I2C: Study and support newly defined analog/digital filter bindings in stm32f7-i2c driver
  • HighSpeed/USB: Rework USB wakeup feature
  • Analog: Add LPTIM clocksource DT nodes to mp151.dtsi
  • Audio: Update audio fragments for alignment on multi_v7 defconfig and rebase wm8994 driver adaptations on kernel 5.5
  • Video: Camera BT656 embedded synchronisation support
  • Copro: rebase on 5.10 LTS with framework update
  • Minor fixes

5.2.3 U-boot part[edit]

  • Rebase on official U-Boot v2020.10
  • STMP32MP1
  • Support U-Boot load in FIP and associated DT management
  • Increase the maximum number of supported reserved memory
  • Rebase device tree with v5.10-stm32mp-r1
  • Update SCMI support
  • Minor fixes

5.2.4 TF-A part[edit]

  • Rebase on official TF-A 2.4
  • Introduction of a small generic clock framework
  • Add PIE support for BL32 (SP-MIN)
  • STM32MP1:
  • Update programmer (including FIP support)
  • Use FIP to manage BL2 load images (Split BL2/BL32)
  • Use FCONF feature to manage binaries policies
  • Update BL2 to be able to manage all trusted OS (SP_MIN or OP-TEE)
  • Clean up BL2 device tree for size optimization
  • Update BL2 MMU to minimize memory footprint
  • Update STM32 Crypto lib to use TBBR CoT authentication
  • Use the standard X509 certificate to authenticate binaries using MBEDTLS
  • Define TZEN in BL32 based on RCC binding
  • Clean power sequence to move a function into the BL32
  • Enable early watchdog interrupts to dump core debug information
  • Rework SSP support and include it in the default branch
  • Update STM32MP1 documentation
  • Minor Fixes

5.2.5 OP-TEE part[edit]

  • Rebase on official OP_TEE os 3.12.0
  • STMP32MP1
  • User Land Memory corruption from OPTEE context
  • Introduction of a small generic clock framework
  • Handle non secure device tree as ENTRY parameter of OP-TEE / provided to U-Boot
  • Added new RCC device tree compatible to manage security level
  • Fix IO compensation low power sequence
  • Remove default STM32 output file
  • Minor fixes

6 Recommendations for use[edit]

6.1 Safe use[edit]

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

  • None

7 Main restrictions list[edit]

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

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.
To update a Distribution Package please proceed as follow:

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 :

8.1 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
  • Add support of LTDC screen
  • Add support without GPU enabled for demo
Layer name github® commit SHA1 reference
meta-st-stm32mp c44b9052ae3b262d5e73212c696e79f0890a018b
meta-st-openstlinux 3d772ac02e01e1a76e6888fcabb2d5fa26f1c579

9 How to get started with openstlinux-5.10-dunfell-mp1-21-03-31[edit]

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

10 Associated tools[edit]

Refer to the Referenced tools release notes .

11 Detailed delivery content[edit]

11.1 Detailed description of STMicroelectronics layers[edit]

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]

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]

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]

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