This article describes the content of OpenSTLinux distribution software release version openstlinux-6.1-yocto-mickledore-mpu-v24.06.26, which is part of the STM32 MPU ecosystem release note - v5.1.0.
1. Intended audience[edit source]
The targeted audience is STM32MP1 series and STM32MP25x 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® processors, and is a fundamental part of the STM32MPU Embedded Software distribution. This delivery of OpenSTLinux distribution is part of STM32 MPU Ecosystem v5.1.0 (see the STM32 MPU ecosystem release note - v5.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 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:
STM32MP13 boards | |||
---|---|---|---|
Boards | PCBs list | Main features | Ordering |
STM32MP135F-DK Discovery kit |
|
|
STM32MP15 boards | |||
---|---|---|---|
Boards | PCBs list | Main features | Ordering |
STM32MP157D-DK1 Discovery kit |
|
|
|
STM32MP157F-DK2 Discovery kit |
|
|
|
STM32MP157D-EV1 Evaluation board |
|
|
|
STM32MP157F-EV1 Evaluation board |
|
|
|
STM32MP157A-DK1 Discovery kit |
|
|
Out of production |
STM32MP157C-DK2 Discovery kit |
|
|
Out of production |
STM32MP157A-EV1 Evaluation board |
|
|
Out of production |
STM32MP157C-EV1 Evaluation board |
|
|
Out of production |
STM32MP25 boards | |||||
---|---|---|---|---|---|
Boards | PCBs list | Main features | Ordering | ||
STM32MP257F-EV1 Evaluation board |
|
|
|||
STM32MP257F-DK Discovery kit |
|
|
|
5. Release content[edit source]
5.1. Main software components[edit source]
- Build process
- OpenEmbedded v4.2.4 (Mickledore) - Updated
- GCC version v12.3.0 - Updated
- Embedded software components
- Linux kernel v6.1-stm32mp-r2 (v6.1.82) - Updated
- TF-A v2.8-stm32mp-r2 - Updated
- U-Boot v2022.10-stm32mp-r2 - Updated
- OP-TEE 3.19.0-stm32mp-r2 - Updated
- OpenOCD version v0.12.0 - Updated
- Applicative components
- Weston version v11.0.1 - Updated
- Wayland version 1.21.0 - Updated
- GStreamer version v1.22.6 - Updated
- GCnano version v6.4.15 - Updated
5.2. Changes[edit source]
5.2.1. OpenSTLinux layers[edit source]
Changes are:
- Rebase on Yocto Release 4.2.4 (Mickledore)
- Support of STM32MP25x lines
- Add external-dt support
- Extlinux
- Add support of FDTOVERLAYS via U-Boot
- FIP
- New frontend: now to generate fip you need to call "bitbake fip-stm32mp" instead of asking tf-a-stm32mp to generate the fip binaries via deploy command
- Add support of stm32mp
- Add fip-ddr binaries generation
- Add support of encryption
- Support generation of fip by configuration: optee: fastboot-sdcard, fastboot-emmc, optee-usb, ...
- CONF/MACHINE
- Add support of STM32MP25x lines SoCs and Boards
- Add fastboot support for all soc
- Rename NAND storage
- Nand-4-256-1024 (fmc nand)
- Nand-4-256-512 (spi nand)
- Nand-2-128-256 (spi nand)
- Add support of Optee profiles
- system_services
- secure_and_system_services
- Put sdk information on specific include file: st-image-sdk-stm32mp.inc
- Components
- Add M33projects for stm32mp2 soc
- Add Tf-m-stm32mp for stm32mp2 soc (To use only with external-dt OSLT)
- Add External dt mainly for stm32mp2 soc (use also for stm32mp1 rt)
- Add ddr firmware for stm32mp2 soc (DDR firmware use by bl2 - TF-A)
- Optee: Add optee profiles
- TF-A-TOOLS: Add wrapper to manage generation of fip binaries: create_st_fip.sh
- Minor fixes
5.2.2. Linux® kernel[edit source]
New component release tag v6.1-stm32mp-r2 is available, rebased on official Linux® kernel v6.1.82.
Changes are:
- Storage
- SDMMC: Implement "SDIO In band interrupt Mode"
- NAND: "EDO mode" removed from driver
- Visual
- GPU: library v6.4.13 integration
- [DCMI/OV5640] : supported without DMA-MDMA chaining
- [GC2145] : more raw Bayer formats camera sensor supported
- LSI
- SmartCard support
- HSI
- USB gadget : remove RNDIS and enable NCM
- Enable OnBoard HUB feature
- Security
- OP-TEE SCMI: Add thread provisioning
- SCMI: Move mailbox to Linux memory
- Firewall bus for peripheral access control (ETZPC)
- Coprocessor
- Authenticated coprocessor firmware: Improve load, by suppressing one extra copy of the firmware image.
- Core
- Watchdog switch to "ARM SMC watchdog" by default (IWDG2 no more used)
- Minor fixes
5.2.3. U-Boot[edit source]
New component release tag v2022.10-stm32mp-r2 is available, rebased on official U-Boot v2022.10.
Changes are:
- Use U-Boot device tree to configure MTD partitions and remove usage of "mtdparts" function
- Use" op-tee shm" for OP-TEE SCMI communication
- Add "Arm SMC" watchdog driver
- Add ETZPC system bus
- Add USB onboard HUB driver for ST boards
- Improve ENV in MMC support
- Update stm32prog command to suport new GUID types
- Other minor updates
5.2.4. TF-A[edit source]
New component release tag v2.8-stm32mp-r2 is available, rebased on official TF-A v2.8 (LTS tag lts-v2.8.6).
Changes are:
- Remove SP_MIN as secure world runtime service firmware. Those services are provided from ecosystem release v5.1.0 through OP-TEE
- Default build with OP-TEE in DDR for STM32MP15
- Always boot at 650MHz in BL2
- Clear and lock the fip-edmk fuse when outing BL2
- Manage quad enable bit on SPI NAND
- MISRA corrections
- Several bug fixes in low-power, RCC, BSEC, NAND, device tree, UART, watchdog & SSP
- Minor fixes
5.2.5. OP-TEE[edit source]
New component release tag v3.19.0-stm32mp-r2 is available, rebased on official OP_TEE OS 3.19.0.
Changes are:
- Implementation of a secure watchdog
- Use of watchdog framework
- Fix IWDG early-interrupt
- Allow device-tree RNG configuration + fixes
- Move SCMI mailbox to Linux/U-Boot memory
- New SCMI thread provisioning
- Low-power fixes
- Full clock tree is applied in OP-TEE to allow clock tree update over FOTA
- Support bit offset for NVMEM
- Reworked OCALL to OCALL2
- For STM32MP15x lines :
- OP-TEE build by default in DDR (pager mecanism OFF):
- Replace the previous TF-A SP_MIN system services configuration by default
- Pager configuration can be restored using pager (refer to OP-TEE core configuration) for a full set of secure services
- OP-TEE build by default in DDR (pager mecanism OFF):
- Minor Fixes
6. Release change notification[edit source]
OpenSTLinux attention points to switch from ecosystem release v5.0.0 to ecosystem release v5.1.0 are documented in STM32 MPU OpenSTLinux release changes notification – v5.1.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 and STM32MP25x lines .
- Prototype applications based on ST boards.
7.2. Non-recommended use[edit source]
- None
8. Restrictions[edit source]
STM32MP1 series
- Camera resolution limited to 320*240 / 15 fps on STM32MP157F-EV1 Evaluation board : limitation when using DCMI configuration (correction under implementation and will be delivered soon),
- The partition layout always keeps the Firmware Update related partitions even if machine feature fw-update is disabled. To optimize the partition layout without Firmware Update feature, modifications are needed on flashlayout file generation and also on U-Boot source code in case of MTD partitions (storage mapping is hardcoded for MTD partitions, see How_to_configure_U-Boot_for_your_board#MTD_partitions)
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 installing instructions, and use the repo command given for the minor version below, if it exists.
10. How to get started with openstlinux-6.1-yocto-mickledore-mpu-v24.06.26[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. Yocto features enabled in the delivery[edit source]
OpenEmbedded[4] 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 |
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 op-tee 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 |