Last edited one month ago

OpenSTLinux distribution

Applicable for STM32MP13x lines, STM32MP15x lines, STM32MP23x lines, STM32MP25x lines

1. What is the OpenSTLinux distribution?[edit | edit source]

The OpenSTLinux distribution, running on the Arm® Cortex®-A processor(s), is a sub-part of the Yocto-based OpenSTLinux embedded software.

OpenSTLinux distribution overview.png

OpenSTLinux is a Linux® distribution based on the OpenEmbedded build framework.

It includes the following collection of software components:

As explained in the OpenEmbedded article, the files used to build an image are stored in layers that come from different sources, and that are configured for this image.
Only layers specific to the OpenSTLinux distribution (for example the OpenSTLinux Board Support Package layer) are detailed in the Layers chapter below. Community layers referenced in this article are not listed.

The Machines chapter introduces the machine metadata (the information needed to build a kernel for specific target boards), while the Images chapter specifies the images that contain the information needed to build the user space. The Distros chapter describes the available distros configurations.

2. Software architecture overview[edit | edit source]

The figure below gives an overview of the OpenSTLinux architecture. You can obtain more details by clicking on one of the sub-levels.

The Linux application frameworks (or Linux user space components) that rely on the OpenSTLinux BSP, mainly come from open-source communities.

OpenEmbedded core components (community layers) combined with STMicroelectronics-specific layers (for example the BSP layer) give a consistent starting point to develop customer applications based on a standardized interface.


STM32 MPU OP-TEE overviewTF-A overviewU-Boot overviewSTM32 MPU Linux kernel overviewBoot chain overviewOpenSTLinux BSP architecture overviewLinux application frameworks overview
OpenSTLinux architecture overview


3. OpenSTLinux concept[edit | edit source]

To build an OpenSTLinux based software, a combination of machine, image and distro must be selected.
Available machines, images and distros are listed below.

More information on how to compile and use an OpenSTLinux distribution can be found in the Distribution Package articles.

3.1. Layers[edit | edit source]

This chapter describes the layers developed by STMicroelectonics.

STMicroelectronics' strategy is to organize the layers in order to split BSP descriptions from applications and frameworks.
By doing this, any BSP can be combined with any framework, or no framework at all.

Layer Description
meta-st-stm32mp BSP Layer for stm32mp
meta-st-openstlinux OpenSTLinux layer - framework/image settings


In addition, in OpenSTLinux distribution, a layer (meta-st-stm32mp-addons) has been created to manage STM32CubeMX integration.
If necessary, you can also create your own layer. The procedure to do so is explained in How_to_create_a_new_open_embedded_layer.

Layer Description
meta-st-stm32mp-addons BSP Layer addons for stm32mp (CubeMX Machine)
meta-my-custo-layer framework addons/customization

3.2. Machines[edit | edit source]

Machine Description
stm32mp1 Machine configuration for STM32MP1 microprocessor device boards
stm32mp13-disco Example of machine configuration for STM32MP13 discovery board (STM32MP135F-DK More info green.png in OP-TEE secure and system services boot mode on SDCard)
stm32mp15-disco Example of machine configuration for STM32MP1 discovery board (Only STM32MP157F-DK2 More info green.png in OP-TEE system services only boot mode on SDCard)
stm32mp15-eval Example of machine configuration for STM32MP1 evaluation board (Only STM32MP157F-EV1 More info green.png in OP-TEE system services only boot mode on SDCard)
stm32mp2 Machine configuration for STM32MP2 microprocessor device boards
stm32mp23-disco Example of machine configuration for STM32MP23 discovery board (Only STM32MP257F-DK More info green.png for STM32MP23x lines evaluation Info.png in OP-TEE secure and system services boot mode on SDCard)
stm32mp25-disco Example of machine configuration for STM32MP25 discovery board (Only STM32MP257F-DK More info green.png in OP-TEE secure and system services boot mode on SDCard)
stm32mp25-eval Example of machine configuration for STM32MP25 evaluation board (Only STM32MP257F-EV1 More info green.png in OP-TEE secure and system services boot mode on SDCard)

3.3. Images[edit | edit source]

Image Description
Official images
st-image-weston OpenSTLinux weston image with basic Wayland support (if enabled in distro)
Supported images
st-image-core OpenSTLinux core image

3.4. Distros[edit | edit source]

For further details on distributions (distros), read "Creating a distribution" [1]

Distro Description
openstlinux-weston OpenSTLinux featuring Weston/Wayland
nodistro *** DEFAULT OPENEMBEDDED SETTING : DISTRO is not defined ***

3.5. Reference source code[edit | edit source]

By default, Yocto recipes to get the TF-A, U-Boot and OP-TEE components have been configured to use official GitHub® repository of their respective community + ST patches for source code, and tarball + patches for kernel component source code.

If you prefer to use ST GitHub® as a source code reference for these BSPs components, you need to update your local.conf file

Refer to the section ‘Configure STM32MP default version to github’ in local.conf :

# =========================================================================
# Configure STM32MP default version to github
# =========================================================================
#STM32MP_SOURCE_SELECTION_pn-linux-stm32mp = "github"
#STM32MP_SOURCE_SELECTION_pn-optee-os-stm32mp = "github"
#STM32MP_SOURCE_SELECTION_pn-tf-a-stm32mp = "github"
#STM32MP_SOURCE_SELECTION_pn-u-boot-stm32mp = "github"

Then just uncomment the line to switch the component to github® for source code.

4. How to get the software for this distribution[edit | edit source]

The OpenSTLinux distribution is available through the three Packages (Starter, Developer, and Distribution) of the Yocto-based OpenSTLinux embedded software.


5. References[edit | edit source]