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:
- STM32MP157F-EV1, STM32MP157C-EV1 Evaluation boards. For more information on this board, please read the article STM32MP157x-EV1_-_hardware_description
- STM32MP157X-DK1 and STM32MP157X-DK2 Discovery kit. For more information on these boards, please read the article STM32MP157x-DKx_-_hardware_description
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]
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:
- Switch to github® mode your Distribution package
- Use the command devtool modify <recipe name> to have direct access to source code git used by build process
- 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 |
12. Archives
[edit source]
STM32MP15 release | OpenSTLinux release note |
---|---|
STM32MP15-Ecosystem-v1.2.0 | STM32MP15 OpenSTLinux release note - v1.2.0 page for the v1 ecosystem releases (in archived wiki) |
STM32MP15-Ecosystem-v1.1.0 | STM32MP15 OpenSTLinux release note - v1.1.0 page for the v1 ecosystem releases (in archived wiki) |
STM32MP15-Ecosystem-v1.0.0 | STM32MP15 OpenSTLinux release note - v1.0.0 page for the v1 ecosystem releases (in archived wiki) |