Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
stylenone

1. Overview

This page describes how to build the TorizonOS Torizon OS for the STM32MP2-EV1 development boardSTM32MPx development boards, including:

  • STM32MP257x-EV1

  • STM32MP257x-DKx

  • STM32MP157x-DKx.

2. Understanding Build Structure

The base principles for building the TorizonOS for STM32MP2 Torizon OS for the STM32MP architecture are the same as for the other targets described in the official TorizonOS Torizon OS documentation: https://developer.toradex.com/torizon/in-depth/build-torizoncore-from-source-with-yocto-projectopenembedded/.

The main difference is that the STM32MP2 STM32MP build requires 2 additional meta-layers. These are:

  1. meta-st-stm32mp - BSP Layer for the STM32MP2 STM32MP targets developed by STMicroelectonics for the OpenSTLinux project: https://wiki.st.com/stm32mpu/wiki/Category:Yocto-based_OpenSTLinux_embedded_software

  2. meta-emcraft-torizon-st - adaptation of the STM32MP2 STM32MP BSP for TorizonOS Torizon OS developed by EmCraftEmcraft.

What follows is the instructions on how to integrate these two layers in to the general TorizonOS Torizon OS Yocto project and then build TorizonOS Torizon OS for the STM32MP2 STM32MP targets.

3. Preparing BSP for Build

Perform the following steps:

  1. On the Linux host, set up a host system in a separate directory (/work/toradex/torizon in this example) using the Docker container provided by Toradex for the TorizonOS build:

    Code Block
    $ docker run --rm -it --name=crops6-minimal -v /work/toradex/torizon:/workdir --workdir=/workdir torizon/crops:kirkstone-6.x.y /bin/bash
  2. Set up the default git user and e-mail:

    Code Block
    $ git config --global user.email "you@example.com"
    $ git config --global user.name "Your Name"
  3. Initialise the TorizonOS BSPInstall the repo utility to the development host:

    Code Block
    $ mkdir ~/bin
    $ PATH=~/bin:$PATH
    $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    $ chmod a+x ~/bin/repo
  4. Create a working directory for the Yocto build, go into that directory:

    Code Block
    $ cd ~
    $ mkdir ~/yocto-workdir
    $ cd ~/yocto-workdir
  5. Initialize the Torizon OS reposiotiy:

    Code Block
    $ repo init -u git://git.toradex.com/toradex-manifest.git -b kirkstone-6.x.y -m torizoncore/default.xml
  6. Sync the repositories:

    Code Block
    $ repo sync
  7. Download the ST32MP2 ST32MP BSP layer:

    Code Block
    $ git -C layers clone -b mickledore https://github.com/STMicroelectronics/meta-st-stm32mp
  8. Download the ST32MP2 ST32MP Torizon compatibility layer:

    Code Block
    $ git -C layers clone -b kirkstone git@github.com:EmcraftSystems/meta-emcraft-torizon-st.git
  9. Replace the setup environment link and the Docker build link:

    Code Block
    $ ln -sf layers/meta-emcraft-torizon-st/scripts/setup-environment setup-environment

4. Building BSP Images

Perform the following steps:

  1. Use the Docker container provided by Toradex to setup the build environment in the work directory ~/yocto-workdir prepared in previous steps:

    Code Block
    $ docker run --rm -it --name=crops6-minimal -v ~/yocto-workdir:/workdir --workdir=/workdir torizon/crops:kirkstone-6.x.y /bin/bash
  2. In the same host system, set up the build environmentDocker console set up the environment for a specific STM32MP board: MACHINE=<MACHINE> source setup-environment [BUILDDIR], where MACHINE is one of the supported STM32MP targets:
    stm32mp25-eval for the STM32MP2 Evaluation kit
    stm32mp25-disco for the STM32MP2 Discovery kit
    stm32mp15-disco for STM32MP157 Discovery kit,
    BUILDDIR is the directory where you would like to to store the build files. For example:

    Code Block
    $$$ MACHINE=stm32mp25-eval DISTRO=torizon source setup-environment build-stm32mp25-eval
  3. Repeat the step of configuring the Git user name and email (this is only needed on the first build from scratch):

    Code Block
    $$ git config --global user.email "you@example.com"
    $$ git config --global user.name "Your Name"
  4. Build the TorizonOS Torizon OS images:

    Code Block
    $$$ bitbake torizon-core-docker

5. Understanding Build Outcome

When the build has successfully completed, the following build artefacts located in the build-stm32mp25-eval$BUILDDIR/deploy/images/stm32mp25-eval$MACHINE can be used to install TorizonOS Torizon OS to the STM32MP2-EV1 development STM32MP target board (refer to Installing TorizonOS to STM32MP2 EV1 Using the STM32 Programmer ToolTorizon OS to STM32MP Targets):

  1. arm-trusted-firmware/ - the directory with FSBL (= Trusted Firmware-A) images:

  2. fip/ - the directory with FIP (= U-Boot) images to be installed to eMMC or SD card:

  3. flashlayout_torizon-core-docker/optee/- the directory with eMMC or SD card layout to be used with the STM32_Programmer

  4. torizon-core-docker-<MACHINE>.ota-ext4 - main TorizonOS OSTree based image, including the Linux kernel images and the root file system.

For example, the following images will be deployed for the STM32MP2 Evaluation kit:

  1. arm-trusted-firmware/:

    1. tf-a-stm32mp257f-ev1-usb.stm32 - required FSBL to boot the STM32MP2 targets over USB for the initial installation

    2. tf-a-stm32mp257f-ev1-optee-emmc.stm32 - FSBL to be installed and boot the STM32MP2 targets from eMMC

    3. tf-a-stm32mp257f-ev1-optee-sdcard.stm32 - FSBL to be installed and boot the STM32MP2 targets from SD card

    4. metadata.bin- FSBL metadata.

  2. fip - the directory with FIP (= U-Boot) images to be installed to eMMC: /:

    1. fip-stm32mp257f-ev1-ddr-optee-emmc.bin- required to initialize DDR

    2. fip-stm32mp257f-ev1-ddr-optee-emmcsdcard.bin- required to initialize DDR

    3. fip-stm32mp257f-ev1-optee-emmc.bin - main bootloader image for eMMC

    4. fip-stm32mp257f-ev1-optee-sdcard.bin - main bootloader image /for SD card

  3. flashlayout_torizon-core-docker/optee/:

    1. FlashLayout_emmc_stm32mp257f-ev1-optee.tsv - eMMC layout to be used with the STM32_Programmer

    2. FlashLayout_sdcard_stm32mp257f-ev1-optee.tsv - SD card layout to be used with the STM32_Programmer

  4. torizon-core-docker-stm32mp25-eval.ota-ext4 - main TorizonOS Torizon OS OSTree based image, including the Linux kernel images and the root file system.

...