This article describes the content of OpenSTLinux distribution software release version openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15, which is part of the STM32 MPU ecosystem release note - v4.0.0.
1. Intended audience[edit source]
The targeted audience is STM32MP13x lines and STM32MP15x lines 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 STM32 MPU Ecosystem v4.0.0 (see the STM32 MPU ecosystem release note - v4.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 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:
- STM32MP135F-DK Discovery kit of STM32MP13x lines .
- STM32MP157A-EV1 , STM32MP157C-EV1 , STM32MP157D-EV1 and STM32MP157F-EV1 Evaluation boards of STM32MP15x lines .
- STM32MP157A-DK1 , STM32MP157C-DK2 , STM32MP157D-DK1 and STM32MP157F-DK2 Discovery kits of STM32MP15x lines .
5. Delivered features[edit source]
5.1. Main software components[edit source]
- Linux kernel v5.15-stm32mp-r1 (v5.15.24)
- TF-A v2.6-stm32mp-r1
- U-Boot v2021.10-stm32mp-r1
- OP-TEE 3.16.0-stm32mp-r1
- STM32CubeMP1 Package v1.6.0
- OpenEmbedded v4.0.1 (Kirkstone)
- Weston version v10.0.0
- Wayland version 1.20.0
- GStreamer version v1.20.1
- GCC version v11.2
- OpenOCD version v0.11.0
- GCnano version v6.4.7
5.2. Detailed features[edit source]
5.2.1. OpenSTLinux layers part[edit source]
- Rebase on Yocto LTS Release 4.0.1 (Kirkstone)
- Many impacts in recipes
- Graphic frameworks user change for security reasons (change from Weston community)
- Machine:
- Add support of Firmware Update feature
- Minor fixes
5.2.2. Linux® kernel part[edit source]
New component release tag v5.15-stm32mp-r1 rebased on official Linux® kernel v5.15.24.
Main updates for STMP32MP1:
- CONFIG: STM32MP13x lines and STM32MP15x lines support
- DT: New boards STM32MP135F-DK Discovery kit support
- FMC nand driver Write Protect(WP) function support
- RTC ALARM TOGGLE
- Minor fixes
- CPU @1GHZ
- GalaxyCore camera support
- EMMC HS200
- USB power delivery STM32G0
- LCD Rocktech RK055MHD042A0-CTG support
5.2.3. U-boot part[edit source]
New component release tag v2021.10-stm32mp-r1 rebased on official U-Boot v2021.10
Main updates for STMP32MP1:
- Device tree alignment with Linux kernel v5.15-stm32mp-r1
- Add STM32MP13x family support
- DDR tuning support removed
- Activate CONFIG_OF_LIVE
- Activate CONFIG_LOG
- Deactivate IPCC driver
- Add Uclass USB typeC and driver for UCSI
- Add USB phy tuning support
- Add NAND Write Protect support
- Add ADC calibration support
- Add TF-A firmware update support
- Update SCMI support for OP-TEE transport
- Add BSEC and stm32prog support with OP-TEE and TA
- ADC calibration in U-Boot
- Other minor updates
5.2.4. TF-A part[edit source]
New component release tag v2.6-stm32mp-r1 rebased on official TF-A 2.6
Main updates for STM32MP1:
- Rebase OpenSTLinux delivery on official TF-A tag v2.6
- Introduction of STM32MP13 platform
- FIP encryption for STM32MP13
- Firmware Update (FWU) support
- Early console management
- Configurable baudrate for UART
- Serial boot (USB/UART): flashlayout is no more loaded by BL2
- BL2 always boots at 650MHz
- Removal of STM32IMAGE legacy boot
- Minor fixes
- New drivers: clocks, PKA, SAES, DDRMCE
5.2.5. OP-TEE part[edit source]
New component release tag 3.16.0-stm32mp-r1 rebased on official OP_TEE OS 3.16.0
Main updates for STMP32MP1:
- Introduction of STM32MP13 platform
- OP-TEE Updated driver model based on DT
- New driver probing model based on device tree
- Support IRQ threads
- Fix GIC low-power sequence
- Pinctrl, I2C and clocks are now providers
- Rework HSI/LSI clocks calibration as a PTA
- OTP PTA interface for OTP management
- TA NVMEM for OTP provisionning support
- CRYP/HASH/BSEC/TAMP driver update
- TZC400 full configuration
- RNG connection to HW RNG PTA -> RNG secure by default
- Firewall bus management update
- Backup battery charging
- Replace Python wand with a new supported library
- Support Secured display
- Minor Fixes
- Documentation: Add device tree bindings documentation
- New drivers: Clock, PKA, SAES
- LTDC secure UI
- SCMI OPP/DVFS support
- SCMI regulator support (With PMIC and I2C secure)
- Security extended on all GPIO banks
- Support 1GHz CPU frequence
- Handle crypto-free configurations
- HSE monitoring feature
- Probe non secure IP management
6. Release change notification[edit source]
Please refer to STM32 MPU OpenSTLinux release changes notification – v4.0.0 article.
7. Recommendations for use[edit source]
7.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 STM32MP1 Series
- Prototype applications based on ST boards
7.2. Non-recommended use[edit source]
- None
8. Main restrictions list[edit source]
- If Firmware Update is not enabled, and the flashlayout partition is not needed anymore, but the storage mapping is hardcoded in U-Boot; either the flashlayout keeps the partitions for Firmware Update feature or U-Boot needs to be updated.
9. Minor release updates[edit source]
STMicroelectronics regularly delivers corrections through github® components which are U-Boot, OP-TEE, TF-A, Linux kernel.
The corrections can be incorporated into the Developer Package (refer to STM32MP1 Developer Package) or Distribution Package (see below).
Two possibilities exist to update a Distribution Package:
- Update your existing Distribution Package:
- Switch your Distribution Package to # github® mode .
- Use the devtool modify <recipe name> command to set up an environment. It fetches and unpacks the source code.
- In the extracted source code, use a git command such as git checkout -b WORK <github® TAG> to point to a new revision of the 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. See below the github® links of the quoted layers :
- Get a new Distribution Package:
- Refer to Installing_the_OpenSTLinux_distribution page for install instructions, and use the repo command given for the minor version below, if it exists.
9.1. v4.0.2[edit source]
- Update to Yocto 4.0.2
- BSP layers update:
Layer name | github® tag reference to get list of changes |
---|---|
meta-st-stm32mp | tag/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27 |
meta-st-openstlinux | tag/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27 |
- OpenSTLinux layers update:
Layer name | github® tag reference to get list of changes |
---|---|
meta-st-stm32mp-addons | tag/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27 |
meta-st-scripts | tag/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27 |
- New manifest tag available to get the release: openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27
repo init -u https://github.com/STMicroelectronics/oe-manifest -b refs/tags/openstlinux-5.15-yocto-kirkstone-mp1-v22.07.27 repo sync
10. How to get started with openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15[edit source]
Refer to How to download the software and start with this release?
11. Associated tools[edit source]
Refer to the Referenced tools release notes .
12. Features enabled in the delivery[edit source]
OpenEmbedded[1] build framework engine is named OE-Core.
OpenSTLinux distribution is based on the build framework OpenEmbedded, and can be configured thanks to a mechanism named "features" (machine features, distribution features, ...).
Depending on the features enabled, the resulting distribution can have more capabilities or software embedded.
For example, if the wifi is enabled then the wifi software and drivers are present on the filesystem and the wifi can be used.
12.1. Machine features[edit source]
The variable MACHINE_FEATURES specifies the list of hardware features the machine is capable of supporting.
These features (MACHINE_FEATURES) are defined inside the machine configuration .
12.2. Distribution features[edit source]
The variable DISTRO_FEATURES specifies the list of software features present in the distribution.
These features (DISTRO_FEATURES) are defined inside the distribution configuration .
Distribution feature | Purpose |
---|---|
alsa | Include ALSA support (OSS compatibility kernel modules installed if available). |
argp | |
autoresize | Add support of userfs auto resize feature in OpenSTLinux |
bluetooth | Include Bluetooth support |
bluez5 | Add Bluetooth stack |
efi | Add userland EFI tools |
ext2 | Add Second Extended File System support |
ext4 | Add Fourth Extended File System support |
gobject-introspection-data | Enable GObject Introspection, project for providing machine readable introspection data of the API of C libraries. |
gplv3 | Add gplv3 binaries in OpenSTLinux |
gstreamer | Add gstreamer tools in filesystem |
initrd | Add ramdisk |
ipv4 | Add ipv4 support |
ipv6 | Add ipv6 support |
kde | Add several tools (e.g. cups, fontconfig, ...) to the filesystem |
largefile | Enable large file support |
ldconfig | Include support for ldconfig and ld.so.conf on the target |
multiarch | Enable 64 bits BFD (Binary File Descriptor) |
nfs | Include NFS client support (for mounting NFS exports on device). |
opengl | Include the Open Graphics Library |
optee | Install tee service on the filesystem |
pam | Enable Pluggable Authentication Module |
pci | Add pci support |
polkit | Enable PolicyKit for controlling system-wide privileges |
pulseaudio | Network-capable sound server program |
splashscreen | Add U-Boot splashscreen |
systemd | Use systemd as init service |
usbgadget | USB Gadget Device support (for USB networking/serial/storage) |
usbhost | USB Host support (allows to connect external keyboard, mouse, storage, network etc) |
wayland | Add Wayland support |
wifi | WiFi support |
xattr | Add "Extended Attributes" support for filesystem |
zeroconf | Add zeroconf package to set up a ad-hoc network |
12.3. Bootscheme labels[edit source]
The variable BOOTSCHEME_LABELS defines which kind of boot is supported on the board.
These settings (BOOTSCHEME_LABELS) are defined inside the machine configuration .
Bootscheme label | Purpose |
---|---|
optee | Add optee in bootscheme |
trusted | Add trusted in bootscheme |
12.4. Bootdevice labels[edit source]
The variable BOOTDEVICE_LABELS defines which kind of mass storage OpenSTLinux can programmed.
These settings (BOOTDEVICE_LABELS ) are defined inside the machine configuration .
Bootdevice label | Purpose |
---|---|
emmc | Add boot on emmc device |
nand-4-256 | Add boot on NAND device |
nor-sdcard | Add boot stage on NOR device and the filesystem on SD-Card |
sdcard | Add boot on SD-Card |