Last edited 3 years ago

STM32MP15 OpenSTLinux release note - v2.0.0

This article describes the content of OpenSTLinux distribution software release version openstlinux-5.4-dunfell-mp1-20-06-24, which is part of STM32MP15 ecosystem release note - v2.0.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-v2.0.0 (see the STM32MP15 ecosystem release note - v2.0.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:

5. Delivered features[edit source]

5.1. Main software components[edit source]

  • Kernel version LTS v5.4.31
  • TF-A version v2.2
  • U-Boot version v2020.01
  • OP-TEE version v3.9.0
  • STM32CubeMP1 FW vx.y.z
  • OpenEmbedded Dunfell LTS (v3.1)
  • Weston version v8.0.0
  • GStreamer version v1.16.2
  • GCC version v9.3
  • openOCD version v0.10.0
  • GCnano version v6.4.1

5.2. Detailed features[edit source]

5.2.1. Kernel part[edit source]

  • Rebase on Linux kernel v5.4.31
  • Add SCMI clock support
  • Add new STM32 device tree diversity: add stm32mp151 and stm32mp153 support
  • Add PM_runtime support for QSPI driver
  • Improve probe defer mechanism for all STM32 drivers
  • Add DVFS support

5.2.2. U-boot part[edit source]

  • rebase on U-Boot v2020.01
  • add device tree for stm32mp151 and stm32mp153
  • add support of ST boards with stm32mp15xd/f
  • add spi-nand support: boot and udpate with STM32CubeProgrammer

5.2.3. TF-A part[edit source]

  • Update on official v2.2 release
  • Rebase all ST development from v2.0
  • Remove serial boot support from the embedded image
  • Add specific exception vector for debugging purpose
  • Support new STM32 MPU chip versions
  • Align with Linux kernel 5.4 device tree bindings
  • Bug fixes
  • BL2 stage:
    • Support all boot devices
    • SDCard
    • eMMC
    • New framework for :
      • Raw NAND (Including ECC on-die)
      • SPI NOR
      • SPI NAND (NEW)
    • Serial boot support (USB/UART)
    • Use the TF-A authentication framework
    • OPP management for max CPU frequency boot (including boot sequence update)
  • BL32/SP-MIN stage:
    • Low power management services through PSCI
    • CPU Frequency switch support (for Linux kernel DVFS)
    • SCMI protocol management
      • Add server to manage protocol
      • Clock management over SCMI
      • Reset management over SCMI
    • TZC400 interrupt management to catch illegal access
    • BSEC2 driver update to increase security on fuses
    • Enable internal system tampers by default

5.2.4. OP-TEE part[edit source]

Update on official 3.9.0 OP-TEE OS release

Most of STM32MP1 code have been upstream including the SCMI server and protocol (clock and reset) management.

On top of 3.9.0:

  • Update device tree to align with Linux kernel 3.9.0
  • Add support of CPU dynamic frequency switch (for Linux kernel DVFS)
  • Add low power management (including DDR services)
  • Add SIP specific services :
  • Power domain control
  • Calibration management

6. Recommendations for use[edit source]

6.1. Safe use[edit source]

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

Warning white.png Warning
In this version some cipher methods have been disabled by the community for security reasons.

As a consequence some ssh requests from STM32CubeIDE may not be functional due to the dropbear package configuration.

In this case, you can either:

 apt-get update
 apt-cache policy dropbear
dropbear:
 Installed: 2019.78-r0
 Candidate: 2019.78-r2
 Version table:
    2019.78-r2 500
       500 http://packages.openstlinux.st.com/2.0 dunfell/updates armhf Packages
*** 2019.78-r0 100
       100 /var/lib/dpkg/status
 apt-get install dropbear
 apt-cache policy dropbear
dropbear:
 Installed: 2019.78-r2
 Candidate: 2019.78-r2
 Version table:
*** 2019.78-r2 500
       500 http://packages.openstlinux.st.com/2.0 dunfell/updates armhf Packages
       100 /var/lib/dpkg/status

8. Minor release updates[edit source]

STMicroelectronics regularly delivers corrections through github® components which are u-boot, optee-os, tf-a, Linux kernel.
You can decide to incorporate them into your developer package (please refer to STM32MP1 Developer Package) or Distribution package.
For updating Distribution package please proceed as follow:

  1. Switch to github® mode your Distribution package
  2. Use the command devtool modify <recipe name> to have direct access to source code git used by build process
  3. In source code just extracted, use git command as git checkout -b WORK <github® TAG> to points on new revision of component

More rarely and independently, STMicroelectronics also delivers fixes on layers through github®. These changes can be integrated (via git commands) into your local STM32MP1 Distribution Package environment. Please find below the github® links of the quoted layers :

8.1. v2.0.1[edit source]

Component Recipe name new github® release
tf-a tf-a-stm32mp v2.2-stm32mp-r1.3
u-boot u-boot-stm32mp v2020.01-stm32mp-r1.1
kernel linux-stm32mp v5.4-stm32mp-r1.1
optee-os optee-os-stm32mp 3.9.0-stm32mp-r1.3

9. How to get started with openstlinux-5.4-dunfell-mp1-20-06-24[edit source]

Refer to How to get 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]

In OpenEmbedded, the build framework which was chosen by the OpenSTLinux distribution, a layer is a collection of recipes and/or configurations that can be used 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.2.4.bb GPLv1 & MIT GCNano kernel drivers
tf-a-stm32mp meta-st/meta-st-stm32mp/recipes-bsp/trusted-firmware-a/tf-a-stm32mp_2.0.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_2018.11.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_7.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_7.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.10.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 flash
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 cortexM4
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_4.14.bb GPLv2 Linux STM32MP Kernel
optee-os-stm32mp meta-st/meta-st-stm32mp/recipes-security/optee/optee-os-stm32mp_3.3.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_5.0.0.bbappend
linux-firmware meta-st/meta-st-stm32mp/recipes-kernel/linux-firmware/linux-firmware_git.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
lsb-openstlinux meta-st/meta-st-openstlinux/recipes-extended/lsb/lsb-openstlinux.bb GPLv2+ LSB support for checking gpu provider
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-x11 meta-st/meta-st-openstlinux/recipes-samples/images/st-example-image-x11.bb Proprietary STMicroelectronics example of image based on X11.
st-example-image-xfce meta-st/meta-st-openstlinux/recipes-samples/images/st-example-image-xfce.bb Proprietary STMicroelectronics example of image based on XFCE framework.
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
Recipes addons, such as configurations and patches.
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