Difference between revisions of "Example of directory structure for Packages"

[quality revision] [quality revision]
m
 
m (Appendix A: directory structure after build (Developer Package))
 

Template:ArticleMainWriter Template:ReviewersList Template:ArticleApprovedVersion

1 Article purpose[edit]

This article aims at proposing a way to organize, on the host PC, the software packages of the different Packages (Starter, Developer and Distribution) for a given release of the STM32MPU Embedded Software distribution.

The main objective of the proposed organization is to keep together the software packages corresponding to a given release because there are links between them. For example:

  • Flashing the image from the Starter Package on the board is mandatory before modifying the source code from the Developer Package. Both the image and the source code must belong to the same software release.
  • The SDK (Developer Package) and the image (Starter Package) have both been generated from the Distribution Package. A software release thus guarantees that there is no misalignment between the different software packages.

An example of organization for tools is proposed here.

Info.png The objective of this article is to describe one organization among all the possible organizations. Feel free to organize the delivered Packages in any other way that would better match your way of working.
Info.png In practice, this article uses the release STM32MP15-Ecosystem-v3.0.0 for the STM32MPU Embedded Software distribution release issued on 03-July-2018 as an example to illustrate the proposed organization. If you are using a different release, the names of the directories and files might differ.


The directories are shown in green, while the files are in black.

2 Creating the structure[edit]

  • Create your <working directory> and assign a unique name to it (for example by including the release datename):
PC $> mkdir STM32MPUSTM32MP15-Release-18-07-03Ecosystem-v3.0.0
PC $> cd STM32MPUSTM32MP15-Release-18-07-03Ecosystem-v3.0.0

  • Create the first-level directories that will host the software packages delivered through the STM32MPU Embedded Software distribution release note:
PC $> mkdir Starter-Package
PC $> mkdir Developer-Package
PC $> mkdir Distribution-Package
  • The resulting directory structure looks as follows:
STM32MPUSTM32MP15-Release-18-07-03Ecosystem-v3.0.0  STM32MPU Embedded Software release
├── Developer-Package          Developer Package installation directory
├── Distribution-Package       Distribution Package installation directory
└── Starter-Package            Starter Package installation directory

Once all software packages have been installed according to the instructions given in the STM32MPU Embedded Software distribution release note, the resulting directory structure looks as follows:

STM32MPUSTM32MP15-Release-18-07-03Ecosystem-v3.0.0                           STM32MPU Embedded Software release
├── Developer-Package                                Developer Package installation directory
│   ├── openstlinux-4.14-rocko-mp1-18-07-03SDK  Linux kernel, U-Boot and TF-A source code (OpenSTLinux distribution)    ├── SDK                                  SDK for OpenSTLinux distribution└──├── STM32Cube_FW_MP1_V0V1.4.0              STM32Cube MPU Package
       STM32CubeMP1 Package
│   └── stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31  Linux kernel, U-Boot, TF-A and OP-TEE OS source code (OpenSTLinux distribution)
├── Distribution-Package                             Distribution Package installation directory
│   └── stm32mp1-openstlinux-45.1410-rockodunfell-mp1-1821-0703-0331  OpenSTLinux distribution (full source code and OpenEmbedded-based build framework)
└── Starter-Package                                  Starter Package installation directory
    └── stm32mp1-openstlinux-45.1410-rockodunfell-mp1-1821-0703-0331  Software image (binaries)

3 Focus on the Starter Package directory[edit]

The Starter-Package directory contains the software image for the STM32MPU Embedded Software distribution.

The trusted boot chain is the default solution delivered by STMicroelectronics. It includes the superset of features (for example, all Flash memory devices are supported). The basic boot chain is also upstreamed by STMicroelectronics, with a limited number of features (for example microSD card memory boot only). Refer to the Boot chains chain overview article for details.

Flash memory partitions (e.g. rootfs, bootfs...) are explained in the STM32MP15 Flash mapping article.


Starter-Package
└── stm32mp1-openstlinux-45.1410-rockodunfell-mp1-1821-0703-0331 
    └── images
        └── stm32mp1
            ├── flashlayout_st-image-weston                                 Flash layout files (description of the partitions) for the supported Flash devices and boards
            │   ├── FlashLayout_emmc_stm32mp157c-ev1-trustedoptee.tsv              Flash layout file for eMMC and trusted boot chain, with STM32MP15OP-TEE EvaluationOS boards STM32MP157C-EV1
            │   ├── FlashLayout_nand-4-256emmc_stm32mp157c-ev1-trusted.tsv      Flash layout file for NAND Flash and trusted boot chain → STM32MP15 Evaluation boards
            │   ├── FlashLayout_nor-emmc_stm32mp157c-ev1-trusted.tsv        Flash layout file for NOR Flash (and eMMC) and trusted boot chain → STM32MP15STM32MP157C-EV1
Evaluation boards             │   ├── FlashLayout_nor-nand-4-256sdcard_stm32mp157c-ev1dk2-trustedbasic.tsv  Flash layout file for NOR Flash (and NAND Flasdh) and trusted boot chain → STM32MP15 Evaluation boards
            │   ├── FlashLayout_nor-sdcard_stm32mp157c-ev1-trusted.tsv      Flash layout file for NOR Flash (and microSD card) and trustedbasic boot chain → STM32MP15STM32MP157C-DK2
Evaluation boards             │   ├── FlashLayout_sdcard_stm32mp157c-dk2-basicoptee.tsv            Flash layout file for microSD card and basictrusted boot chain, with STM32MP15OP-TEE DiscoveryOS kits STM32MP157C-DK2
            │   ├── FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv          Flash layout file for microSD card and trusted boot chain (recommended setup) → STM32MP15STM32MP157C-DK2
Discovery kits             │   ├── FlashLayout_sdcard_stm32mp157c-ev1dk2-basicextensible.tsv            Flash layout file for microSD card andwith basicno bootuserfs chainpartition but STM32MP15a Evaluationrootfs boardspartition extended            │   └── FlashLayout_sdcard_stm32mp157c-ev1-trusted.tsv          Flash layout file for microSD card and trusted boot chain (recommended setup) → STM32MP15 Evaluation boardsto sdcard size (recommended setup for package repository service) → STM32MP157C-DK2
              ├── scripts└── [...]
            ├── fip
└── create_sdcard_from_flashlayout.sh           │    ├── splashfip-<board>-<boot-type>.bin             Image to flash            
            ├── arm-trusted-firmware
        U-Boot splash screen picture (file│   in BMP format with a .bin extension) for NOR Flash├── tf-a-<board>-<boot-type>.stm32          Intermediate tf-a binary used to build fip ├── st-image-bootfs-openstlinux-weston-stm32mp1.ext4
           Binary for├── bootfsu-boot
partition            │   ├── stu-imageboot-bootfs-openstlinux-weston-stm32mp1.manifestnodtb-soc.bin             ├── st-image-userfs-openstlinux-weston-stm32mp1.ext4      Intermediate tf-a binary used to build Binaryfip forimage
userfs partition           │    ├── stu-imageboot-userfs<board>-openstlinux<boot-weston-stm32mp1type>.manifestdtb          Intermediate   ├── st-image-weston-openstlinux-weston-stm32mp1.ext4      tf-a dtb used to build fip image
     Binary for rootfs partition    ├── optee
       ├── st-image-weston-openstlinux-weston-stm32mp1.license             │   ├── sttee-image-weston-openstlinux-weston-stm32mp1-license_content.htmlheader_v2-<board>.bin
            ​│   ├── sttee-imagepageable_v2-weston-openstlinux-weston-stm32mp1.manifest<board>.bin
            │   ├── sttee-imagepager_v2-weston-openstlinux-weston-stm32mp1_nand_4_256_multivolume.ubi-<board>.bin
            ├── tf-a-stm32mp157c-dk2-trusted.stm32kernel
            │   ├── vmlinux           TF-A binary for FSBL partition (trusted boot chain)  STM32MP15 Discovery kits           vmlinux copied ├── tf-a-stm32mp157c-ev1-trusted.stm32 in bootfs partition
            ├── scripts
          TF-A binary for FSBL partition (trusted boot chain) → STM32MP15 Evaluation boards└── create_sdcard_from_flashlayout.sh
                 ├── ust-bootimage-spl.stm32bootfs-stm32mp157copenstlinux-dk2weston-basicstm32mp1.ext4            Binary for bootfs partition
      U-Boot binary for FSBL partition (basic boot chain) → STM32MP15 Discovery kits├── st-image-bootfs-openstlinux-weston-stm32mp1.manifest
                ├── ust-bootimage-spl.stm32userfs-stm32mp157copenstlinux-ev1weston-basicstm32mp1.ext4                      U-Boot binary Binary for FSBLuserfs partition
(basic boot chain)  STM32MP15 Evaluation boards             ├── ust-bootimage-stm32mp157cuserfs-dk2openstlinux-basicweston-stm32mp1.imgmanifest
            ├── st-image-vendorfs-openstlinux-weston-stm32mp1.ext4              U-Boot binary Binary for SSBLvendorfs partition
(basic boot chain)  STM32MP15 Discovery kits             ├── ust-bootimage-stm32mp157cweston-dk2openstlinux-trustedweston-stm32mp1.stm32ext4                        U-Boot binary for SSBLBinary for rootfs partition
(trusted boot chain)  STM32MP15 Discovery kits             ├── ust-bootimage-stm32mp157cweston-ev1openstlinux-basicweston-stm32mp1.imglicense
                           U-Boot binary for SSBL partition (basic boot chain) → STM32MP15 Evaluation boards
            └── u-boot-stm32mp157c-ev1-trusted.stm32├── st-image-weston-openstlinux-weston-stm32mp1-license_content.html
            ├── st-image-weston-openstlinux-weston-stm32mp1.manifest
            └──           U-Boot binary for SSBL partition (trusted boot chain) → STM32MP15 Evaluation boards
[...]

4 Focus on the Developer Package directory[edit]

The Developer-Package directory contains:

  • The source code for the following OpenSTLinux software packages (development for Arm® Cortex®-A processor):
    • TF-A
    • Linux® kernel
    • U-Boot
    • TF-A
    • OP-TEE OS
  • The debug symbol files for Linux kernel, U-Boot and , TF-A and OP-TEE OS
  • The SDK (for cross-development on an host PC)
  • The STM32Cube MPU Package (developed for Arm® Cortex®-M processor)


Developer-Package
├── openstlinux-4.14-rocko-mp1-18-07-03SDK  Source code for OpenSTLinux distribution    ├── images       └── stm32mp1                                Debug symbol files installation directory           ├── tf-a-bl2-trusted.elf          SDK for OpenSTLinux distribution: details in DebugStandard symbolSDK filedirectory for TF-A → trusted boot firmware stagestructure article
│   ├── environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi  Environment setup script for Developer Package
│   ├── site-config-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
├── sysroots
  ├── tfcortexa7t2hf-aneon-bl32-trusted.elfvfpv4-ostl-linux-gnueabi               Debug symbolTarget filesysroot for TF-A → runtime software stage
(libraries, headers, and symbols)│   │   └── [...]
  ├── u-boot-stm32mp157c-dk2-trusted.elf  Debug symbol file for U-Boot → STM32MP15 Discovery kits
│   │ │   └── x86_64-ostl_sdk-linux                     ├── u-boot-stm32mp157c-ev1-trusted.elf  Debug symbol file for U-Boot  STM32MP15 Evaluation boards
     Native sysroot (libraries, headers, and symbols)
│   │       └── vmlinux[...]
   └── version-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

├── STM32Cube_FW_MP1_V1.4.0             STM32CubeMP1 Package: details in STM32CubeMP1 Package content article
 Debug symbol file├── forDrivers
Linux kernel  └──├── sourcesBSP        └── arm-openstlinux_weston-linux-gnueabi            ├── linux-stm32mp-4.14-48   BSP drivers Linuxfor kernelthe installationsupported directorySTM32MPU boards
      └── [...]├── [*].patch CMSIS
│   │   │   └── [...]
│      └── STM32MP1xx_HAL_Driver     ST patches HAL drivers for Linuxthe kernelsupported STM32MPU devices
       └── [...]
│   ├── fragment-[*].config_htmresc
│   │   └── [...]
│   ├── License.md   ST configuration fragments for Linux kernel              License types for the components
│   ├── linux-4.14.48Middlewares         Linux kernel source code directory        Middlewares used by the examples and applications
├── linux-4.14.48.tar.xz│   └── [...]├── package.xml
   ├── Projects
   │   ├── README.HOW_TO.txtSTM32CubeProjectsList.html  List of examples Helperand fileapplications for LinuxSTM32CubeMP1 kernelPackage
management: reference for Linux kernel build ├── STM32MP157C-DK2             └──Set seriesof examples and applications  STM32MP157C-DK2
      ├── tf-a-stm32mp-1.5-release.AUTOINC+ed8112606c  └── [...]
      └──   TFSTM32MP157C-AEV1 installation directory           Set of examples and ├── [*].patch  applications → STM32MP157C-EV1          └── [...]
   ├── Readme.md
   ├── Release_Notes.html              Release note for STM32CubeMP1 Package
 ST patches for└── TF-AUtilities└── [...]

└── stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31    ├── gitSource code for OpenSTLinux distribution
    ├── images
       └── stm32mp1                              TF-A source codeDebug directorysymbol files installation directory
           ├── Makefile.sdktf-a-bl2-optee.elf                  Debug symbol file for TF-A, with OP-TEE OS  trusted boot firmware stage
         Makefile for the├── TF-A compilation
│tf-a-bl2-trusted.elf                ├── README.HOW_TO.txt        Debug symbol file for TF-A → trusted boot firmware stage
           ├── tf-a-bl32-trusted.elf              Helper Debug symbol file for TF-A management: referenceruntime forsoftware TF-Astage
build    ├── u-boot-stm32mp157a-dk1-optee.elf    Debug symbol ├──file series
│     for U-Boot, with OP-TEE OS → STM32MP157A-DK1
     └── tf-a-stm32mp-1.5-release.AUTOINC+ed8112606c.tar.gz
│           ├── u-boot-stm32mp157a-dk1-trusted.elf  Debug symbol file for U-Boot → STM32MP157A-DK1
   └──  │       ├── u-boot-trustedstm32mp157c-stm32mpdk2-2018.03-release.AUTOINC+f95ab1fb6eoptee.elf    Debug symbol file for      U-Boot, installationwith directoryOP-TEE OS  STM32MP157C-DK2
            ├── [*].patchu-boot-stm32mp157c-dk2-trusted.elf  Debug symbol file for U-Boot  STM32MP157C-DK2
           ├── u-boot-stm32mp157c-ev1-optee.elf    Debug symbol file for U-Boot, with OP-TEE OS  STM32MP157C-EV1
           ├── u-boot-stm32mp157c-ev1-trusted.elf  Debug symbol file for U-Boot  STM32MP157C-EV1
 ST patches for U-Boot
├── vmlinux       ├── git                     Debug symbol file for Linux kernel
           └── [...]

    
└── sources
        └── arm-ostl-linux-gnueabi
       U-Boot source code directory  ├── FIP_artifacts
            ├── Makefile.sdkfip/                     fip images of Stater Package
            ├── arm-trusted-firmware/    intermediate tf-a binaries from Stater Package (needed to build any fip Makefileimage
for the U-Boot compilation         ├── optee/      ├── README.HOW_TO.txt            intermediate optee binaries from Stater Package (needed to build any fip image
            └── u-boot/            Helper file for U-Boot management: reference forintermediate Uu-Bootboot buildbinaries from Stater Package (needed to build any fip image

      
├── series     ├── linux-5.10.10
         └── u-boot-trusted-stm32mp-2018.03-release.AUTOINC+f95ab1fb6e.tar.gz ├── SDK   ├── [*].patch            ST patches for Linux kernel
               ├── fragment-[*].config  ST configuration fragments for Linux kernel
               ├── linux-5.10.10         Linux kernel source code directory
SDK for OpenSTLinux distribution: details in Standard SDK directory structure article  │   ├── environment-setup-cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi  Environment setup script for Developer Package
│   ├── site-config-cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabilinux-5.10.10.tar.xz
            │   ├── sysrootsREADME.HOW_TO.txt    Helper file for ├── cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi      Linux kernel management: reference for Linux kernel build
         Target sysroot (libraries, headers, and symbols)
└── series

 
   └── [...]       └──├── x86_64-openstlinux_weston_sdk-linux     optee-os-stm32mp-3.12.0.r1  OP-TEE OS installation directory
               ├── [*].patch             Native sysrootST (libraries, headers, and symbols)patches for OP-TEE OS
          └── [...]└──├── versionoptee-cortexa7hfos-neon-vfpv4-openstlinux_weston-linux-gnueabi
└── STM32Cube_FW_MP1_V0.4.0stm32mp-3.12.0.r1
               ├── Makefile.sdk           Makefile STM32Cubefor MPU Package: details in STM32Cube MPU Package content articlethe OP-TEE OS compilation
         ├── COPYING     ├── COPYING.BSD-3optee-os-stm32mp-3.12.0.r1-r0.tar.gz     ├── Drivers   OP-TEE OS source code directory
├── BSP              ├── README.HOW_TO.txt      Helper file for OP-TEE OS management: reference for OP-TEE OS build
         BSP drivers for the supported STM32MPU boards└── series

   
      └── [...]   ├── tf-a-stm32mp-2.4.r1        ├── CMSIS  TF-A installation directory
            └──├── [*]...]patch        └── STM32MP1xx_HAL_Driver        ST patches for TF-A
           HAL drivers for the supported STM32MPU devices
    │├── tf-a-stm32mp-2.4.r1  TF-A source code directory
       └── [...]       ├── _htmrescMakefile.sdk        └── [...]     ├──Makefile LLA_evaluation_for_STM32MPU_17-12-06_plain.txt
for the TF-A compilation
   ├── Middlewares        └──├── [README.HOW_TO..]txt     ├── package.xml   Helper file ├──for ProjectsTF-A management: reference for TF-A build
            │   ├── STM32CubeProjectsList.htmlseries
               └──  List of examples and applications for STM32Cube MP1 Packagetf-a-stm32mp-2.4.r1-r0.tar.gz

            └── u-boot-stm32mp-2020.10.r1  U-Boot ├──installation STM32MP15_DISCOdirectory
                ├── [*].patch           Set of examples andST applicationspatches for STM32MP15U-Boot
Discovery kits           └── [...]    ├── Makefile.sdk        └── STM32MP15_EVAL  Makefile for the U-Boot compilation
                ├── README.HOW_TO.txt      SetHelper offile examplesfor and applications → STM32MP15 Evaluation boardsU-Boot management: reference for U-Boot build
           └── [...]     ├── Release_Notes.htmlseries
                ├── u-boot-stm32mp-2020.10.r1  U-Boot installation directory        Release noteU-Boot forsource STM32Cubecode MP1directory
Package     └── Utilities          └── [...]u-boot-stm32mp-2020.01-r0.tar.gz

Appendix A shows the structure of the Linux kernel, U-Boot and , TF-A and OP-TEE OS installation directories after these software packages have been built.

5 Focus on the Distribution Package directory[edit]

The Distribution-Package directory contains all the OpenEmbedded layers required to get the source code of any STM32MPU Embedded Software component, as well as a build framework based on OpenEmbedded.


Distribution-Package
└── openstlinux-45.1410-rockodunfell-mp1-1821-0703-0331  OpenSTLinux distribution
    └── layers
        ├── meta-openembedded  Collection of layers for the OpenEmbedded-Core universe (OpenEmbedded standard)
        │   └── [...]
        ├── meta-qt5           QT5 layer for OpenEmbedded (standard)
        │   └── [...]
    
    ├── meta-st
        │   ├── meta-st-openstlinux                   STMicroelectronics layer that contains the settings of the frameworks and images for the OpenSTLinux distribution
          ├── recipes-samples
    │   │   │   └── images
    │   │   │       ├── st-example-image-qt.bb    ST example of image based on QT framework
    │   │   │       ├── st-example-image-x11.bbrecipes-st
  ST example of image based on X11
    │   │   │       └── st-example-image-xfce.bb  ST example of image based on XFCE framework
    │   │   ├── recipes-st├── images
          ├── images
    │   │   │   ├── st-image-core.bb          Core image for OpenSTLinux distribution
          │   │   ├── st-image.inc
    │   │   │   │   └── st-image-weston.bb        Weston image with basic Wayland support for OpenSTLinux distribution: recommended setupsetup
        │   │   │   └── packagegroups
        │   │   │       └── [...]
        │   │   └── [...]
    
    │   ├── meta-st-stm32mp                   STMicroelectronics layer that contains the description of the BSP for the STM32 MPU devices
        │   │   ├── recipes-bsp
        │   │   │   ├── alsa                      Recipes for ALSA control configuration
        │   │   │   │   └── [...]
        │   │   │   ├── drivers                   Recipes for Vivante GCNANO GPU kernel drivers
        │   │   │   │   └── [...]
        │   │   │   ├── trusted-firmware-a        Recipes for TF-A
        │   │   │   │   └── [...]
        │   │   │   └── u-boot                    Recipes for U-Boot
        │   │   │       └── [...]
        │   │   ├── recipes-extended
        │   │   │   ├── m4projects                Recipes for STM32Cube MPU Package within the OpenSTLinux distribution
        │   │   │   │   └── [...]
          ├── openocd                 Recipes for Open On-Chip Debugging (OpenOCD) on Cortex-A or Cortex-M
    │   │   │   │   └── [...]
          └── stlink                  Recipes for STLink
    ├── recipes-graphics
        └── [...]
    │   │   ├── recipes-graphics
    │   │   ├── gcnano-userland           Recipes for Vivante libraries OpenGL ES, OpenVG and EGL (multi backend)
        │   │   │   │   └── [...]
        │   │   │   └── [...]
        │   │   ├── recipes-kernel
        │   │   │   └── linux                     Recipes for Linux kernel
        │   │   │       └── [...]
        │   │   │   └── linux-firmware            Recipes for Linux firmwares (example, Bluetooth firmware)
        │   │   │       └── [...]
        │   │   ├── recipes-st
        │   │   │   └── images
        │   │   │       ├── st-image-bootfs.bb    Recipes for the bootfs partition binary
        │   │   │       └──├── st-image-userfs.bb    Recipes for the userfs partition binary
        │   │   └── st-image-vendorfs.bb  Recipes for the vendorfs partition binary
        │   │   └── [...]
    
    │   ├── meta-st-stm32mp-addons  STMicroelectronics layer that helps managing the STM32CubeMX integration
        │       └── [...]
        │   └── scripts
        │       ├── envsetup.sh         Environment setup script for Distribution Package
        │       └── [...]

    
    ├── meta-timesys       Timesys layer for OpenEmbedded (standard)└── [...]
        └── openembedded-core  Core metadata for current versions of OpenEmbedded (standard)
            └── [...]

Appendix B shows the structure of the build directory.

6 Appendix A: directory structure after build (Developer Package)[edit]

Provided you have followed the recommendations of the README.HOW_TO.txt helper files to build the Linux kernel, the U-Boot and the TF-A, then the following new directories and files contain the build outputs.


Developer-Package
├── stm32mp1-openstlinux-45.1410-rockodunfell-mp1-1821-0703-0331  Source code for OpenSTLinux distribution
│   └── sources
│       └── arm-openstlinux_westonostl-linux-gnueabi
│           ├── linux-stm32mp-4.14-48      FIP_artifacts                  FIP images to flash
│           │   ├── fip/                               FIP images to flash, need to edit tsv file to point on that fip images
│           │   ├── arm-trusted-firmware/              Intermediate binaries of tf-a required to build fip images           Linux kernel installation directory
├── u-boot/                            Intermediate binaries of u-boot required to build fip images
│           │   ├── optee/                             Intermediate binaries of  optee required to build fip images

           ├── linux-5.10.10
              ├── build                               Linux kernel build directory
│           │   │   ├── install_artifact
│           │   │   │   ├── lib
│           │   │   │   │   └── modules
│           │   │   │   │       └── 4X.14Y.48Z
│           │   │   │   │           └── [...]           Kernel modules hierarchy (*.ko files)
│           │   │   │   └── boot
│           │   │   │       ├── stm32mp157cstm32mp157a-ddk1[*].dtb  Linux kernel device tree blob files for bootfs partition → STM32MP15 Discovery kits
STM32MP157A-DK1
│           │   │   │       ├── stm32mp157c-edk2[*].dtb  Linux kernel device tree blob files for bootfs partition → STM32MP15STM32MP157C-DK2
Evaluation boards
                    ├── stm32mp157c-ev1[*].dtb  Linux kernel device tree blob files for bootfs partition → STM32MP157C-EV1
        │   │          ├── uImage                  Linux kernel binary image file (with U-Boot wrapper) for bootfs partition
│           │   │   │       └── [...]
│           │   │   ├── vmlinux                         Debug symbol file for Linux kernel
│           │   │   └── [...]
│           │   └── [...]
│           ├── tfoptee-aos-stm32mp-13.5-release.AUTOINC+ed8112606c TF-A installation directory12.0.r1                  ├── build                        OP-TEE OS installation directory
       TF-A build directory  ├── build             ├── tf-a-bl2-trusted.elf                Debug symbol file for TF-A  trusted boot firmware stage                  ├── tf-a-bl32-trusted.elf     OP-TEE OS build directory           Debug symbol file for TF-A →  │   ├── tee-[header/pageable/pager]_v2-stm32mp157a-dk1-optee.stm32  Binaries for OP-TEE OS runtime services (trusted boot firmwarechain) stage STM32MP157A-DK1
│           │   │   ├── tf-atee-[header/pageable/pager]_v2-stm32mp157c-dk2-trustedoptee.stm32  TF-A binary for FSBL partition Binaries for OP-TEE OS runtime services (trusted boot chain) → STM32MP15 Discovery kits
STM32MP157C-DK2
│           │   │   ├── tf-atee-[header/pageable/pager]_v2-stm32mp157c-ev1-trustedoptee.stm32  TF-A binary for FSBL partition Binaries for OP-TEE OS runtime services (trusted boot chain) → STM32MP15 Evaluation boards
STM32MP157C-EV1
│           │   │   └── [...]
│           │   └── [...]
└── u├──tf-boota-trusted-stm32mp-20182.03-release.AUTOINC+f95ab1fb6e U-Boot4.r1                             TF-A installation directory    ├── build-stm32mp15_trusted_defconfig                     U-Boot                  TF-A build directory      ├── optee                                   TF-A, with OP-TEE OS
        │   │   │   ├── utf-boota-stm32mp157cbl2-dk2-trustedoptee.elf                  Debug symbol file for UTF-Boot A, with OP-TEE OS STM32MP15trusted Discoveryboot kitsfirmware stage
      │   ├── utf-boota-stm32mp157cstm32mp157a-dk2dk1-trustedoptee.stm32              U-BootTF-A binary for SSBLFSBL partition (trusted boot chain), with STM32MP15OP-TEE DiscoveryOS kits STM32MP157A-DK1
      │   ├── utf-boota-stm32mp157c-ev1dk2-trustedoptee.elfstm32    TF-A binary for FSBL partition (trusted boot chain), with OP-TEE OS  Debug symbol file for U-Boot → STM32MP15 Evaluation boards→ STM32MP157C-DK2               │   ├── utf-boota-stm32mp157c-ev1-trustedoptee.stm32              U-BootTF-A binary for SSBLFSBL partition (trusted boot chain), with STM32MP15OP-TEE EvaluationOS boards STM32MP157C-EV1
      │   └── [...]      └── [...]

7 Appendix B: directory structure after build (Distribution Package)[edit]

Provided you have followed the build method explained in OpenSTLinux distribution, then the following new directories contain the build outputs.

As long as you did not modify the source code:

  • the Template:Purple are the same as the ones available in the Starter Package: flash layout, binaries for bootfs, userfs and rootfs partitions
  • the files in grey are the same as the ones available in the Starter and Developer Packages: binaries for FSBL and SSBL partitions
  • the files in orange are the same as the ones available in the Developer Package: Linux kernel image and device tree blobs
  • the Template:Rose are only available in the Distribution Package: they concern the OP-TEE (see How to populate and boot a board with OP-TEE)
Distribution-Package/openstlinux-4.14-rocko-mp1-18-07-03/build-openstlinuxweston-stm32mp1/tmp-glibc/deploy
└── images
|   └── stm32mp1
|       ├── Template:Purpletrusted                                 TF-A, without OP-TEE OS
│           │   │       ├── tf-a-bl2-trusted.elf                Debug symbol file for TF-A  trusted boot firmware Flashstage
layout files (description of the partitions) for the supported flash devices |          ├── Template:Rosetf-a-bl32-trusted.elf              Flash layoutDebug symbol file for eMMC and OP-TEETF-ASTM32MP15trusted Evaluationboot boardsfirmware |stage
         ├── Template:Purple            Flash layout file for eMMC and ├── tf-a-stm32mp157a-dk1-trusted.stm32  TF-A binary for FSBL partition (trusted boot chain)STM32MP15STM32MP157A-DK1
Evaluation boards |         ├── Template:Rose      ├──  Flash layout filetf-a-stm32mp157c-dk2-trusted.stm32  TF-A binary for NANDFSBL Flashpartition and OP-TEE → STM32MP15 Evaluation boards
|(trusted boot chain) → STM32MP157C-DK2         ├── Template:Purple      Flash layout file for NAND Flash and ├── tf-a-stm32mp157c-ev1-trusted.stm32  TF-A binary for FSBL partition (trusted boot chain)STM32MP15STM32MP157C-EV1
Evaluation boards |         ├── Template:Rose      └── [...]
  Flash layout file for NOR Flash (and eMMC) and OP-TEE → STM32MP15 Evaluation boards
| │   └── [...]

│           └── u-boot-stm32mp-2020.10.r1                       U-Boot installation directory
├── Template:Purple            ├── build-basic        Flash layout file for NOR Flash (and eMMC) and trusted                 U-Boot build directory for basic boot chain
 STM32MP15 Evaluation boards |          ├── Template:Rose    Flash layout file for NOR Flash (and NAND Flasdh) and OP-TEE → STM32MP15 Evaluation boards
|├── u-boot-spl.stm32-stm32mp157a-dk1-basic  U-Boot binary for FSBL partition (basic boot chain) → STM32MP157A-DK1           │   ├── Template:Purple  Flash layout file for NOR Flash (and NAND Flasdh) and trusted boot chain → STM32MP15 Evaluation boards
|u-boot-spl.stm32-stm32mp157c-dk2-basic  U-Boot binary for FSBL partition (basic boot chain) → STM32MP157C-DK2
│               │   ├── u-boot-spl.stm32-stm32mp157c-ev1-basic  U-Boot binary for FSBL partition (basic boot chain) → STM32MP157C-EV1             │   ├── Template:Roseu-boot-stm32mp157a-dk1-basic.img        FlashU-Boot layoutbinary file for NORSSBL Flashpartition (andbasic microSDboot cardchain) and OPSTM32MP157A-TEEDK1
 STM32MP15 Evaluation boards |           │   ├── Template:Purpleu-boot-stm32mp157c-dk2-basic.img      Flash layout fileU-Boot binary for NORSSBL Flashpartition (andbasic microSDboot cardchain) and trusted boot chain → STM32MP15 Evaluation boards
|STM32MP157C-DK2
│               │   ├── u-boot-stm32mp157c-ev1-basic.img        U-Boot binary for SSBL partition (basic boot chain) → STM32MP157C-EV1             ├── Template:Purplebuild-optee            Flash layout file for microSD card and basic               U-Boot build directory for trusted boot chain, with STM32MP15OP-TEE DiscoveryOS
kits |          ├── Template:Rose      ├── u-boot-stm32mp157a-dk1-optee.elf     Flash layout  Debug symbol file for microSD card and U-Boot, with OP-TEE OS STM32MP15STM32MP157A-DK1
Discovery kits |          ├── Template:Purple     ├── u-boot-stm32mp157a-dk1-optee.stm32    Flash layout fileU-Boot binary for microSDSSBL cardpartition and (trusted boot chain), (recommended setup) → STM32MP15 Discovery kits
|with OP-TEE OS → STM32MP157A-DK1          ├── Template:Purple     ├── u-boot-stm32mp157c-dk2-optee.elf      Flash layout Debug symbol file for microSD card and basic boot chain → STM32MP15 Evaluation boards
|U-Boot, with OP-TEE OS → STM32MP157C-DK2
│               │   ├── u-boot-stm32mp157c-dk2-optee.stm32      U-Boot binary for SSBL partition (trusted boot chain), with OP-TEE OS → STM32MP157C-DK2          ├── Template:Rose     ├── u-boot-stm32mp157c-ev1-optee.elf      Flash layout Debug symbol file for microSD card and U-Boot, with OP-TEE OS STM32MP15STM32MP157C-EV1
Evaluation boards |          └── Template:Purple     ├── u-boot-stm32mp157c-ev1-optee.stm32    Flash layout fileU-Boot binary for microSDSSBL cardpartition and (trusted boot chain), (recommended setup) → STM32MP15 Evaluation boards
|with OP-TEE OS → STM32MP157C-EV1             │   └── [...]
|       ├── Template:Purple |      ├── build-trusted   └── Template:Purple |       ├── Template:Purple                  U-Boot build directory for trusted boot chain
                  ├── u-boot-stm32mp157a-dk1-trusted.elf      Debug symbol file for U-Boot splash screenSTM32MP157A-DK1
picture (file in BMP format with a .bin extension) for NOR Flash |       ├── Template:Purpleu-boot-stm32mp157a-dk1-trusted.stm32    U-Boot binary for SSBL partition (trusted boot chain) Binary forSTM32MP157A-DK1
bootfs partition |       ├── Template:Purple        ├── u-boot-stm32mp157c-dk2-trusted.elf   Binary    Debug symbol file for userfsU-Boot partition |STM32MP157C-DK2
      ├── Template:Purple            Binary for rootfs├── u-boot-stm32mp157c-dk2-trusted.stm32    U-Boot binary for SSBL partition |(trusted boot chain)  STM32MP157C-DK2
  ├── u-boot-stm32mp157c-d[*].dtbev1-trusted.elf      Debug symbol file for U-Boot  STM32MP157C-EV1
                  ├── u-boot-stm32mp157c-ev1-trusted.stm32    U-Boot binary for SSBL Linuxpartition kernel(trusted deviceboot treechain) blob filesSTM32MP157C-EV1
for bootfs partition  STM32MP15 Discovery kits |       ├── stm32mp157c-e[*].dtb  │   └── [...]               └── [...]

7 Appendix B: directory structure after build (Distribution Package)[edit]

Provided you have followed the build method explained in OpenSTLinux distribution, then the following new directories contain the build outputs.

As long as you did not modify the source code:

  • the files in STPurple are the same as the ones available in the Starter Package: flash layout, binaries for bootfs, rootfs, userfs and vendorfs partitions
  • the files in grey are the same as the ones available in the Starter and Developer Packages: binaries for FSBL and SSBL partitions, and for OP-TEE OS runtime services
  • the files in orange are the same as the ones available in the Developer Package: Linux kernel image and device tree blobs, and debug symbol files


Distribution-Package/openstlinux-5.10-dunfell-mp1-21-03-31 /build-openstlinuxweston-stm32mp/tmp-glibc/deploy
├── images
   └── stm32mp1
       ├── flashlayout_st-image-weston     Linux kernel device tree blob files for bootfs partition  STM32MP15 Evaluation boards |       ├── Template:Rose       Flash layout files (description of the partitions) for the supported flash devices
          ├── FlashLayout_emmc_stm32mp157c-ev1-optee.tsv            Debug symbol Flash layout file for TF-AeMMC and trusted boot chain, with OP-TEE OS trustedSTM32MP157C-EV1
boot firmware stage |       ├── tf-a-bl2-FlashLayout_emmc_stm32mp157c-ev1-trusted.elftsv            Flash layout file for eMMC and trusted boot chain  STM32MP157C-EV1
          ├── FlashLayout_nand-4-256_stm32mp157c-ev1-optee.tsv      Debug symbol Flash layout file for TF-ANAND Flash and trusted boot firmwarechain, stagewith |OP-TEE OS  STM32MP157C-EV1
   ├── tfFlashLayout_nand-a4-bl32256_stm32mp157c-ev1-trusted.elftsv      Flash layout file for NAND Flash and trusted boot chain  STM32MP157C-EV1
          ├── FlashLayout_nor-emmc_stm32mp157c-ev1-optee.tsv          DebugFlash symbollayout file for TF-ANOR Flash (and eMMC) and trusted boot firmwarechain, stagewith |OP-TEE OS  STM32MP157C-EV1
   ├── Template:Rose    │   ├── FlashLayout_nor-emmc_stm32mp157c-ev1-trusted.tsv        Flash layout file for NOR Flash (and eMMC) and trusted boot chain  STM32MP157C-EV1
      TF-A binary for FSBL partition (OP-TEE) → STM32MP15 Discovery kits
| │   ├── FlashLayout_nor-nand-4-256_stm32mp157c-ev1-optee.tsv    Flash layout file for NOR Flash (and NAND Flash) and trusted boot chain, with OP-TEE OS → STM32MP157C-EV1        ├── tfFlashLayout_nor-anand-4-256_stm32mp157c-dk2ev1-trusted.stm32tsv  Flash layout file for NOR Flash (and NAND Flash) and trusted boot chain  STM32MP157C-EV1
         TF-A binary for FSBL partition ( ├── FlashLayout_nor-sdcard_stm32mp157c-ev1-optee.tsv        Flash layout file for NOR Flash (and microSD card) and trusted boot chain) → STM32MP15 Discovery kits
|, with OP-TEE OS → STM32MP157C-EV1        ├── Template:RoseFlashLayout_nor-sdcard_stm32mp157c-ev1-trusted.tsv      Flash layout file for NOR Flash (and microSD card) and trusted boot chain  STM32MP157C-EV1
       TF-A binary for FSBL partition (OP-TEE) → STM32MP15 Evaluation boards
|│   ├── FlashLayout_sdcard_stm32mp157a-dk1-basic.tsv            Flash layout file for microSD card and basic boot chain → STM32MP157A-DK1        ├── tf-a-stm32mp157c-ev1-trusted.stm32FlashLayout_sdcard_stm32mp157a-dk1-optee.tsv            Flash layout file for microSD card and trusted boot chain, with OP-TEE OS  TFSTM32MP157A-ADK1
binary for FSBL partition (trusted boot chain)  STM32MP15 Evaluation boards
|├── FlashLayout_sdcard_stm32mp157a-dk1-trusted.tsv       ├── Template:Purple  Flash layout file for microSD card and trusted boot chain (recommended setup)  STM32MP157A-DK1
      U-Boot binary for FSBL partition ( │   ├── FlashLayout_sdcard_stm32mp157c-dk2-basic.tsv            Flash layout file for microSD card and basic boot chain)STM32MP15STM32MP157C-DK2
Discovery kits |        ├── Template:PurpleFlashLayout_sdcard_stm32mp157c-dk2-optee.tsv            Flash layout file for microSD card and trusted boot chain, Uwith OP-BootTEE binaryOS for FSBLSTM32MP157C-DK2
partition (basic boot chain)  STM32MP15 Evaluation boards |  ├── FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv    ├── Template:Purple     Flash layout file for microSD card and trusted boot chain (recommended setup)  STM32MP157C-DK2
         U-Boot binary for SSBL partition (basic boot chain) → STM32MP15 Discovery kits
|       ├── Template:Rose     ├── FlashLayout_sdcard_stm32mp157c-ev1-basic.tsv            Flash layout file for microSD card and basic boot chain → STM32MP157C-EV1          ├── FlashLayout_sdcard_stm32mp157c-ev1-optee.tsv           U-Boot binaryFlash layout file for SSBLmicroSD partition (card and trusted boot chain, with OP-TEE) OS STM32MP15STM32MP157C-EV1
Discovery kits |       ├── u-boot- └── FlashLayout_sdcard_stm32mp157c-dk2ev1-trusted.stm32tsv          Flash layout file for microSD card and trusted boot chain (recommended setup)   USTM32MP157C-BootEV1
binary for SSBL partition (trusted boot chain)  STM32MP15 Discovery kits
| └── [...]
│       ├── Template:Purplescripts
          └── create_sdcard_from_flashlayout.sh

       ├── st-image-bootfs-openstlinux-weston-stm32mp1.ext4       U-Boot binary    Binary for SSBLbootfs partition
(basic boot chain)  STM32MP15 Evaluation boards | ├── st-image-userfs-openstlinux-weston-stm32mp1.ext4      ├── Template:Rose     Binary for userfs partition
       ├── st-image-vendorfs-openstlinux-weston-stm32mp1.ext4         U-Boot binaryBinary for SSBLvendorfs partition
(OP-TEE) → STM32MP15 Evaluation boards
|│       ├── st-image-weston-openstlinux-weston-stm32mp1.ext4            ├── u-boot-stm32mp157c-ev1-trusted.stm32Binary for rootfs partition
│       ├── fip/                        U-Boot binary for SSBL partition (trusted boot chain)  STM32MP15 Evaluation boards |                   FIP images flashed according flashlayout selected├── uImage                                                      Linux kernel binary image file (with U-Boot wrapper) for bootfs partition
|       ├── vmlinux                                                     Debug symbol file for Linux kernel
|       └── [...]
└── [...]



<noinclude>

{{ArticleMainWriter | Jean-ChristopheT}}
{{ReviewersList | NathalieS, BernardP, RomualdJ, DenisH, FrancoisC}}
{{ArticleApprovedVersion | Jean-ChristopheT | NathalieS | Jean-ChristopheT - 20Jun'18 | AnneJ - 11Jun'18 - 7649 | 21Sep'18}} 

[[Category:STM32MPU Embedded Software distribution]]</noinclude>

==Article purpose==
This article aims at proposing a way to organize, on the host PC, the software packages of the different Packages (Starter, Developer and Distribution) for a given release of the STM32MPU Embedded Software distribution.

The main objective of the proposed organization is to keep together the software packages corresponding to a given release because there are links between them. For example:
* Flashing the image from the Starter Package on the board is mandatory before modifying the source code from the Developer Package. Both the image and the source code must belong to the same software release.
* The SDK (Developer Package) and the image (Starter Package) have both been generated from the Distribution Package. A software release thus guarantees that there is no misalignment between the different software packages.
An example of organization for tools is proposed [[Example of directory structure for tools|here]].
{{info|The objective of this article is to describe one organization among all the possible organizations. Feel free to organize the delivered Packages in any other way that would better match your way of working.}}
{{info|In practice, this article uses the release '''STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}''' for the STM32MPU Embedded Software distribution release issued on 03-July-2018 as an example to illustrate the proposed organization. If you are using a different release, the names of the directories and files might differ.}}{{UpdateNeededForNewRelease|The trees below shall be updated periodically, even if the information banner specifies that they might not be up-to-date}}

The directories are shown in {{Green|green}}, while the files are in black.

==Creating the structure==
* Create your <working directory> and assign a unique name to it (for example by including the release datename):
 {{PC$}} mkdir STM32MPU-Release-18-07-03
 {{PC$}} cd STM32MPU-Release-18-07-03STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}
 {{PC$}} cd STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}* Create the first-level directories that will host the software packages delivered through the STM32MPU Embedded Software distribution release note:
 {{PC$}} mkdir Starter-Package
 {{PC$}} mkdir Developer-Package
 {{PC$}} mkdir Distribution-Package
* The resulting directory structure looks as follows:
 {{Green|STM32MPU-Release-18-07-03}}STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}}}  {{Highlight|STM32MPU Embedded Software release}}
 ├── {{Green|Developer-Package}}          {{Highlight|Developer Package installation directory}}
 ├── {{Green|Distribution-Package}}       {{Highlight|Distribution Package installation directory}}
 └── {{Green|Starter-Package}}            {{Highlight|Starter Package installation directory}}

Once all software packages have been installed according to the instructions given in the STM32MPU Embedded Software distribution release note, the resulting directory structure looks as follows:
 {{Green|STM32MPU-Release-18-07-03}}                    STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}}}                           {{Highlight|STM32MPU Embedded Software release}}
 ├── {{Green|Developer-Package}}                                {{Highlight|Developer Package installation directory}}
 │   ├── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}  {{Highlight|Linux kernel, U-Boot and TF-A source code (OpenSTLinux distribution)}}
 │   ├── {{Green|SDK}}                                  {{Highlight|SDK for OpenSTLinux distribution}}
 │   └── {{Green|STM32Cube_FW_MP1_V0.4.0}}              {{Highlight|STM32Cube MPU PackageSDK}}                                          {{Highlight|SDK for OpenSTLinux distribution}}
 │   ├── {{Green|{{EcosystemRelease/Package | revision=latest | package=STM32CubeMP1 | request=path}}}}                      {{Highlight|STM32CubeMP1 Package}}
 │   └── {{Green|stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}}  {{Highlight|Linux kernel, U-Boot, TF-A and OP-TEE OS source code (OpenSTLinux distribution)}}
 ├── {{Green|Distribution-Package}}                             {{Highlight|Distribution Package installation directory}}
 │   └── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}}  {{Highlight|OpenSTLinux distribution (full source code and OpenEmbedded-based build framework)}}
 └── {{Green|Starter-Package}}                                  {{Highlight|Starter Package installation directory}}
     └── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}}  {{Highlight|Software image (binaries)}}

==Focus on the Starter Package directory==
The ''Starter-Package'' directory contains the software image for the STM32MPU Embedded Software distribution.

The trusted boot chain is the default solution delivered by STMicroelectronics. It includes the superset of features (for example, all Flash memory devices are supported). The basic boot chain is also upstreamed by STMicroelectronics, with a limited number of features (for example microSD card memory boot only). Refer to the [[Boot chainschain overview]] article for details.

Flash memory partitions (e.g. rootfs, bootfs...) are explained in the [[STM32MP15 Flash mapping]] article.

 {{Green|Starter-Package}}
 └── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}} }}└── {{Green|images}}
         └── {{Green|stm32mp1}}
             ├── {{Green|flashlayout_st-image-weston}}                                 {{Highlight|Flash layout files (description of the partitions) for the supported Flash devices and boards}}
             │   ├── FlashLayout_emmc_stm32mp157c-ev1-trustedoptee.tsv              {{Highlight|Flash layout file for eMMC and trusted boot chain → STM32MP15 Evaluation boards}}
             │   ├── FlashLayout_nand-4-256, with OP-TEE OS → STM32MP157C-EV1}}
             │   ├── FlashLayout_emmc_stm32mp157c-ev1-trusted.tsv      {{Highlight|Flash layout file for NAND Flash and trusted boot chain → STM32MP15 Evaluation boards}}
             │   ├── FlashLayout_nor-emmc_stm32mp157c-ev1-trusted.tsv              {{Highlight|Flash layout file for NOR Flash (and eMMC)eMMC and trusted boot chain → STM32MP15 Evaluation boardsSTM32MP157C-EV1}}
             │   ├── FlashLayout_nor-nand-4-256_stm32mp157c-ev1-trusted.tsv  {{Highlight|Flash layout file for NOR Flash (and NAND Flasdh) and trusted boot chain → STM32MP15 Evaluation boards}}
             │   ├── FlashLayout_nor-sdcard_stm32mp157c-ev1-trusted.tsv      sdcard_stm32mp157c-dk2-basic.tsv            {{Highlight|Flash layout file for NOR Flash (and microSD card) and trusted boot chain → STM32MP15 Evaluation boardsmicroSD card and basic boot chain → STM32MP157C-DK2}}
             │   ├── FlashLayout_sdcard_stm32mp157c-dk2-basicoptee.tsv            {{Highlight|Flash layout file for microSD card and basictrusted boot chain → STM32MP15 Discovery kits, with OP-TEE OS → STM32MP157C-DK2}}
             │   ├── FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv          {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') → STM32MP15 Discovery kitsSTM32MP157C-DK2}}
             │   ├── FlashLayout_sdcard_stm32mp157c-ev1-basicdk2-extensible.tsv            {{Highlight|Flash layout file for microSD card and basic boot chain → STM32MP15 Evaluation boards}}
             │   └── FlashLayout_sdcard_stm32mp157c-ev1-trusted.tsv          {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') → STM32MP15 Evaluation boards}}
             ├── {{Green|scripts}}
             │   └── create_sdcard_from_flashlayout.sh
             ├── splash.bin                                                  {{Highlight|U-Boot splash screen picture (file in BMP format with a ''.bin'' extension) for NOR Flash}}
             ├── st-image-bootfs-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''bootfs'' partition}}
             ├── st-image-bootfs-openstlinux-weston-stm32mp1.manifest
             ├── st-image-userfs-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''userfs'' partition}}
             ├── st-image-userfs-openstlinux-weston-stm32mp1.manifest
             ├── st-image-weston-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''rootfs'' partition}}
             ├── st-image-weston-openstlinux-weston-stm32mp1.license
             ├── st-image-weston-openstlinux-weston-stm32mp1-license_content.html
             ├── st-image-weston-openstlinux-weston-stm32mp1.manifest
             ├── st-image-weston-openstlinux-weston-stm32mp1_nand_4_256_multivolume.ubi
             ├── tf-a-stm32mp157c-dk2-trusted.stm32                          {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Discovery kits}}
             ├── tf-a-stm32mp157c-ev1-trusted.stm32                          {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Evaluation boards}}
             ├── u-boot-spl.stm32-stm32mp157c-dk2-basic                      {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP15 Discovery kits}}
             ├── u-boot-spl.stm32-stm32mp157c-ev1-basic                      {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP15 Evaluation boards}}
             ├── u-boot-stm32mp157c-dk2-basic.img                            {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP15 Discovery kits}}
             ├── u-boot-stm32mp157c-dk2-trusted.stm32                        {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP15 Discovery kits}}
             ├── u-boot-stm32mp157c-ev1-basic.img                            {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP15 Evaluation boards}}
             └── u-boot-stm32mp157c-ev1-trusted.stm32                        {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP15 Evaluation boards}}
with no userfs partition but a rootfs partition extended to sdcard size (recommended setup for [[Package_repository_for_OpenSTLinux_distribution|package repository]] service) → STM32MP157C-DK2}}
             │   └── [...]
             ├── {{Green|fip}}
             │   ├── fip-''<board>''-''<boot-type>''.bin             {{Highlight|Image to flash}}            
             ├── {{Green|arm-trusted-firmware}}
             │   ├── tf-a-''<board>''-''<boot-type>''.stm32          {{Highlight|Intermediate tf-a binary used to build fip image}}
             ├── {{Green|u-boot}}
             │   ├── u-boot-nodtb-''soc''.bin                    {{Highlight|Intermediate tf-a binary used to build fip image}}
             │   ├── u-boot-''<board>''-''<boot-type>''.dtb          {{Highlight|Intermediate tf-a dtb used to build fip image}}
             ├── {{Green|optee}}
             │   ├── tee-header_v2-''<board>''.bin
             ​│   ├── tee-pageable_v2--''<board>''.bin
            ​ │   ├── tee-pager_v2--''<board>''.bin
             ├── {{Green|kernel}}
             │   ├── vmlinux                                 {{Highlight|vmlinux copied in bootfs partition}}
             ├── {{Green|scripts}}
             │   └── create_sdcard_from_flashlayout.sh
             ├── st-image-bootfs-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''bootfs'' partition}}
             ├── st-image-bootfs-openstlinux-weston-stm32mp1.manifest
             ├── st-image-userfs-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''userfs'' partition}}
             ├── st-image-userfs-openstlinux-weston-stm32mp1.manifest
             ├── st-image-vendorfs-openstlinux-weston-stm32mp1.ext4          {{Highlight|Binary for ''vendorfs'' partition}}
             ├── st-image-weston-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''rootfs'' partition}}
             ├── st-image-weston-openstlinux-weston-stm32mp1.license
             ├── st-image-weston-openstlinux-weston-stm32mp1-license_content.html
             ├── st-image-weston-openstlinux-weston-stm32mp1.manifest
             └── [...]
==Focus on the Developer Package directory==
The ''Developer-Package'' directory contains:
* The source code for the following OpenSTLinux software packages (development for Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A processor):
** TF-A
** LinuxLinux<sup>&reg;</sup> kernel
** U-Boot
* * TF-A
** OP-TEE OS
* The debug symbol files for Linux kernel, U-Boot and , TF-A and OP-TEE OS* The SDK (for cross-development on an host PC)
* The STM32Cube MPU Package (developed for Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M processor)

 {{Green|Developer-Package}}
 ├── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}  {{Highlight|Source code for OpenSTLinux distribution}}
 │   ├── {{Green|images}}
 │   │   └── {{Green|stm32mp1}}                                {{Highlight|'''Debug symbol files installation directory'''}}
 │   │       ├── tf-a-bl2-trusted.elf                {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
 │   │       ├── tf-a-bl32-trusted.elf               {{Highlight|Debug symbol file for TF-A → runtime software stage}}
 │   │       ├── u-boot-stm32mp157c-dk2-trusted.elf  {{Highlight|Debug symbol file for U-Boot → STM32MP15 Discovery kits}}
 │   │       ├── u-boot-stm32mp157c-ev1-trusted.elf  {{Highlight|Debug symbol file for U-Boot → STM32MP15 Evaluation boards}}
 │   │       └── vmlinux                             {{Highlight|Debug symbol file for Linux kernel}}

 │   └── {{Green|sources}}
 │       └── {{Green|arm-openstlinux_weston-linux-gnueabi}}
 │           ├── {{Green|linux-stm32mp-4.14-48}}     {{Highlight|'''Linux kernel installation directory'''}}
 │           │   ├── [*].patch             {{Highlight|ST patches for Linux kernel}}
 │           │   ├── fragment-[*].config   {{Highlight|ST configuration fragments for Linux kernel}}
 │           │   ├── {{Green|linux-4.14.48}}         {{Highlight|'''Linux kernel source code directory'''}}
 │           │   ├── linux-4.14.48.tar.xz
 │           │   ├── README.HOW_TO.txt     {{Highlight|Helper file for Linux kernel management: '''reference''' for Linux kernel build}}
 │           │   └── series

 │           ├── {{Green|tf-a-stm32mp-1.5-release.AUTOINC+ed8112606c}}             {{Highlight|'''TF-A installation directory'''}}
 │           │   ├── [*].patch                                           {{Highlight|ST patches for TF-A}}
 │           │   ├── {{Green|git}}                                                 {{Highlight|'''TF-A source code directory'''}}
 │           │   ├── Makefile.sdk                                        {{Highlight|Makefile for the TF-A compilation}}
 │           │   ├── README.HOW_TO.txt                                   {{Highlight|Helper file for TF-A management: '''reference''' for TF-A build}}
 │           │   ├── series
 │           │   └── tf-a-stm32mp-1.5-release.AUTOINC+ed8112606c.tar.gz

 │           └── {{Green|u-boot-trusted-stm32mp-2018.03-release.AUTOINC+f95ab1fb6e}}             {{Highlight|'''U-Boot installation directory'''}}
 │               ├── [*].patch                                                         {{Highlight|ST patches for U-Boot}}
 │               ├── {{Green|git}}                                                               {{Highlight|'''U-Boot source code directory'''}}
 │               ├── Makefile.sdk                                                      {{Highlight|Makefile for the U-Boot compilation}}
 │               ├── README.HOW_TO.txt                                                 {{Highlight|Helper file for U-Boot management: '''reference''' for U-Boot build}}
 │               ├── series
 │               └── u-boot-trusted-stm32mp-2018.03-release.AUTOINC+f95ab1fb6e.tar.gz

 ├── {{Green|SDK}}                                                                           {{Highlight|'''SDK for OpenSTLinux distribution''': details in [[Standard SDK directory structure]] article}}
 │   ├── environment-setup-cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi  {{Highlight|'''Environment setup script''' for Developer Package}}
 │   ├── site-config-cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi
 │   ├── {{Green|sysroots}}
 │   │   ├── {{Green|cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi}}                {{Highlight|Target sysroot (libraries, headers, and symbols)}}
 │   │   │   └── [...]
 │   │   └── {{Green|x86_64-openstlinux_weston_sdk-linux}}                                   {{Highlight|Native sysroot (libraries, headers, and symbols)}}
 │   │       └── [...]
 │   └── version-cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi

 └── {{Green|STM32Cube_FW_MP1_V0.4.0}}                             {{Highlight|'''STM32Cube MPU Package''': details in [[STM32CubeMP1 Package#STM32CubeMP1 Package Content|STM32Cube MPU Package content]] article}}
     ├── COPYING
     ├── COPYING.BSD-3
     ├── {{Green|Drivers}}
     │   ├── {{Green|BSP}}                                         {{Highlight|BSP drivers for the supported STM32MPU boards}}
     │   │   └── [...]
     │   ├── {{Green|CMSIS}}
     │   │   └── [...]
     │   └── {{Green|STM32MP1xx_HAL_Driver}}                       {{Highlight|HAL drivers for the supported STM32MPU devices}}
     │       └── [...]
     ├── {{Green|_htmresc}}
     │   └── [...]
     ├── LLA_evaluation_for_STM32MPU_17-12-06_plain.txt
     ├── {{Green|Middlewares}}
     │   └── [...]
     ├── package.xml
     ├── {{Green|Projects}}
     │   ├── STM32CubeProjectsList.html                  {{Highlight|List of examples and applications for STM32Cube MP1 Package}}
     │   ├── {{Green|STM32MP15_DISCO}}                             {{Highlight|Set of examples and applications → STM32MP15 Discovery kits}}
     │   │   └── [...]
     │   └── {{Green|STM32MP15_EVAL}}                              {{Highlight|Set of examples and applications → STM32MP15 Evaluation boards}}
     │       └── [...]
     ├── Release_Notes.html                              {{Highlight|Release note for STM32Cube MP1 Package}}
     └── {{Green|Utilities}}
         └── [...]
SDK}}                                                                             {{Highlight|'''SDK for OpenSTLinux distribution''': details in [[Standard SDK directory structure]] article}}
 │   ├── environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi  {{Highlight|'''Environment setup script''' for Developer Package}}
 │   ├── site-config-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
 │   ├── {{Green|sysroots}}
 │   │   ├── {{Green|cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi}}                {{Highlight|Target sysroot (libraries, headers, and symbols)}}
 │   │   │   └── [...]
 │   │   └── {{Green|x86_64-ostl_sdk-linux}}                                     {{Highlight|Native sysroot (libraries, headers, and symbols)}}
 │   │       └── [...]
 │   └── version-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

 ├── {{Green|{{EcosystemRelease/Package | revision=latest | package=STM32CubeMP1 | request=path}}}}             {{Highlight|'''STM32CubeMP1 Package''': details in [[STM32CubeMP1 Package#STM32CubeMP1 Package Content|STM32CubeMP1 Package content]] article}}
 │   ├── {{Green|Drivers}}
 │   │   ├── {{Green|BSP}}                         {{Highlight|BSP drivers for the supported STM32MPU boards}}
 │   │   │   └── [...]
 │   │   ├── {{Green|CMSIS}}
 │   │   │   └── [...]
 │   │   └── {{Green|STM32MP1xx_HAL_Driver}}       {{Highlight|HAL drivers for the supported STM32MPU devices}}
 │   │       └── [...]
 │   ├── {{Green|_htmresc}}
 │   │   └── [...]
 │   ├── License.md                      {{Highlight|License types for the components}}
 │   ├── {{Green|Middlewares}}                     {{Highlight|Middlewares used by the examples and applications}}
 │   │   └── [...]
 │   ├── package.xml
 │   ├── {{Green|Projects}}
 │   │   ├── STM32CubeProjectsList.html  {{Highlight|List of examples and applications for STM32CubeMP1 Package}}
 │   │   ├── {{Green|STM32MP157C-DK2}}             {{Highlight|Set of examples and applications → STM32MP157C-DK2}}
 │   │   │   └── [...]
 │   │   └── {{Green|STM32MP157C-EV1}}             {{Highlight|Set of examples and applications → STM32MP157C-EV1}}
 │   │       └── [...]
 │   ├── Readme.md
 │   ├── Release_Notes.html              {{Highlight|Release note for STM32CubeMP1 Package}}
 │   └── {{Green|Utilities}}
 │       └── [...]

 └── {{Green|stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}}     {{Highlight|Source code for OpenSTLinux distribution}}
     ├── {{Green|images}}
     │   └── {{Green|stm32mp1}}                                {{Highlight|'''Debug symbol files installation directory'''}}
     │       ├── tf-a-bl2-optee.elf                  {{Highlight|Debug symbol file for TF-A, with OP-TEE OS → trusted boot firmware stage}}
     │       ├── tf-a-bl2-trusted.elf                {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
     │       ├── tf-a-bl32-trusted.elf               {{Highlight|Debug symbol file for TF-A → runtime software stage}}
     │       ├── u-boot-stm32mp157a-dk1-optee.elf    {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157A-DK1}}
     │       ├── u-boot-stm32mp157a-dk1-trusted.elf  {{Highlight|Debug symbol file for U-Boot → STM32MP157A-DK1}}
     │       ├── u-boot-stm32mp157c-dk2-optee.elf    {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157C-DK2}}
     │       ├── u-boot-stm32mp157c-dk2-trusted.elf  {{Highlight|Debug symbol file for U-Boot → STM32MP157C-DK2}}
     │       ├── u-boot-stm32mp157c-ev1-optee.elf    {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157C-EV1}}
     │       ├── u-boot-stm32mp157c-ev1-trusted.elf  {{Highlight|Debug symbol file for U-Boot → STM32MP157C-EV1}}
     │       ├── vmlinux                             {{Highlight|Debug symbol file for Linux kernel}}
     │       └── [...]

     └── {{Green|sources}}
         └── {{Green|arm-ostl-linux-gnueabi}}
             ├── {{Green|'''FIP_artifacts'''
             ├── fip/                     {{Highlight|fip images of Stater Package}}
             ├── arm-trusted-firmware/    {{Highlight|intermediate tf-a binaries from Stater Package (needed to build any fip image}}
             ├── optee/                   {{Highlight|intermediate optee binaries from Stater Package (needed to build any fip image}}
             └── u-boot/                  {{Highlight|intermediate u-boot binaries from Stater Package (needed to build any fip image}}}}

             ├── {{Green|{{EcosystemRelease/Package | revision=latest | package=Linux kernel source | request=path}}
             │   ├── [*].patch            {{Highlight|ST patches for Linux kernel}}
             │   ├── fragment-[*].config  {{Highlight|ST configuration fragments for Linux kernel}}
             │   ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=Linux kernel source | request=path}}}}         {{Highlight|'''Linux kernel source code directory'''}}
             │   ├── {{EcosystemRelease/Package | revision=latest | package=Linux kernel source | request=name}}
             │   ├── README.HOW_TO.txt    {{Highlight|Helper file for Linux kernel management: '''reference''' for Linux kernel build}}
             │   └── series

             ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=OP-TEE source  | request=path}}}}  {{Highlight|'''OP-TEE OS installation directory'''}}
             │   ├── [*].patch              {{Highlight|ST patches for OP-TEE OS}}
             │   ├── {{EcosystemRelease/Package | revision=latest| package=OP-TEE source | request=path}}
             │   ├── Makefile.sdk           {{Highlight|Makefile for the OP-TEE OS compilation}}
             │   ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=OP-TEE source | request=name}}}}         {{Highlight|'''OP-TEE OS source code directory'''}}
             │   ├── README.HOW_TO.txt      {{Highlight|Helper file for OP-TEE OS management: '''reference''' for OP-TEE OS build}}
             │   └── series

             ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=TF-A source | request=path}}}}           {{Highlight|'''TF-A installation directory'''}}
             │   ├── [*].patch                 {{Highlight|ST patches for TF-A}}
             │   ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=TF-A source | request=path}}}}  {{Highlight|'''TF-A source code directory'''}}
             │   ├── Makefile.sdk              {{Highlight|Makefile for the TF-A compilation}}
             │   ├── README.HOW_TO.txt         {{Highlight|Helper file for TF-A management: '''reference''' for TF-A build}}
             │   ├── series
             │   └── {{EcosystemRelease/Package | revision=latest| package=TF-A source | request=name}}

             └── {{Green|{{EcosystemRelease/Package | revision=latest| package=U-Boot source | request=path}}}}  {{Highlight|'''U-Boot installation directory'''}}
                 ├── [*].patch              {{Highlight|ST patches for U-Boot}}
                 ├── Makefile.sdk           {{Highlight|Makefile for the U-Boot compilation}}
                 ├── README.HOW_TO.txt      {{Highlight|Helper file for U-Boot management: '''reference''' for U-Boot build}}
                 ├── series
                 ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=U-Boot source | request=path}}}}  {{Highlight|'''U-Boot installation directory'''}}}}         {{Highlight|'''U-Boot source code directory'''}}
                 └── {{EcosystemRelease/Package | revision=2.0.0 | package=U-Boot source | request=name}}
[[#Appendix A: directory structure after build (Developer Package)|Appendix A]] shows the structure of the Linux kernel, U-Boot and , TF-A and OP-TEE OS installation directories after these software packages have been built.

==Focus on the Distribution Package directory==
The ''Distribution-Package'' directory contains all the OpenEmbedded layers required to get the source code of any STM32MPU Embedded Software component, as well as a build framework based on OpenEmbedded.

 {{Green|Distribution-Package}}
 └── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}  {{Highlight|OpenSTLinux distribution}}{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}}  {{Highlight|'''OpenSTLinux distribution'''}}
     └── {{Green|layers}}├── {{Green|meta-openembedded}}  {{Highlight|Collection of layers for the OpenEmbedded-Core universe ([[OpenEmbedded]] standard)}}    │   └── [...]    ├── {{Green|meta-qt5}}           {{Highlight|QT5 layer for OpenEmbedded (standard)}}    │   └── [...]
    ├── {{Green|meta-st}}    │   ├── {{Green|meta-st-openstlinux}}                   {{Highlight|STMicroelectronics layer that contains the settings of the frameworks and images for the OpenSTLinux distribution}}│   │   ├── {{Green|recipes-samples}}
     │   │   │   └── {{Green|images}}
     │   │   │       ├── st-example-image-qt.bb    {{Highlight|ST example of image based on QT framework}}
     │   │   │       ├── st-example-image-x11.bb   {{Highlight|ST example of image based on X11}}
     │   │   │       └── st-example-image-xfce.bb  {{Highlight|ST example of image based on XFCE framework}}    │   │   ├── {{Green|recipes-st}}
         │   │   │   ├── {{Green|recipes-st}}
     │   │   │   ├── {{Green|images}}
     │   │   │   │   images}}
         │   │   │   │   ├── st-image-core.bb          {{Highlight|Core image for OpenSTLinux distribution}}│   │   │   │   ├── st-image.inc
     │   │   │   │       │   │   │   │   └── st-image-weston.bb        {{Highlight|Weston image with basic Wayland support for OpenSTLinux distribution: '''recommended setup'''setup}}}}│   │   │   └── {{Green|packagegroups}}    │   │   │       └── [...]    │   │   └── [...]
    │   ├── {{Green|meta-st-stm32mp}}                   {{Highlight|STMicroelectronics layer that contains the description of the BSP for the STM32 MPU devices}}    │   │   ├── {{Green|recipes-bsp}}    │   │   │   ├── {{Green|alsa}}                      {{Highlight|Recipes for ALSA control configuration}}    │   │   │   │   └── [...]    │   │   │   ├── {{Green|drivers}}                   {{Highlight|Recipes for Vivante GCNANO GPU kernel drivers}}    │   │   │   │   └── [...]    │   │   │   ├── {{Green|trusted-firmware-a}}        {{Highlight|Recipes for TF-A}}    │   │   │   │   └── [...]    │   │   │   └── {{Green|u-boot}}                    {{Highlight|Recipes for U-Boot}}    │   │   │       └── [...]    │   │   ├── {{Green|recipes-extended}}    │   │   │   ├── {{Green|m4projects}}                {{Highlight|Recipes for STM32Cube MPU Package within the OpenSTLinux distribution}}    │   │   │   │   └── [...]│   │   │   ├── {{Green|openocd}}                 {{Highlight|Recipes for Open On-Chip Debugging (OpenOCD) on Cortex-A or Cortex-M}}
     │   │   │   │   └── [...]
     │   │   │   └── {{Green|stlink}}                  {{Highlight|Recipes for STLink}}
     │   │   │       └── [...]
     │   │       │   │   │   └── [...]
         │   │   ├── {{Green|recipes-graphics}}    │   │   │   ├── {{Green|gcnano-userland}}           {{Highlight|Recipes for Vivante libraries OpenGL ES, OpenVG and EGL (multi backend)}}    │   │   │   │   └── [...]    │   │   │   └── [...]    │   │   ├── {{Green|recipes-kernel}}    │   │   │   └── {{Green|linux}}                     {{Highlight|Recipes for Linux kernel}}    │   │   │       └── [...]    │   │   │   └── {{Green|linux-firmware}}            {{Highlight|Recipes for Linux firmwares (example, Bluetooth firmware)}}    │   │   │       └── [...]    │   │   ├── {{Green|recipes-st}}    │   │   │   └── {{Green|images}}    │   │   │       ├── st-image-bootfs.bb    {{Highlight|Recipes for the ''bootfs'' partition binary}}    │   │   │       └──├── st-image-userfs.bb    {{Highlight|Recipes for the ''userfs'' partition binary}}    │   │   └── [...]
│       └── st-image-vendorfs.bb  {{Highlight|Recipes for the ''vendorfs'' partition binary}}
         │   │   └── [...]
│   ├── {{Green|meta-st-stm32mp-addons}}  {{Highlight|STMicroelectronics layer that helps managing the STM32CubeMX integration}}    │       └── [...]    │   └── {{Green|scripts}}    │       ├── envsetup.sh         {{Highlight|'''Environment setup script''' for Distribution Package}}    │       └── [...]
└── {{Green|openembedded-core}}  {{Highlight|Core metadata for current versions of [[OpenEmbedded]] (standard)}}
         └── [...]

{{InternalInfo| Additional layer for internal usage
└── {{Green|st-hands-on}}  {{Highlight|STMicroelectronics layer that contains the reference source code for the hands-on}}
}}

[[     ├── {{Green|meta-timesys}}       {{Highlight|Timesys layer for OpenEmbedded (standard)}}
         │   └── [...]
         └── {{Green|openembedded-core}}  {{Highlight|Core metadata for current versions of [[OpenEmbedded]] (standard)}}
             └── [...]

[[#Appendix B: directory structure after build (Distribution Package)|Appendix B]] shows the structure of the build directory.

==Appendix A: directory structure after build (Developer Package)==
Provided you have followed the recommendations of the ''README.HOW_TO.txt'' helper files to build the Linux kernel, the U-Boot and the TF-A, then the following {{Green|new directories and files}} contain the build outputs.

 Developer-Package
 ├── openstlinux-4.14-rocko-mp1-18-07-03 stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}  {{Highlight|Source code for OpenSTLinux distribution}}
 │   └── sources
 │       └── arm-openstlinux_westonostl-linux-gnueabi
 │           ├── linux-stm32mp-4.14-48                 {{Highlight|'''Linux kernel installation directoryFIP_artifacts                  {{Highlight|'''FIP images to flash'''}}
 │           │   ├── {{Green|fip/}}                               {{Highlight|'''FIP images to flash, need to edit tsv file to point on that fip images'''}}
 │           │   ├── {{Green|arm-trusted-firmware/}}              {{Highlight|'''Intermediate binaries of tf-a required to build fip images'''}}
 │           │   ├── {{Green|u-boot/}}                            {{Highlight|'''Intermediate binaries of u-boot required to build fip images'''}}
 │           │   ├── {{Green|build}}                             {{optee/}}                             {{Highlight|'''Intermediate binaries of  optee required to build fip images'''}}

 │           ├── {{EcosystemRelease/Package | revision=latest| package=Linux kernel source   | request=path}}
 │           │   ├── {{Green|build}}                               {{Highlight|'''Linux kernel build directory'''}}
 │           │   │   ├── {{Green|install_artifact}}
 │           │   │   │   ├── {{Green|lib}}
 │           │   │   │   │   └── {{Green|modules}}
 │           │   │   │   │       └── {{Green|4.14.48''X.Y.Z''}}
 │           │   │   │   │           └── {{Green|[...]}}           {{Highlight|Kernel modules hierarchy (''*.ko'' files)}}
 │           │   │   │   └── {{Green|boot}}
 │           │   │   │       ├── {{Green|stm32mp157c-dstm32mp157a-dk1[*].dtb}}  {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP15 Discovery kitsSTM32MP157A-DK1}}
 │           │   │   │       ├── {{Green|stm32mp157c-edk2[*].dtb}}  {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP15 Evaluation boards}}STM32MP157C-DK2}}
 │           │   │   │       ├── {{Green|stm32mp157c-ev1[*].dtb}}  {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP157C-EV1}}│           │   │   │       ├── {{Green|uImage}}                  {{Highlight|Linux kernel binary image file (with U-Boot wrapper) for ''bootfs'' partition}}
 │           │   │   │       └── {{Green|[...]}}
 │           │   │   ├── {{Green|vmlinux}}                         {{Highlight|Debug symbol file for Linux kernel}}
 │           │   │   └── {{Green|[...]}}
 │           │   └── [...]

 │           ├── tf-a-stm32mp-1.5-release.AUTOINC+ed8112606c {{Highlight|'''TF-A installation directory'''}}
 │           │   ├── {{Green|build}}                                   {{Highlight|'''TF-A build directory'''}}
 │           │   │   ├── {{Green|tf-a-bl2-trusted.elf}}                {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
 │           │   │   ├── {{Green|tf-a-bl32-trusted.elf}}               {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage{{EcosystemRelease/Package | revision=latest| package=OP-TEE source  | request=path}}                                           {{Highlight|'''OP-TEE OS installation directory'''}}
 │           │   ├── {{Green|build}}                                                           {{Highlight|'''OP-TEE OS build directory'''}}
 │           │   │   ├── {{Green|tee-[header/pageable/pager]_v2-stm32mp157a-dk1-optee.stm32}}  {{Highlight|Binaries for OP-TEE OS runtime services (trusted boot chain) → STM32MP157A-DK1}}
 │           │   │   ├── {{Green|tf-a-stm32mp157c-dk2-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition tee-[header/pageable/pager]_v2-stm32mp157c-dk2-optee.stm32}}  {{Highlight|Binaries for OP-TEE OS runtime services (trusted boot chain) → STM32MP15 Discovery kitsSTM32MP157C-DK2}}
 │           │   │   ├── {{Green|tf-a-stm32mp157c-ev1-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition tee-[header/pageable/pager]_v2-stm32mp157c-ev1-optee.stm32}}  {{Highlight|Binaries for OP-TEE OS runtime services (trusted boot chain) → STM32MP15 Evaluation boardsSTM32MP157C-EV1}}
 │           │   │   └── {{Green|[...]}}
 │           │   └── [...]

 │           └── u-boot-trusted-stm32mp-2018.03-release.AUTOINC+f95ab1fb6e {{Highlight|'''U-Boot installation directory'''}}
 │               ├── {{Green|build-stm32mp15_trusted_defconfig}}                     {{Highlight|'''U-Boot build directory'''}}
 │               │   ├── {{Green|u-boot-stm32mp157c-dk2-trusted.elf}}                ├──{{EcosystemRelease/Package | revision=latest| package=TF-A source | request=path}}                             {{Highlight|'''TF-A installation directory'''}}
 │           │   ├── {{Green|build}}                                       {{Highlight|'''TF-A build directory'''}}
 │           │   │   ├── {{Green|optee}}                                   {{Highlight|TF-A, with OP-TEE OS}}
 │           │   │   │   ├── {{Green|tf-a-bl2-optee.elf}}                  {{Highlight|Debug symbol file for U-Boot → STM32MP15 Discovery kits}}
 │               │   ├── {{Green|u-boot-stm32mp157c-dk2-trusted.stm32}}              {{Highlight|U-Boot binary for ''SSBLTF-A, with OP-TEE OS → trusted boot firmware stage}}
 │           │   │   │   ├── {{Green|tf-a-stm32mp157a-dk1-optee.stm32}}    {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Discovery kits}}
 │               │   ├── {{Green|u-boot-stm32mp157c-ev1-trusted.elf}}                {{Highlight|Debug symbol file for U-Boot → STM32MP15 Evaluation boards}}
 │               │   ├── {{Green|u-boot-stm32mp157c-ev1-trusted.stm32}}              {{Highlight|U-Boot binary for ''SSBL, with OP-TEE OS → STM32MP157A-DK1}}
 │           │   │   │   ├── {{Green|tf-a-stm32mp157c-dk2-optee.stm32}}    {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157C-DK2}}
 │           │   │   │   ├── {{Green|tf-a-stm32mp157c-ev1-optee.stm32}}    {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Evaluation boards}}
 │               , with OP-TEE OS → STM32MP157C-EV1}}
 │           │   │   │   └── {{Green|[...]}}
 │               └── [...]

==Appendix B: directory structure after build (Distribution Package)==
Provided you have followed the build method explained in [[OpenSTLinux distribution]], then the following {{Green|new directories}} contain the build outputs.

As long as you did not modify the source code:
* the {{Purple|files in purple}} are the same as the ones available in the '''Starter Package''': flash layout, binaries for ''bootfs'', ''userfs'' and ''rootfs'' partitions
* the {{Grey|files in grey}} are the same as the ones available in the '''Starter and Developer Packages''': binaries for ''FSBL'' and ''SSBL'' partitions
* the {{Orange|files in orange}} are the same as the ones available in the '''Developer Package''': Linux kernel image and device tree blobs
* the {{Rose|files in pink}} are only available in the '''Distribution Package''': they concern the OP-TEE (see [[How to populate and boot a board with OP-TEE]])

 Distribution-Package/openstlinux-4.14-rocko-mp1-18-07-03/build-openstlinuxweston-stm32mp1/{{Green|tmp-glibc/deploy}}
 └── {{Green|images}}
 |   └── {{Green|stm32mp1}}
 |       ├── {{Purple|flashlayout_st-image-weston}}                                 {{Highlight|Flash layout files (description of the partitions) for the supported flash devices}}
 |       │   ├── {{Rose|FlashLayout_emmc_stm32mp157c-ev1-optee.tsv}}              {{Highlight|Flash layout file for eMMC and OP-TEE → STM32MP15 Evaluation boards}}
 |       │   ├── {{Purple|FlashLayout_emmc_stm32mp157c-ev1-trusted.tsv}}            {{Highlight|Flash layout file for eMMC and trusted boot chain → STM32MP15 Evaluation boards}}
 |       │   ├── {{Rose|FlashLayout_nand-4-256_stm32mp157c-ev1-optee.tsv}}        {{Highlight|Flash layout file for NAND Flash and OP-TEE → STM32MP15 Evaluation boards}}
 |       │   ├── {{Purple|FlashLayout_nand-4-256_stm32mp157c-ev1-trusted.tsv}}      {{Highlight|Flash layout file for NAND Flash and trusted boot chain → STM32MP15 Evaluation boards}}
 |       │   ├── {{Rose|FlashLayout_nor-emmc_stm32mp157c-ev1-optee.tsv}}          {{Highlight|Flash layout file for NOR Flash (and eMMC) and OP-TEE → STM32MP15 Evaluation boards}}
 |       │   ├── {{Purple|FlashLayout_nor-emmc_stm32mp157c-ev1-trusted.tsv}}        {{Highlight|Flash layout file for NOR Flash (and eMMC) and trusted boot chain → STM32MP15 Evaluation boards}}
 |       │   ├── {{Rose|FlashLayout_nor-nand-4-256_stm32mp157c-ev1-optee.tsv}}    {{Highlight|Flash layout file for NOR Flash (and NAND Flasdh) and OP-TEE → STM32MP15 Evaluation boards}}
 |       │   ├── {{Purple|FlashLayout_nor-nand-4-256_stm32mp157c-ev1-trusted.tsv}}  {{Highlight|Flash layout file for NOR Flash (and NAND Flasdh) and trusted boot chain → STM32MP15 Evaluation boards}}
 |       │   ├── {{Rose|FlashLayout_nor-sdcard_stm32mp157c-ev1-optee.tsv}}        {{Highlight|Flash layout file for NOR Flash (and microSD card) and OP-TEE → STM32MP15 Evaluation boards}}
 |       │   ├── {{Purple|FlashLayout_nor-sdcard_stm32mp157c-ev1-trusted.tsv}}      {{Highlight|Flash layout file for NOR Flash (and microSD card) and trusted boot chain → STM32MP15 Evaluation boards}}
 |       │   ├── {{Purple|FlashLayout_sdcard_stm32mp157c-dk2-basic.tsv}}            {{Highlight|Flash layout file for microSD card and basic boot chain → STM32MP15 Discovery kits}}
 |       │   ├── {{Rose|FlashLayout_sdcard_stm32mp157c-dk2-optee.tsv}}            {{Highlight|Flash layout file for microSD card and OP-TEE → STM32MP15 Discovery kits}}
 |       │   ├── {{Purple|FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv}}          {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') → STM32MP15 Discovery kits}}
 |       │   ├── {{Purple|FlashLayout_sdcard_stm32mp157c-ev1-basic.tsv}}            {{Highlight|Flash layout file for microSD card and basic boot chain → STM32MP15 Evaluation boards}}

 |       │   ├── {{Rose|FlashLayout_sdcard_stm32mp157c-ev1-optee.tsv}}            {{Highlight|Flash layout file for microSD card and OP-TEE → STM32MP15 Evaluation boards}}
 |       │   └── {{Purple|FlashLayout_sdcard_stm32mp157c-ev1-trusted.tsv}}          {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') → STM32MP15 Evaluation boards}}
 |       │   └── [...]
 |       ├── {{Purple|scripts}}
 |       │   └── {{Purple|create_sdcard_from_flashlayout.sh}}
 |       ├── {{Purple|splash.bin}}                                                  {{Highlight|U-Boot splash screen picture (file in BMP format with a ''.bin'' extension) for NOR Flash}}
 |       ├── {{Purple|st-image-bootfs-openstlinux-weston-stm32mp1.ext4}}            {{Highlight|Binary for ''bootfs'' partition}}
 |       ├── {{Purple|st-image-userfs-openstlinux-weston-stm32mp1.ext4}}            {{Highlight|Binary for ''userfs'' partition}}
 |       ├── {{Purple|st-image-weston-openstlinux-weston-stm32mp1.ext4}}            {{Highlight|Binary for ''rootfs'' partition}}
 |       ├── {{Orange|stm32mp157c-d[*].dtb}}                                        {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP15 Discovery kits}}
 |       ├── {{Orange|stm32mp157c-e[*].dtb}}                                        {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP15 Evaluation boards}}
 |       ├── {{Rose|tf-a-bl2-optee.elf}}                                          {{Highlight|Debug symbol file for TF-A and OP-TEE → trusted boot firmware stage}}
 |       ├── {{Orange|tf-a-bl2-trusted.elf}}                                        {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
 |       ├── {{Orange|tf-a-bl32-trusted.elf}}                                       {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
 |       ├── {{Rose|tf-a-stm32mp157c-dk2-optee.stm32}}                            {{Highlight|TF-A binary for ''FSBL'' partition (OP-TEE) → STM32MP15 Discovery kits}}
 |       ├── {{Grey|tf-a-stm32mp157c-dk2-trusted.stm32}}                          {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Discovery kits}}
 |       ├── {{Rose|tf-a-stm32mp157c-ev1-optee.stm32}}                            {{Highlight|TF-A binary for ''FSBL'' partition (OP-TEE) → STM32MP15 Evaluation boards}}
 |       ├── {{Grey|tf-a-stm32mp157c-ev1-trusted.stm32}}                          {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Evaluation boards}}

 |       ├── {{Purple|u-boot-spl.stm32-stm32mp157c-dk2-basic}}                      {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP15 Discovery kits}}
 |       ├── {{Purple|u-boot-spl.stm32-stm32mp157c-ev1-basic}}                      {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP15 Evaluation boards}}
 |       ├── {{Purple|u-boot-stm32mp157c-dk2-basic.img}}                            {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP15 Discovery kits}}
 |       ├── {{Rose|u-boot-stm32mp157c-dk2-optee.stm32}}                          {{Highlight|U-Boot binary for ''SSBL'' partition (OP-TEE) → STM32MP15 Discovery kits}}
 |       ├── {{Grey|u-boot-stm32mp157c-dk2-trusted.stm32}}                        {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP15 Discovery kits}}
 |       ├── {{Purple|u-boot-stm32mp157c-ev1-basic.img}}                            {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP15 Evaluation boards}}
 |       ├── {{Rose|u-boot-stm32mp157c-ev1-optee.stm32}}                          {{Highlight|U-Boot binary for ''SSBL'' partition (OP-TEE) → STM32MP15 Evaluation boards}}
 |       ├── {{Grey|u-boot-stm32mp157c-ev1-trusted.stm32}}                        {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP15 Evaluation boards}}
 |│   │   └── {{Green|trusted}}                                 {{Highlight|TF-A, without OP-TEE OS}}
 │           │   │       ├── {{Green|tf-a-bl2-trusted.elf}}                {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
 │           │   │       ├── {{Green|tf-a-bl32-trusted.elf}}               {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
 │           │   │       ├── {{Green|tf-a-stm32mp157a-dk1-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP157A-DK1}}
 │           │   │       ├── {{Green|tf-a-stm32mp157c-dk2-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP157C-DK2}}
 │           │   │       ├── {{Green|tf-a-stm32mp157c-ev1-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP157C-EV1}}
 │           │   │       └── {{Green|[...]}}
 │           │   └── [...]

 │           └── {{EcosystemRelease/Package | revision=latest| package=U-Boot source | request=path}}                       {{Highlight|'''U-Boot installation directory'''}}
 │               ├── {{Green|build-basic}}                                 {{Highlight|'''U-Boot build directory for basic boot chain'''}}
 │               │   ├── {{Green|u-boot-spl.stm32-stm32mp157a-dk1-basic}}  {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP157A-DK1}}
 │               │   ├── {{Green|u-boot-spl.stm32-stm32mp157c-dk2-basic}}  {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP157C-DK2}}
 │               │   ├── {{Green|u-boot-spl.stm32-stm32mp157c-ev1-basic}}  {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP157C-EV1}}
 │               │   ├── {{Green|u-boot-stm32mp157a-dk1-basic.img}}        {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP157A-DK1}}
 │               │   ├── {{Green|u-boot-stm32mp157c-dk2-basic.img}}        {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP157C-DK2}}
 │               │   ├── {{Green|u-boot-stm32mp157c-ev1-basic.img}}        {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP157C-EV1}}
 │               ├── {{Green|build-optee}}                                 {{Highlight|'''U-Boot build directory for trusted boot chain, with OP-TEE OS'''}}
 │               │   ├── {{Green|u-boot-stm32mp157a-dk1-optee.elf}}        {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157A-DK1}}
 │               │   ├── {{Green|u-boot-stm32mp157a-dk1-optee.stm32}}      {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157A-DK1}}
 │               │   ├── {{Green|u-boot-stm32mp157c-dk2-optee.elf}}        {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157C-DK2}}
 │               │   ├── {{Green|u-boot-stm32mp157c-dk2-optee.stm32}}      {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157C-DK2}}
 │               │   ├── {{Green|u-boot-stm32mp157c-ev1-optee.elf}}        {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157C-EV1}}
 │               │   ├── {{Green|u-boot-stm32mp157c-ev1-optee.stm32}}      {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157C-EV1}}
 │               │   └── {{Green|[...]}}
 │               ├── {{Green|build-trusted}}                               {{Highlight|'''U-Boot build directory for trusted boot chain'''}}
 │               │   ├── {{Green|u-boot-stm32mp157a-dk1-trusted.elf}}      {{Highlight|Debug symbol file for U-Boot → STM32MP157A-DK1}}
 │               │   ├── {{Green|u-boot-stm32mp157a-dk1-trusted.stm32}}    {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP157A-DK1}}
 │               │   ├── {{Green|u-boot-stm32mp157c-dk2-trusted.elf}}      {{Highlight|Debug symbol file for U-Boot → STM32MP157C-DK2}}
 │               │   ├── {{Green|u-boot-stm32mp157c-dk2-trusted.stm32}}    {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP157C-DK2}}
 │               │   ├── {{Green|u-boot-stm32mp157c-ev1-trusted.elf}}      {{Highlight|Debug symbol file for U-Boot → STM32MP157C-EV1}}
 │               │   ├── {{Green|u-boot-stm32mp157c-ev1-trusted.stm32}}    {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP157C-EV1}}
 │               │   └── {{Green|[...]}}
 │               └── [...]

==Appendix B: directory structure after build (Distribution Package)==
Provided you have followed the build method explained in [[OpenSTLinux distribution]], then the following {{Green|new directories}} contain the build outputs.

As long as you did not modify the source code:
* the {{STPurple|files in STPurple}} are the same as the ones available in the '''Starter Package''': flash layout, binaries for ''bootfs'', ''rootfs'', ''userfs'' and ''vendorfs'' partitions
* the {{Grey|files in grey}} are the same as the ones available in the '''Starter and Developer Packages''': binaries for ''FSBL'' and ''SSBL'' partitions, and for OP-TEE OS runtime services
* the {{Orange|files in orange}} are the same as the ones available in the '''Developer Package''': Linux kernel image and device tree blobs, and debug symbol files

 Distribution-Package/{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}} /build-openstlinuxweston-stm32mp/{{Green|tmp-glibc/deploy}}
 ├── {{Green|images}}
 │   └── {{Green|stm32mp1}}
 │       ├── {{STPurple|flashlayout_st-image-weston}}                                 {{Highlight|Flash layout files (description of the partitions) for the supported flash devices}}
 │       │   ├── {{STPurple|FlashLayout_emmc_stm32mp157c-ev1-optee.tsv}}              {{Highlight|Flash layout file for eMMC and trusted boot chain, with OP-TEE OS → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_emmc_stm32mp157c-ev1-trusted.tsv}}            {{Highlight|Flash layout file for eMMC and trusted boot chain → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_nand-4-256_stm32mp157c-ev1-optee.tsv}}        {{Highlight|Flash layout file for NAND Flash and trusted boot chain, with OP-TEE OS → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_nand-4-256_stm32mp157c-ev1-trusted.tsv}}      {{Highlight|Flash layout file for NAND Flash and trusted boot chain → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_nor-emmc_stm32mp157c-ev1-optee.tsv}}          {{Highlight|Flash layout file for NOR Flash (and eMMC) and trusted boot chain, with OP-TEE OS → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_nor-emmc_stm32mp157c-ev1-trusted.tsv}}        {{Highlight|Flash layout file for NOR Flash (and eMMC) and trusted boot chain → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_nor-nand-4-256_stm32mp157c-ev1-optee.tsv}}    {{Highlight|Flash layout file for NOR Flash (and NAND Flash) and trusted boot chain, with OP-TEE OS → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_nor-nand-4-256_stm32mp157c-ev1-trusted.tsv}}  {{Highlight|Flash layout file for NOR Flash (and NAND Flash) and trusted boot chain → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_nor-sdcard_stm32mp157c-ev1-optee.tsv}}        {{Highlight|Flash layout file for NOR Flash (and microSD card) and trusted boot chain, with OP-TEE OS → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_nor-sdcard_stm32mp157c-ev1-trusted.tsv}}      {{Highlight|Flash layout file for NOR Flash (and microSD card) and trusted boot chain → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_sdcard_stm32mp157a-dk1-basic.tsv}}            {{Highlight|Flash layout file for microSD card and basic boot chain → STM32MP157A-DK1}}
 │       │   ├── {{STPurple|FlashLayout_sdcard_stm32mp157a-dk1-optee.tsv}}            {{Highlight|Flash layout file for microSD card and trusted boot chain, with OP-TEE OS → STM32MP157A-DK1}}
 │       │   ├── {{STPurple|FlashLayout_sdcard_stm32mp157a-dk1-trusted.tsv}}          {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') → STM32MP157A-DK1}}
 │       │   ├── {{STPurple|FlashLayout_sdcard_stm32mp157c-dk2-basic.tsv}}            {{Highlight|Flash layout file for microSD card and basic boot chain → STM32MP157C-DK2}}
 │       │   ├── {{STPurple|FlashLayout_sdcard_stm32mp157c-dk2-optee.tsv}}            {{Highlight|Flash layout file for microSD card and trusted boot chain, with OP-TEE OS → STM32MP157C-DK2}}
 │       │   ├── {{STPurple|FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv}}          {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') → STM32MP157C-DK2}}
 │       │   ├── {{STPurple|FlashLayout_sdcard_stm32mp157c-ev1-basic.tsv}}            {{Highlight|Flash layout file for microSD card and basic boot chain → STM32MP157C-EV1}}
 │       │   ├── {{STPurple|FlashLayout_sdcard_stm32mp157c-ev1-optee.tsv}}            {{Highlight|Flash layout file for microSD card and trusted boot chain, with OP-TEE OS → STM32MP157C-EV1}}
 │       │   └── {{STPurple|FlashLayout_sdcard_stm32mp157c-ev1-trusted.tsv}}          {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') → STM32MP157C-EV1}}
 │       │   └── [...]
 │       ├── {{STPurple|scripts}}
 │       │   └── {{STPurple|create_sdcard_from_flashlayout.sh}}

 │       ├── {{STPurple|st-image-bootfs-openstlinux-weston-stm32mp1.ext4}}            {{Highlight|Binary for ''bootfs'' partition}}
 │       ├── {{STPurple|st-image-userfs-openstlinux-weston-stm32mp1.ext4}}            {{Highlight|Binary for ''userfs'' partition}}
 │       ├── {{STPurple|st-image-vendorfs-openstlinux-weston-stm32mp1.ext4}}          {{Highlight|Binary for ''vendorfs'' partition}}
 │       ├── {{STPurple|st-image-weston-openstlinux-weston-stm32mp1.ext4}}            {{Highlight|Binary for ''rootfs'' partition}}
 │       ├── {{Grey|fip/}}                                                       {{Highlight|FIP images flashed according flashlayout selected}}
 │       ├── {{Orange|uImage}}                                                      {{Highlight|Linux kernel binary image file (with U-Boot wrapper) for ''bootfs'' partition}}|       ├── {{Orange|vmlinux}}                                                     {{Highlight|Debug symbol file for Linux kernel}}|       └── [...]
 └── [...]

<noinclude>

{{PublicationRequestId | 7649  | 2018-06-11 | AnneJ}}
[[Category:STM32MPU Embedded Software distribution]]</noinclude>
(34 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<noinclude>
 
{{ArticleMainWriter | Jean-ChristopheT}}
 
{{ReviewersList | NathalieS, BernardP, RomualdJ, DenisH, FrancoisC}}
 
{{ArticleApprovedVersion | Jean-ChristopheT | NathalieS | Jean-ChristopheT - 20Jun'18 | AnneJ - 11Jun'18 - 7649 | 21Sep'18}}
 
 
[[Category:STM32MPU Embedded Software distribution]]
 
</noinclude>
 
 
 
==Article purpose==
 
==Article purpose==
 
This article aims at proposing a way to organize, on the host PC, the software packages of the different Packages (Starter, Developer and Distribution) for a given release of the STM32MPU Embedded Software distribution.
 
This article aims at proposing a way to organize, on the host PC, the software packages of the different Packages (Starter, Developer and Distribution) for a given release of the STM32MPU Embedded Software distribution.
Line 14: Line 6:
 
* The SDK (Developer Package) and the image (Starter Package) have both been generated from the Distribution Package. A software release thus guarantees that there is no misalignment between the different software packages.
 
* The SDK (Developer Package) and the image (Starter Package) have both been generated from the Distribution Package. A software release thus guarantees that there is no misalignment between the different software packages.
   
An example of organization for tools is proposed [[Example of directory structure for tools|here]].
+
{{info|The objective of this article is to describe one organization among all the possible organizations. Feel free to organize the delivered Packages in any other way that would better match your way of working.}}
   
{{info|The objective of this article is to describe one organization among all the possible organizations. Feel free to organize the delivered Packages in any other way that would better match your way of working.}}
+
{{info|In practice, this article uses the release '''STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}''' for the STM32MPU Embedded Software distribution as an example to illustrate the proposed organization. If you are using a different release, the names of the directories and files might differ.}}{{UpdateNeededForNewRelease|The trees below shall be updated periodically, even if the information banner specifies that they might not be up-to-date}}
{{info|In practice, this article uses the STM32MPU Embedded Software distribution release issued on 03-July-2018 as an example to illustrate the proposed organization. If you are using a different release, the names of the directories and files might differ.}}{{UpdateNeededForNewRelease|The trees below shall be updated periodically, even if the information banner specifies that they might not be up-to-date}}
 
   
   
Line 23: Line 14:
   
 
==Creating the structure==
 
==Creating the structure==
* Create your <working directory> and assign a unique name to it (for example by including the release date):
+
* Create your <working directory> and assign a unique name to it (for example by including the release name):
  {{PC$}} mkdir STM32MPU-Release-18-07-03
+
  {{PC$}} mkdir STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}
  {{PC$}} cd STM32MPU-Release-18-07-03
+
  {{PC$}} cd STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}
 
* Create the first-level directories that will host the software packages delivered through the STM32MPU Embedded Software distribution release note:
 
* Create the first-level directories that will host the software packages delivered through the STM32MPU Embedded Software distribution release note:
 
  {{PC$}} mkdir Starter-Package
 
  {{PC$}} mkdir Starter-Package
Line 31: Line 22:
 
  {{PC$}} mkdir Distribution-Package
 
  {{PC$}} mkdir Distribution-Package
 
* The resulting directory structure looks as follows:
 
* The resulting directory structure looks as follows:
  {{Green|STM32MPU-Release-18-07-03}}  {{Highlight|STM32MPU Embedded Software release}}
+
  {{Green|STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}}}  {{Highlight|STM32MPU Embedded Software release}}
  ├── {{Green|Developer-Package}}         {{Highlight|Developer Package installation directory}}
+
  ├── {{Green|Developer-Package}}       {{Highlight|Developer Package installation directory}}
  ├── {{Green|Distribution-Package}}       {{Highlight|Distribution Package installation directory}}
+
  ├── {{Green|Distribution-Package}}   {{Highlight|Distribution Package installation directory}}
  └── {{Green|Starter-Package}}           {{Highlight|Starter Package installation directory}}
+
  └── {{Green|Starter-Package}}         {{Highlight|Starter Package installation directory}}
   
 
Once all software packages have been installed according to the instructions given in the STM32MPU Embedded Software distribution release note, the resulting directory structure looks as follows:
 
Once all software packages have been installed according to the instructions given in the STM32MPU Embedded Software distribution release note, the resulting directory structure looks as follows:
  {{Green|STM32MPU-Release-18-07-03}}                   {{Highlight|STM32MPU Embedded Software release}}
+
  {{Green|STM32MP15-Ecosystem-v{{EcosystemRelease/Revision | revision=latest}}}}                           {{Highlight|STM32MPU Embedded Software release}}
  ├── {{Green|Developer-Package}}                           {{Highlight|Developer Package installation directory}}
+
  ├── {{Green|Developer-Package}}                               {{Highlight|Developer Package installation directory}}
  │  ├── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}} {{Highlight|Linux kernel, U-Boot and TF-A source code (OpenSTLinux distribution)}}
+
  │  ├── {{Green|SDK}}                                         {{Highlight|SDK for OpenSTLinux distribution}}
  │  ├── {{Green|SDK}}                                 {{Highlight|SDK for OpenSTLinux distribution}}
+
  │  ├── {{Green|{{EcosystemRelease/Package | revision=latest | package=STM32CubeMP1 | request=path}}}}                     {{Highlight|STM32CubeMP1 Package}}
  │  └── {{Green|STM32Cube_FW_MP1_V0.4.0}}             {{Highlight|STM32Cube MPU Package}}
+
  │  └── {{Green|stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}} {{Highlight|Linux kernel, U-Boot, TF-A and OP-TEE OS source code (OpenSTLinux distribution)}}
  ├── {{Green|Distribution-Package}}                         {{Highlight|Distribution Package installation directory}}
+
  ├── {{Green|Distribution-Package}}                             {{Highlight|Distribution Package installation directory}}
  │  └── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}  {{Highlight|OpenSTLinux distribution (full source code and OpenEmbedded-based build framework)}}
+
  │  └── {{Green|stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}}  {{Highlight|OpenSTLinux distribution (full source code and OpenEmbedded-based build framework)}}
  └── {{Green|Starter-Package}}                             {{Highlight|Starter Package installation directory}}
+
  └── {{Green|Starter-Package}}                                 {{Highlight|Starter Package installation directory}}
     └── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}  {{Highlight|Software image (binaries)}}
+
     └── {{Green|stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}}  {{Highlight|Software image (binaries)}}
   
 
==Focus on the Starter Package directory==
 
==Focus on the Starter Package directory==
 
The ''Starter-Package'' directory contains the software image for the STM32MPU Embedded Software distribution.
 
The ''Starter-Package'' directory contains the software image for the STM32MPU Embedded Software distribution.
   
The trusted boot chain is the default solution delivered by STMicroelectronics. It includes the superset of features (for example, all Flash memory devices are supported). The basic boot chain is also upstreamed by STMicroelectronics, with a limited number of features (for example microSD card memory boot only). Refer to the [[Boot chains overview]] article for details.
+
The trusted boot chain is the default solution delivered by STMicroelectronics. It includes the superset of features (for example, all Flash memory devices are supported). The basic boot chain is also upstreamed by STMicroelectronics, with a limited number of features (for example microSD card memory boot only). Refer to the [[Boot chain overview]] article for details.
   
 
Flash memory partitions (e.g. rootfs, bootfs...) are explained in the [[STM32MP15 Flash mapping]] article.
 
Flash memory partitions (e.g. rootfs, bootfs...) are explained in the [[STM32MP15 Flash mapping]] article.
Line 56: Line 47:
   
 
  {{Green|Starter-Package}}
 
  {{Green|Starter-Package}}
  └── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}
+
  └── {{Green|stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}} }}
 
     └── {{Green|images}}
 
     └── {{Green|images}}
 
         └── {{Green|stm32mp1}}
 
         └── {{Green|stm32mp1}}
 
             ├── {{Green|flashlayout_st-image-weston}}                                {{Highlight|Flash layout files (description of the partitions) for the supported Flash devices and boards}}
 
             ├── {{Green|flashlayout_st-image-weston}}                                {{Highlight|Flash layout files (description of the partitions) for the supported Flash devices and boards}}
             │  ├── FlashLayout_emmc_stm32mp157c-ev1-trusted.tsv           {{Highlight|Flash layout file for eMMC and trusted boot chain → STM32MP15 Evaluation boards}}
+
             │  ├── FlashLayout_emmc_stm32mp157c-ev1-optee.tsv             {{Highlight|Flash layout file for eMMC and trusted boot chain, with OP-TEE OS STM32MP157C-EV1}}
             │  ├── FlashLayout_nand-4-256_stm32mp157c-ev1-trusted.tsv     {{Highlight|Flash layout file for NAND Flash and trusted boot chain → STM32MP15 Evaluation boards}}
+
             │  ├── FlashLayout_emmc_stm32mp157c-ev1-trusted.tsv           {{Highlight|Flash layout file for eMMC and trusted boot chain → STM32MP157C-EV1}}
             │  ├── FlashLayout_nor-emmc_stm32mp157c-ev1-trusted.tsv       {{Highlight|Flash layout file for NOR Flash (and eMMC) and trusted boot chain → STM32MP15 Evaluation boards}}
+
             │  ├── FlashLayout_sdcard_stm32mp157c-dk2-basic.tsv           {{Highlight|Flash layout file for microSD card and basic boot chain → STM32MP157C-DK2}}
             │  ├── FlashLayout_nor-nand-4-256_stm32mp157c-ev1-trusted.tsv {{Highlight|Flash layout file for NOR Flash (and NAND Flasdh) and trusted boot chain → STM32MP15 Evaluation boards}}
+
             │  ├── FlashLayout_sdcard_stm32mp157c-dk2-optee.tsv           {{Highlight|Flash layout file for microSD card and trusted boot chain, with OP-TEE OS STM32MP157C-DK2}}
             │  ├── FlashLayout_nor-sdcard_stm32mp157c-ev1-trusted.tsv     {{Highlight|Flash layout file for NOR Flash (and microSD card) and trusted boot chain → STM32MP15 Evaluation boards}}
+
             │  ├── FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv         {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') STM32MP157C-DK2}}
             │  ├── FlashLayout_sdcard_stm32mp157c-dk2-basic.tsv           {{Highlight|Flash layout file for microSD card and basic boot chain STM32MP15 Discovery kits}}
+
             │  ├── FlashLayout_sdcard_stm32mp157c-dk2-extensible.tsv       {{Highlight|Flash layout file for microSD card with no userfs partition but a rootfs partition extended to sdcard size (recommended setup for [[Package_repository_for_OpenSTLinux_distribution|package repository]] service) STM32MP157C-DK2}}
             │  ├── FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv          {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') → STM32MP15 Discovery kits}}
+
             │  └── [...]
             │  ├── FlashLayout_sdcard_stm32mp157c-ev1-basic.tsv            {{Highlight|Flash layout file for microSD card and basic boot chain → STM32MP15 Evaluation boards}}
+
            ├── {{Green|fip}}
             │  └── FlashLayout_sdcard_stm32mp157c-ev1-trusted.tsv         {{Highlight|Flash layout file for microSD card and trusted boot chain ('''recommended setup''') → STM32MP15 Evaluation boards}}
+
            │   ├── fip-''<board>''-''<boot-type>''.bin            {{Highlight|Image to flash}}           
  +
            ├── {{Green|arm-trusted-firmware}}
  +
            │   ├── tf-a-''<board>''-''<boot-type>''.stm32          {{Highlight|Intermediate tf-a binary used to build fip image}}
  +
            ├── {{Green|u-boot}}
  +
             │   ├── u-boot-nodtb-''soc''.bin                    {{Highlight|Intermediate tf-a binary used to build fip image}}
  +
             │   ├── u-boot-''<board>''-''<boot-type>''.dtb         {{Highlight|Intermediate tf-a dtb used to build fip image}}
  +
            ├── {{Green|optee}}
  +
            │   ├── tee-header_v2-''<board>''.bin
  +
            ​│   ├── tee-pageable_v2--''<board>''.bin
  +
            ​ │   ├── tee-pager_v2--''<board>''.bin
  +
            ├── {{Green|kernel}}
  +
            │   ├── vmlinux                                {{Highlight|vmlinux copied in bootfs partition}}
 
             ├── {{Green|scripts}}
 
             ├── {{Green|scripts}}
 
             │  └── create_sdcard_from_flashlayout.sh
 
             │  └── create_sdcard_from_flashlayout.sh
            ├── splash.bin                                                  {{Highlight|U-Boot splash screen picture (file in BMP format with a ''.bin'' extension) for NOR Flash}}
 
 
             ├── st-image-bootfs-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''bootfs'' partition}}
 
             ├── st-image-bootfs-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''bootfs'' partition}}
 
             ├── st-image-bootfs-openstlinux-weston-stm32mp1.manifest
 
             ├── st-image-bootfs-openstlinux-weston-stm32mp1.manifest
 
             ├── st-image-userfs-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''userfs'' partition}}
 
             ├── st-image-userfs-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''userfs'' partition}}
 
             ├── st-image-userfs-openstlinux-weston-stm32mp1.manifest
 
             ├── st-image-userfs-openstlinux-weston-stm32mp1.manifest
  +
            ├── st-image-vendorfs-openstlinux-weston-stm32mp1.ext4          {{Highlight|Binary for ''vendorfs'' partition}}
 
             ├── st-image-weston-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''rootfs'' partition}}
 
             ├── st-image-weston-openstlinux-weston-stm32mp1.ext4            {{Highlight|Binary for ''rootfs'' partition}}
 
             ├── st-image-weston-openstlinux-weston-stm32mp1.license
 
             ├── st-image-weston-openstlinux-weston-stm32mp1.license
 
             ├── st-image-weston-openstlinux-weston-stm32mp1-license_content.html
 
             ├── st-image-weston-openstlinux-weston-stm32mp1-license_content.html
 
             ├── st-image-weston-openstlinux-weston-stm32mp1.manifest
 
             ├── st-image-weston-openstlinux-weston-stm32mp1.manifest
             ├── st-image-weston-openstlinux-weston-stm32mp1_nand_4_256_multivolume.ubi
+
             └── [...]
            ├── tf-a-stm32mp157c-dk2-trusted.stm32                          {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Discovery kits}}
 
            ├── tf-a-stm32mp157c-ev1-trusted.stm32                          {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Evaluation boards}}
 
            ├── u-boot-spl.stm32-stm32mp157c-dk2-basic                      {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP15 Discovery kits}}
 
            ├── u-boot-spl.stm32-stm32mp157c-ev1-basic                      {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP15 Evaluation boards}}
 
            ├── u-boot-stm32mp157c-dk2-basic.img                            {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP15 Discovery kits}}
 
            ├── u-boot-stm32mp157c-dk2-trusted.stm32                        {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP15 Discovery kits}}
 
            ├── u-boot-stm32mp157c-ev1-basic.img                            {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP15 Evaluation boards}}
 
            └── u-boot-stm32mp157c-ev1-trusted.stm32                        {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP15 Evaluation boards}}
 
   
 
==Focus on the Developer Package directory==
 
==Focus on the Developer Package directory==
 
The ''Developer-Package'' directory contains:
 
The ''Developer-Package'' directory contains:
 
* The source code for the following OpenSTLinux software packages (development for Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A processor):
 
* The source code for the following OpenSTLinux software packages (development for Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A processor):
  +
** Linux<sup>&reg;</sup> kernel
  +
** U-Boot
 
** TF-A
 
** TF-A
** Linux kernel
+
** OP-TEE OS
** U-Boot
+
* The debug symbol files for Linux kernel, U-Boot, TF-A and OP-TEE OS
* The debug symbol files for Linux kernel, U-Boot and TF-A
 
 
* The SDK (for cross-development on an host PC)
 
* The SDK (for cross-development on an host PC)
 
* The STM32Cube MPU Package (developed for Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M processor)
 
* The STM32Cube MPU Package (developed for Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M processor)
Line 102: Line 97:
   
 
  {{Green|Developer-Package}}
 
  {{Green|Developer-Package}}
  ├── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}  {{Highlight|Source code for OpenSTLinux distribution}}
+
  ├── {{Green|SDK}}                                                                            {{Highlight|'''SDK for OpenSTLinux distribution''': details in [[Standard SDK directory structure]] article}}
  │  ├── {{Green|images}}
+
│  ├── environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi  {{Highlight|'''Environment setup script''' for Developer Package}}
  │  │  └── {{Green|stm32mp1}}                                {{Highlight|'''Debug symbol files installation directory'''}}
+
│  ├── site-config-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
  │      ├── tf-a-bl2-trusted.elf                {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
+
│  ├── {{Green|sysroots}}
│  │      ├── tf-a-bl32-trusted.elf              {{Highlight|Debug symbol file for TF-A → runtime software stage}}
+
│  │  ├── {{Green|cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi}}                {{Highlight|Target sysroot (libraries, headers, and symbols)}}
  │   │      ├── u-boot-stm32mp157c-dk2-trusted.elf  {{Highlight|Debug symbol file for U-Boot → STM32MP15 Discovery kits}}
+
│  │  │  └── [...]
  │      ├── u-boot-stm32mp157c-ev1-trusted.elf  {{Highlight|Debug symbol file for U-Boot → STM32MP15 Evaluation boards}}
+
│  │  └── {{Green|x86_64-ostl_sdk-linux}}                                    {{Highlight|Native sysroot (libraries, headers, and symbols)}}
│  │      └── vmlinux                            {{Highlight|Debug symbol file for Linux kernel}}
+
│  │      └── [...]
  +
│  └── version-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
  +
 
  +
├── {{Green|{{EcosystemRelease/Package | revision=latest | package=STM32CubeMP1 | request=path}}}}            {{Highlight|'''STM32CubeMP1 Package''': details in [[STM32CubeMP1 Package#STM32CubeMP1 Package Content|STM32CubeMP1 Package content]] article}}
  +
│  ├── {{Green|Drivers}}
  +
│  │  ├── {{Green|BSP}}                        {{Highlight|BSP drivers for the supported STM32MPU boards}}
  +
│  │  │  └── [...]
  +
│  │  ├── {{Green|CMSIS}}
  +
│  │  │  └── [...]
  +
│  │  └── {{Green|STM32MP1xx_HAL_Driver}}      {{Highlight|HAL drivers for the supported STM32MPU devices}}
  +
│  │      └── [...]
  +
│  ├── {{Green|_htmresc}}
  +
│  │  └── [...]
  +
│  ├── License.md                      {{Highlight|License types for the components}}
  +
│  ├── {{Green|Middlewares}}                    {{Highlight|Middlewares used by the examples and applications}}
  +
│  │  └── [...]
  +
│  ├── package.xml
  +
│  ├── {{Green|Projects}}
  +
│  │  ├── STM32CubeProjectsList.html {{Highlight|List of examples and applications for STM32CubeMP1 Package}}
  +
  │  │  ├── {{Green|STM32MP157C-DK2}}            {{Highlight|Set of examples and applications → STM32MP157C-DK2}}
  +
│  │  │  └── [...]
  +
│  │  └── {{Green|STM32MP157C-EV1}}            {{Highlight|Set of examples and applications → STM32MP157C-EV1}}
  +
│  │      └── [...]
  +
│  ├── Readme.md
  +
│  ├── Release_Notes.html              {{Highlight|Release note for STM32CubeMP1 Package}}
  +
  │  └── {{Green|Utilities}}
  +
│      └── [...]
  +
 
  +
└── {{Green|stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}}    {{Highlight|Source code for OpenSTLinux distribution}}
  +
    ├── {{Green|images}}
  +
    │  └── {{Green|stm32mp1}}                                {{Highlight|'''Debug symbol files installation directory'''}}
  +
          ├── tf-a-bl2-optee.elf                  {{Highlight|Debug symbol file for TF-A, with OP-TEE OS → trusted boot firmware stage}}
  +
    │      ├── tf-a-bl2-trusted.elf                {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
  +
    │      ├── tf-a-bl32-trusted.elf              {{Highlight|Debug symbol file for TF-A → runtime software stage}}
  +
    │      ├── u-boot-stm32mp157a-dk1-optee.elf    {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157A-DK1}}
  +
    │      ├── u-boot-stm32mp157a-dk1-trusted.elf {{Highlight|Debug symbol file for U-Boot → STM32MP157A-DK1}}
  +
          ├── u-boot-stm32mp157c-dk2-optee.elf    {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157C-DK2}}
  +
    │      ├── u-boot-stm32mp157c-dk2-trusted.elf  {{Highlight|Debug symbol file for U-Boot → STM32MP157C-DK2}}
  +
          ├── u-boot-stm32mp157c-ev1-optee.elf    {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157C-EV1}}
  +
    │      ├── u-boot-stm32mp157c-ev1-trusted.elf  {{Highlight|Debug symbol file for U-Boot → STM32MP157C-EV1}}
  +
    │      ├── vmlinux                            {{Highlight|Debug symbol file for Linux kernel}}
  +
    │      └── [...]
   
│  └── {{Green|sources}}
+
    └── {{Green|sources}}
│      └── {{Green|arm-openstlinux_weston-linux-gnueabi}}
+
        └── {{Green|arm-ostl-linux-gnueabi}}
│          ├── {{Green|linux-stm32mp-4.14-48}}    {{Highlight|'''Linux kernel installation directory'''}}
+
            ├── {{Green|'''FIP_artifacts'''
│          │  ├── [*].patch            {{Highlight|ST patches for Linux kernel}}
+
            ├── fip/                    {{Highlight|fip images of Stater Package}}
│          │  ├── fragment-[*].config  {{Highlight|ST configuration fragments for Linux kernel}}
+
            ├── arm-trusted-firmware/    {{Highlight|intermediate tf-a binaries from Stater Package (needed to build any fip image}}
│          │  ├── {{Green|linux-4.14.48}}        {{Highlight|'''Linux kernel source code directory'''}}
+
            ├── optee/                  {{Highlight|intermediate optee binaries from Stater Package (needed to build any fip image}}
│          │  ├── linux-4.14.48.tar.xz
+
            └── u-boot/                  {{Highlight|intermediate u-boot binaries from Stater Package (needed to build any fip image}}}}
│          │  ├── README.HOW_TO.txt    {{Highlight|Helper file for Linux kernel management: '''reference''' for Linux kernel build}}
 
│          │  └── series
 
   
│          ├── {{Green|tf-a-stm32mp-1.5-release.AUTOINC+ed8112606c}}             {{Highlight|'''TF-A installation directory'''}}
+
            ├── {{Green|{{EcosystemRelease/Package | revision=latest | package=Linux kernel source | request=path}}
│          │  ├── [*].patch                                          {{Highlight|ST patches for TF-A}}
+
            │  ├── [*].patch            {{Highlight|ST patches for Linux kernel}}
│          │  ├── {{Green|git}}                                                 {{Highlight|'''TF-A source code directory'''}}
+
            │  ├── fragment-[*].config  {{Highlight|ST configuration fragments for Linux kernel}}
│          │  ├── Makefile.sdk                                        {{Highlight|Makefile for the TF-A compilation}}
+
            │  ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=Linux kernel source | request=path}}}}        {{Highlight|'''Linux kernel source code directory'''}}
│          │  ├── README.HOW_TO.txt                                   {{Highlight|Helper file for TF-A management: '''reference''' for TF-A build}}
+
            │  ├── {{EcosystemRelease/Package | revision=latest | package=Linux kernel source | request=name}}
│          │  ├── series
+
            │  ├── README.HOW_TO.txt   {{Highlight|Helper file for Linux kernel management: '''reference''' for Linux kernel build}}
│          │  └── tf-a-stm32mp-1.5-release.AUTOINC+ed8112606c.tar.gz
+
            │  └── series
   
│          └── {{Green|u-boot-trusted-stm32mp-2018.03-release.AUTOINC+f95ab1fb6e}}             {{Highlight|'''U-Boot installation directory'''}}
+
            ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=OP-TEE source  | request=path}}}} {{Highlight|'''OP-TEE OS installation directory'''}}
              ├── [*].patch                                                         {{Highlight|ST patches for U-Boot}}
+
              ├── [*].patch             {{Highlight|ST patches for OP-TEE OS}}
              ├── {{Green|git}}                                                              {{Highlight|'''U-Boot source code directory'''}}
+
              ├── {{EcosystemRelease/Package | revision=latest| package=OP-TEE source | request=path}}
              ├── Makefile.sdk                                                     {{Highlight|Makefile for the U-Boot compilation}}
+
              ├── Makefile.sdk           {{Highlight|Makefile for the OP-TEE OS compilation}}
              ├── README.HOW_TO.txt                                                 {{Highlight|Helper file for U-Boot management: '''reference''' for U-Boot build}}
+
            │  ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=OP-TEE source | request=name}}}}        {{Highlight|'''OP-TEE OS source code directory'''}}
              ├── series
+
              ├── README.HOW_TO.txt     {{Highlight|Helper file for OP-TEE OS management: '''reference''' for OP-TEE OS build}}
│              └── u-boot-trusted-stm32mp-2018.03-release.AUTOINC+f95ab1fb6e.tar.gz
+
              └── series
   
├── {{Green|SDK}}                                                                           {{Highlight|'''SDK for OpenSTLinux distribution''': details in [[Standard SDK directory structure]] article}}
+
            ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=TF-A source | request=path}}}}           {{Highlight|'''TF-A installation directory'''}}
│  ├── environment-setup-cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi  {{Highlight|'''Environment setup script''' for Developer Package}}
+
            │  ├── [*].patch                {{Highlight|ST patches for TF-A}}
│  ├── site-config-cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi
+
            │  ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=TF-A source | request=path}}}} {{Highlight|'''TF-A source code directory'''}}
│  ├── {{Green|sysroots}}
+
            │  ├── Makefile.sdk              {{Highlight|Makefile for the TF-A compilation}}
│  │  ├── {{Green|cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi}}               {{Highlight|Target sysroot (libraries, headers, and symbols)}}
+
            │  ├── README.HOW_TO.txt        {{Highlight|Helper file for TF-A management: '''reference''' for TF-A build}}
│  │  │  └── [...]
+
            │  ├── series
│  │  └── {{Green|x86_64-openstlinux_weston_sdk-linux}}                                   {{Highlight|Native sysroot (libraries, headers, and symbols)}}
+
            │  └── {{EcosystemRelease/Package | revision=latest| package=TF-A source | request=name}}
│  │      └── [...]
 
│  └── version-cortexa7hf-neon-vfpv4-openstlinux_weston-linux-gnueabi
 
   
└── {{Green|STM32Cube_FW_MP1_V0.4.0}}                             {{Highlight|'''STM32Cube MPU Package''': details in [[STM32CubeMP1 Package#STM32CubeMP1 Package Content|STM32Cube MPU Package content]] article}}
+
            └── {{Green|{{EcosystemRelease/Package | revision=latest| package=U-Boot source | request=path}}}} {{Highlight|'''U-Boot installation directory'''}}
    ├── COPYING
+
                ├── [*].patch              {{Highlight|ST patches for U-Boot}}
    ├── COPYING.BSD-3
+
                ├── Makefile.sdk          {{Highlight|Makefile for the U-Boot compilation}}
    ├── {{Green|Drivers}}
+
                ├── README.HOW_TO.txt     {{Highlight|Helper file for U-Boot management: '''reference''' for U-Boot build}}
    │  ├── {{Green|BSP}}                                        {{Highlight|BSP drivers for the supported STM32MPU boards}}
+
                ├── series
    │  │  └── [...]
+
                ├── {{Green|{{EcosystemRelease/Package | revision=latest| package=U-Boot source | request=path}}}} {{Highlight|'''U-Boot installation directory'''}}}}         {{Highlight|'''U-Boot source code directory'''}}
    │  ├── {{Green|CMSIS}}
+
                └── {{EcosystemRelease/Package | revision=2.0.0 | package=U-Boot source | request=name}}
    │  │  └── [...]
 
     │  └── {{Green|STM32MP1xx_HAL_Driver}}                      {{Highlight|HAL drivers for the supported STM32MPU devices}}
 
    │      └── [...]
 
    ├── {{Green|_htmresc}}
 
    │  └── [...]
 
    ├── LLA_evaluation_for_STM32MPU_17-12-06_plain.txt
 
    ├── {{Green|Middlewares}}
 
    │  └── [...]
 
    ├── package.xml
 
    ├── {{Green|Projects}}
 
    │  ├── STM32CubeProjectsList.html                  {{Highlight|List of examples and applications for STM32Cube MP1 Package}}
 
    │  ├── {{Green|STM32MP15_DISCO}}                             {{Highlight|Set of examples and applications → STM32MP15 Discovery kits}}
 
    │  │  └── [...]
 
    │  └── {{Green|STM32MP15_EVAL}}                              {{Highlight|Set of examples and applications → STM32MP15 Evaluation boards}}
 
    │      └── [...]
 
    ├── Release_Notes.html                              {{Highlight|Release note for STM32Cube MP1 Package}}
 
    └── {{Green|Utilities}}
 
        └── [...]
 
   
[[#Appendix A: directory structure after build (Developer Package)|Appendix A]] shows the structure of the Linux kernel, U-Boot and TF-A installation directories after these software packages have been built.
+
[[#Appendix A: directory structure after build (Developer Package)|Appendix A]] shows the structure of the Linux kernel, U-Boot, TF-A and OP-TEE OS installation directories after these software packages have been built.
   
 
==Focus on the Distribution Package directory==
 
==Focus on the Distribution Package directory==
Line 180: Line 194:
   
 
  {{Green|Distribution-Package}}
 
  {{Green|Distribution-Package}}
  └── {{Green|openstlinux-4.14-rocko-mp1-18-07-03}}  {{Highlight|OpenSTLinux distribution}}
+
  └── {{Green|{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}}}  {{Highlight|'''OpenSTLinux distribution'''}}
     ├── {{Green|meta-openembedded}}  {{Highlight|Collection of layers for the OpenEmbedded-Core universe ([[OpenEmbedded]] standard)}}
+
     └── {{Green|layers}}
    │  └── [...]
+
        ├── {{Green|meta-openembedded}}  {{Highlight|Collection of layers for the OpenEmbedded-Core universe ([[OpenEmbedded]] standard)}}
    ├── {{Green|meta-qt5}}          {{Highlight|QT5 layer for OpenEmbedded (standard)}}
+
        │  └── [...]
    │  └── [...]
+
        ├── {{Green|meta-qt5}}          {{Highlight|QT5 layer for OpenEmbedded (standard)}}
  +
        │  └── [...]
   
    ├── {{Green|meta-st}}
+
        ├── {{Green|meta-st}}
    │  ├── {{Green|meta-st-openstlinux}}                  {{Highlight|STMicroelectronics layer that contains the settings of the frameworks and images for the OpenSTLinux distribution}}
+
        │  ├── {{Green|meta-st-openstlinux}}                  {{Highlight|STMicroelectronics layer that contains the settings of the frameworks and images for the OpenSTLinux distribution}}
    │  │  ├── {{Green|recipes-samples}}
+
        │  │  ├── {{Green|recipes-st}}
    │  │  │  └── {{Green|images}}
+
        │  │  │  ├── {{Green|images}}
    │  │  │      ├── st-example-image-qt.bb    {{Highlight|ST example of image based on QT framework}}
+
        │  │  │  │  ├── st-image-core.bb          {{Highlight|Core image for OpenSTLinux distribution}}
    │  │  │      ├── st-example-image-x11.bb  {{Highlight|ST example of image based on X11}}
+
        │  │  │  │  └── st-image-weston.bb        {{Highlight|Weston image with basic Wayland support for OpenSTLinux distribution: '''recommended setup'''}}
    │  │  │      └── st-example-image-xfce.bb  {{Highlight|ST example of image based on XFCE framework}}
+
        │  │  │  └── {{Green|packagegroups}}
    │  │  ├── {{Green|recipes-st}}
+
        │  │  │      └── [...]
    │  │  │  ├── {{Green|images}}
+
        │  │  └── [...]
    │  │  │  │  ├── st-image-core.bb          {{Highlight|Core image for OpenSTLinux distribution}}
 
    │  │  │  │  ├── st-image.inc
 
    │  │  │  │  └── st-image-weston.bb        {{Highlight|Weston image with basic Wayland support for OpenSTLinux distribution: '''recommended setup'''setup}}
 
    │  │  │  └── {{Green|packagegroups}}
 
    │  │  │      └── [...]
 
    │  │  └── [...]
 
   
    │  ├── {{Green|meta-st-stm32mp}}                 {{Highlight|STMicroelectronics layer that contains the description of the BSP for the STM32 MPU devices}}
+
        │  ├── {{Green|meta-st-stm32mp}}                   {{Highlight|STMicroelectronics layer that contains the description of the BSP for the STM32 MPU devices}}
    │  │  ├── {{Green|recipes-bsp}}
+
        │  │  ├── {{Green|recipes-bsp}}
    │  │  │  ├── {{Green|alsa}}                   {{Highlight|Recipes for ALSA control configuration}}
+
        │  │  │  ├── {{Green|alsa}}                     {{Highlight|Recipes for ALSA control configuration}}
    │  │  │  │  └── [...]
+
        │  │  │  │  └── [...]
    │  │  │  ├── {{Green|drivers}}                 {{Highlight|Recipes for Vivante GCNANO GPU kernel drivers}}
+
        │  │  │  ├── {{Green|drivers}}                   {{Highlight|Recipes for Vivante GCNANO GPU kernel drivers}}
    │  │  │  │  └── [...]
+
        │  │  │  │  └── [...]
    │  │  │  ├── {{Green|trusted-firmware-a}}     {{Highlight|Recipes for TF-A}}
+
        │  │  │  ├── {{Green|trusted-firmware-a}}       {{Highlight|Recipes for TF-A}}
    │  │  │  │  └── [...]
+
        │  │  │  │  └── [...]
    │  │  │  └── {{Green|u-boot}}                 {{Highlight|Recipes for U-Boot}}
+
        │  │  │  └── {{Green|u-boot}}                   {{Highlight|Recipes for U-Boot}}
    │  │  │      └── [...]
+
        │  │  │      └── [...]
    │  │  ├── {{Green|recipes-extended}}
+
        │  │  ├── {{Green|recipes-extended}}
    │  │  │  ├── {{Green|m4projects}}             {{Highlight|Recipes for STM32Cube MPU Package within the OpenSTLinux distribution}}
+
        │  │  │  ├── {{Green|m4projects}}               {{Highlight|Recipes for STM32Cube MPU Package within the OpenSTLinux distribution}}
    │  │  │  │  └── [...]
+
        │  │  │  │  └── [...]
    │  │  │  ├── {{Green|openocd}}                {{Highlight|Recipes for Open On-Chip Debugging (OpenOCD) on Cortex-A or Cortex-M}}
+
        │  │  │  └── [...]
    │  │  │  │  └── [...]
+
        │  │  ├── {{Green|recipes-graphics}}
    │  │  │  └── {{Green|stlink}}                  {{Highlight|Recipes for STLink}}
+
        │  │  │  ├── {{Green|gcnano-userland}}           {{Highlight|Recipes for Vivante libraries OpenGL ES, OpenVG and EGL (multi backend)}}
    │  │  │      └── [...]
+
        │  │  │  │  └── [...]
    │  │  ├── {{Green|recipes-graphics}}
+
        │  │  │  └── [...]
    │  │  │  ├── {{Green|gcnano-userland}}         {{Highlight|Recipes for Vivante libraries OpenGL ES, OpenVG and EGL (multi backend)}}
+
        │  │  ├── {{Green|recipes-kernel}}
    │  │  │  │  └── [...]
+
        │  │  │  └── {{Green|linux}}                     {{Highlight|Recipes for Linux kernel}}
    │  │  │  └── [...]
+
        │  │  │      └── [...]
    │  │  ├── {{Green|recipes-kernel}}
+
        │  │  │  └── {{Green|linux-firmware}}           {{Highlight|Recipes for Linux firmwares (example, Bluetooth firmware)}}
    │  │  │  └── {{Green|linux}}                   {{Highlight|Recipes for Linux kernel}}
+
        │  │  │      └── [...]
    │  │  │      └── [...]
+
        │  │  ├── {{Green|recipes-st}}
    │  │  │  └── {{Green|linux-firmware}}         {{Highlight|Recipes for Linux firmwares (example, Bluetooth firmware)}}
+
        │  │  │  └── {{Green|images}}
    │  │  │      └── [...]
+
        │  │  │      ├── st-image-bootfs.bb   {{Highlight|Recipes for the ''bootfs'' partition binary}}
    │  │  ├── {{Green|recipes-st}}
+
        │  │  │      ├── st-image-userfs.bb    {{Highlight|Recipes for the ''userfs'' partition binary}}
    │  │  │  └── {{Green|images}}
+
        │  │  │      └── st-image-vendorfs.bb  {{Highlight|Recipes for the ''vendorfs'' partition binary}}
    │  │  │      ├── st-image-bootfs.bb {{Highlight|Recipes for the ''bootfs'' partition binary}}
+
        │  │  └── [...]
    │  │  │      └── st-image-userfs.bb  {{Highlight|Recipes for the ''userfs'' partition binary}}
 
    │  │  └── [...]
 
   
    │  ├── {{Green|meta-st-stm32mp-addons}}  {{Highlight|STMicroelectronics layer that helps managing the STM32CubeMX integration}}
+
        │  ├── {{Green|meta-st-stm32mp-addons}}  {{Highlight|STMicroelectronics layer that helps managing the STM32CubeMX integration}}
    │      └── [...]
+
        │      └── [...]
    │  └── {{Green|scripts}}
+
        │  └── {{Green|scripts}}
    │      ├── envsetup.sh {{Highlight|'''Environment setup script''' for Distribution Package}}
+
        │      ├── envsetup.sh         {{Highlight|'''Environment setup script''' for Distribution Package}}
    │      └── [...]
+
        │      └── [...]
    └── {{Green|openembedded-core}}  {{Highlight|Core metadata for current versions of [[OpenEmbedded]] (standard)}}
 
        └── [...]
 
   
{{InternalInfo| Additional layer for internal usage
+
        ├── {{Green|meta-timesys}}      {{Highlight|Timesys layer for OpenEmbedded (standard)}}
└── {{Green|st-hands-on}}  {{Highlight|STMicroelectronics layer that contains the reference source code for the hands-on}}
+
        │  └── [...]
}}
+
        └── {{Green|openembedded-core}}  {{Highlight|Core metadata for current versions of [[OpenEmbedded]] (standard)}}
  +
            └── [...]
   
 
[[#Appendix B: directory structure after build (Distribution Package)|Appendix B]] shows the structure of the build directory.
 
[[#Appendix B: directory structure after build (Distribution Package)|Appendix B]] shows the structure of the build directory.
Line 253: Line 259:
   
 
  Developer-Package
 
  Developer-Package
  ├── openstlinux-4.14-rocko-mp1-18-07-03 {{Highlight|Source code for OpenSTLinux distribution}}
+
  ├── stm32mp1-{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}}  {{Highlight|Source code for OpenSTLinux distribution}}
 
  │  └── sources
 
  │  └── sources
  │      └── arm-openstlinux_weston-linux-gnueabi
+
  │      └── arm-ostl-linux-gnueabi
  │          ├── linux-stm32mp-4.14-48                {{Highlight|'''Linux kernel installation directory'''}}
+
  │          ├── FIP_artifacts                  {{Highlight|'''FIP images to flash'''}}
  │          │  ├── {{Green|build}}                             {{Highlight|'''Linux kernel build directory'''}}
+
│          │  ├── {{Green|fip/}}                              {{Highlight|'''FIP images to flash, need to edit tsv file to point on that fip images'''}}
  +
│          │  ├── {{Green|arm-trusted-firmware/}}              {{Highlight|'''Intermediate binaries of tf-a required to build fip images'''}}
  +
│          │  ├── {{Green|u-boot/}}                            {{Highlight|'''Intermediate binaries of u-boot required to build fip images'''}}
  +
│          │  ├── {{Green|optee/}}                            {{Highlight|'''Intermediate binaries of  optee required to build fip images'''}}
  +
 
  +
│          ├── {{EcosystemRelease/Package | revision=latest| package=Linux kernel source  | request=path}}
  +
  │          │  ├── {{Green|build}}                               {{Highlight|'''Linux kernel build directory'''}}
 
  │          │  │  ├── {{Green|install_artifact}}
 
  │          │  │  ├── {{Green|install_artifact}}
 
  │          │  │  │  ├── {{Green|lib}}
 
  │          │  │  │  ├── {{Green|lib}}
 
  │          │  │  │  │  └── {{Green|modules}}
 
  │          │  │  │  │  └── {{Green|modules}}
  │          │  │  │  │      └── {{Green|4.14.48}}
+
  │          │  │  │  │      └── {{Green|''X.Y.Z''}}
  │          │  │  │  │          └── {{Green|[...]}}         {{Highlight|Kernel modules hierarchy (''*.ko'' files)}}
+
  │          │  │  │  │          └── {{Green|[...]}}           {{Highlight|Kernel modules hierarchy (''*.ko'' files)}}
 
  │          │  │  │  └── {{Green|boot}}
 
  │          │  │  │  └── {{Green|boot}}
  │          │  │  │      ├── {{Green|stm32mp157c-d[*].dtb}}  {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP15 Discovery kits}}
+
│          │  │  │      ├── {{Green|stm32mp157a-dk1[*].dtb}}  {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP157A-DK1}}
  │          │  │  │      ├── {{Green|stm32mp157c-e[*].dtb}}  {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP15 Evaluation boards}}
+
  │          │  │  │      ├── {{Green|stm32mp157c-dk2[*].dtb}}  {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP157C-DK2}}
  │          │  │  │      ├── {{Green|uImage}}               {{Highlight|Linux kernel binary image file (with U-Boot wrapper) for ''bootfs'' partition}}
+
  │          │  │  │      ├── {{Green|stm32mp157c-ev1[*].dtb}}  {{Highlight|Linux kernel device tree blob files for ''bootfs'' partition → STM32MP157C-EV1}}
  +
  │          │  │  │      ├── {{Green|uImage}}                 {{Highlight|Linux kernel binary image file (with U-Boot wrapper) for ''bootfs'' partition}}
 
  │          │  │  │      └── {{Green|[...]}}
 
  │          │  │  │      └── {{Green|[...]}}
  │          │  │  ├── {{Green|vmlinux}}                       {{Highlight|Debug symbol file for Linux kernel}}
+
  │          │  │  ├── {{Green|vmlinux}}                         {{Highlight|Debug symbol file for Linux kernel}}
 
  │          │  │  └── {{Green|[...]}}
 
  │          │  │  └── {{Green|[...]}}
 
  │          │  └── [...]
 
  │          │  └── [...]
   
  │          ├── tf-a-stm32mp-1.5-release.AUTOINC+ed8112606c {{Highlight|'''TF-A installation directory'''}}
+
  │          ├── {{EcosystemRelease/Package | revision=latest| package=OP-TEE source  | request=path}}                                          {{Highlight|'''OP-TEE OS installation directory'''}}
  │          │  ├── {{Green|build}}                                   {{Highlight|'''TF-A build directory'''}}
+
  │          │  ├── {{Green|build}}                                                           {{Highlight|'''OP-TEE OS build directory'''}}
  │          │  │  ├── {{Green|tf-a-bl2-trusted.elf}}               {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
+
  │          │  │  ├── {{Green|tee-[header/pageable/pager]_v2-stm32mp157a-dk1-optee.stm32}} {{Highlight|Binaries for OP-TEE OS runtime services (trusted boot chain) → STM32MP157A-DK1}}
│          │  │  ├── {{Green|tf-a-bl32-trusted.elf}}              {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
+
  │          │  │  ├── {{Green|tee-[header/pageable/pager]_v2-stm32mp157c-dk2-optee.stm32}}  {{Highlight|Binaries for OP-TEE OS runtime services (trusted boot chain) → STM32MP157C-DK2}}
  │          │  │  ├── {{Green|tf-a-stm32mp157c-dk2-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Discovery kits}}
+
  │          │  │  ├── {{Green|tee-[header/pageable/pager]_v2-stm32mp157c-ev1-optee.stm32}}  {{Highlight|Binaries for OP-TEE OS runtime services (trusted boot chain) → STM32MP157C-EV1}}
  │          │  │  ├── {{Green|tf-a-stm32mp157c-ev1-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP15 Evaluation boards}}
 
 
  │          │  │  └── {{Green|[...]}}
 
  │          │  │  └── {{Green|[...]}}
 
  │          │  └── [...]
 
  │          │  └── [...]
   
  │          └── u-boot-trusted-stm32mp-2018.03-release.AUTOINC+f95ab1fb6e {{Highlight|'''U-Boot installation directory'''}}
+
  │          ├──{{EcosystemRelease/Package | revision=latest| package=TF-A source | request=path}}                            {{Highlight|'''TF-A installation directory'''}}
  │              ├── {{Green|build-stm32mp15_trusted_defconfig}}                     {{Highlight|'''U-Boot build directory'''}}
+
│          │  ├── {{Green|build}}                                      {{Highlight|'''TF-A build directory'''}}
  │              │  ├── {{Green|u-boot-stm32mp157c-dk2-trusted.elf}}               {{Highlight|Debug symbol file for U-Boot → STM32MP15 Discovery kits}}
+
│          │  │  ├── {{Green|optee}}                                  {{Highlight|TF-A, with OP-TEE OS}}
  │              │  ├── {{Green|u-boot-stm32mp157c-dk2-trusted.stm32}}             {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP15 Discovery kits}}
+
│          │  │  │  ├── {{Green|tf-a-bl2-optee.elf}}                  {{Highlight|Debug symbol file for TF-A, with OP-TEE OS → trusted boot firmware stage}}
  │              │  ├── {{Green|u-boot-stm32mp157c-ev1-trusted.elf}}               {{Highlight|Debug symbol file for U-Boot → STM32MP15 Evaluation boards}}
+
│          │  │  │  ├── {{Green|tf-a-stm32mp157a-dk1-optee.stm32}}    {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157A-DK1}}
  │              │  ├── {{Green|u-boot-stm32mp157c-ev1-trusted.stm32}}             {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP15 Evaluation boards}}
+
│          │  │  │  ├── {{Green|tf-a-stm32mp157c-dk2-optee.stm32}}    {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157C-DK2}}
  +
│          │  │  │  ├── {{Green|tf-a-stm32mp157c-ev1-optee.stm32}}    {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157C-EV1}}
  +
│          │  │  │  └── {{Green|[...]}}
  +
│          │  │  └── {{Green|trusted}}                                {{Highlight|TF-A, without OP-TEE OS}}
  +
│          │  │      ├── {{Green|tf-a-bl2-trusted.elf}}                {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
  +
│          │  │      ├── {{Green|tf-a-bl32-trusted.elf}}              {{Highlight|Debug symbol file for TF-A → trusted boot firmware stage}}
  +
│          │  │      ├── {{Green|tf-a-stm32mp157a-dk1-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP157A-DK1}}
  +
│          │  │      ├── {{Green|tf-a-stm32mp157c-dk2-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP157C-DK2}}
  +
│          │  │      ├── {{Green|tf-a-stm32mp157c-ev1-trusted.stm32}}  {{Highlight|TF-A binary for ''FSBL'' partition (trusted boot chain) → STM32MP157C-EV1}}
  +
│          │  │      └── {{Green|[...]}}
  +
│          │  └── [...]
  +
 
  +
│          └── {{EcosystemRelease/Package | revision=latest| package=U-Boot source | request=path}}                      {{Highlight|'''U-Boot installation directory'''}}
  +
  │              ├── {{Green|build-basic}}                                {{Highlight|'''U-Boot build directory for basic boot chain'''}}
  +
│              │  ├── {{Green|u-boot-spl.stm32-stm32mp157a-dk1-basic}}  {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP157A-DK1}}
  +
│              │  ├── {{Green|u-boot-spl.stm32-stm32mp157c-dk2-basic}}  {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP157C-DK2}}
  +
│              │  ├── {{Green|u-boot-spl.stm32-stm32mp157c-ev1-basic}}  {{Highlight|U-Boot binary for ''FSBL'' partition (basic boot chain) → STM32MP157C-EV1}}
  +
│              │  ├── {{Green|u-boot-stm32mp157a-dk1-basic.img}}        {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP157A-DK1}}
  +
│              │  ├── {{Green|u-boot-stm32mp157c-dk2-basic.img}}        {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP157C-DK2}}
  +
│              │  ├── {{Green|u-boot-stm32mp157c-ev1-basic.img}}        {{Highlight|U-Boot binary for ''SSBL'' partition (basic boot chain) → STM32MP157C-EV1}}
  +
│              ├── {{Green|build-optee}}                                {{Highlight|'''U-Boot build directory for trusted boot chain, with OP-TEE OS'''}}
  +
│              │  ├── {{Green|u-boot-stm32mp157a-dk1-optee.elf}}        {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157A-DK1}}
  +
│              │  ├── {{Green|u-boot-stm32mp157a-dk1-optee.stm32}}      {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157A-DK1}}
  +
│              │  ├── {{Green|u-boot-stm32mp157c-dk2-optee.elf}}        {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157C-DK2}}
  +
│              │  ├── {{Green|u-boot-stm32mp157c-dk2-optee.stm32}}      {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157C-DK2}}
  +
│              │  ├── {{Green|u-boot-stm32mp157c-ev1-optee.elf}}        {{Highlight|Debug symbol file for U-Boot, with OP-TEE OS → STM32MP157C-EV1}}
  +
│              │  ├── {{Green|u-boot-stm32mp157c-ev1-optee.stm32}}      {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain), with OP-TEE OS → STM32MP157C-EV1}}
  +
│              │  └── {{Green|[...]}}
  +
│              ├── {{Green|build-trusted}}                               {{Highlight|'''U-Boot build directory for trusted boot chain'''}}
  +
│              │  ├── {{Green|u-boot-stm32mp157a-dk1-trusted.elf}}      {{Highlight|Debug symbol file for U-Boot → STM32MP157A-DK1}}
  +
│              │  ├── {{Green|u-boot-stm32mp157a-dk1-trusted.stm32}}    {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP157A-DK1}}
  +
  │              │  ├── {{Green|u-boot-stm32mp157c-dk2-trusted.elf}}     {{Highlight|Debug symbol file for U-Boot → STM32MP157C-DK2}}
  +
  │              │  ├── {{Green|u-boot-stm32mp157c-dk2-trusted.stm32}}   {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP157C-DK2}}
  +
  │              │  ├── {{Green|u-boot-stm32mp157c-ev1-trusted.elf}}     {{Highlight|Debug symbol file for U-Boot → STM32MP157C-EV1}}
  +
  │              │  ├── {{Green|u-boot-stm32mp157c-ev1-trusted.stm32}}   {{Highlight|U-Boot binary for ''SSBL'' partition (trusted boot chain) → STM32MP157C-EV1}}
 
  │              │  └── {{Green|[...]}}
 
  │              │  └── {{Green|[...]}}
 
  │              └── [...]
 
  │              └── [...]
Line 294: Line 340:
   
 
As long as you did not modify the source code:
 
As long as you did not modify the source code:
* the {{Purple|files in purple}} are the same as the ones available in the '''Starter Package''': flash layout, binaries for ''bootfs'', ''userfs'' and ''rootfs'' partitions
+
* the {{STPurple|files in STPurple}} are the same as the ones available in the '''Starter Package''': flash layout, binaries for ''bootfs'', ''rootfs'', ''userfs'' and ''vendorfs'' partitions
* the {{Grey|files in grey}} are the same as the ones available in the '''Starter and Developer Packages''': binaries for ''FSBL'' and ''SSBL'' partitions
+
* the {{Grey|files in grey}} are the same as the ones available in the '''Starter and Developer Packages''': binaries for ''FSBL'' and ''SSBL'' partitions, and for OP-TEE OS runtime services
* the {{Orange|files in orange}} are the same as the ones available in the '''Developer Package''': Linux kernel image and device tree blobs
+
* the {{Orange|files in orange}} are the same as the ones available in the '''Developer Package''': Linux kernel image and device tree blobs, and debug symbol files
* the {{Rose|files in pink}} are only available in the '''Distribution Package''': they concern the OP-TEE (see [[How to populate and boot a board with OP-TEE]])
 
   
   
  Distribution-Package/openstlinux-4.14-rocko-mp1-18-07-03/build-openstlinuxweston-stm32mp1/{{Green|tmp-glibc/deploy}}
+
  Distribution-Package/{{EcosystemRelease/Package | revision=latest | package=OpenSTLinux distribution | request=name}} /build-openstlinuxweston-stm32mp/{{Green|tmp-glibc/deploy}}
  └── {{Green|images}}
+
  ├── {{Green|images}}
  |   └── {{Green|stm32mp1}}
+
    └── {{Green|stm32mp1}}
  |       ├── {{Purple|flashlayout_st-image-weston}}                                {{Highlight|Flash layout files (description of the partitions) for the supported flash devices}}
+
        ├── {{STPurple|flashlayout_st-image-weston}}                                {{Highlight|Flash layout files (description of the partitions) for the supported flash devices}}
  |       │  ├── {{Rose|FlashLayout_emmc_stm32mp157c-ev1-optee.tsv}}              {{Highlight|Flash layout file for eMMC and OP-TEE → STM32MP15 Evaluation boards}}
+
        │  ├── {{STPurple|FlashLayout_emmc_stm32mp157c-ev1-optee.tsv}}              {{Highlight|Flash layout file for eMMC and trusted boot chain, with OP-TEE OS STM32MP157C-EV1}}
  |       │  ├── {{Purple|FlashLayout_emmc_stm32mp157c-ev1-trusted.tsv}}            {{Highlight|Flash layout file for eMMC and trusted boot chain → STM32MP15 Evaluation boards}}
+
        │  ├── {{STPurple|FlashLayout_emmc_stm32mp157c-ev1-trusted.tsv}}            {{Highlight|Flash layout file for eMMC and trusted boot chain →