| ########################## |
| Using docker to build TF-M |
| ########################## |
| |
| This tool has been made to provide an easy way to build the trusted firmware m |
| project without having to set up a whole working environment.The only tool |
| necessary is docker. |
| |
| ************************ |
| Configuration Parameters |
| ************************ |
| |
| The config file /config/container_cfg is used to set up the tool. the following |
| parameters are available : |
| |
| - CORE_IMG_NAME : Name of the main docker image running GNUARM |
| - ARMCLANG_IMG_NAME : Name of the image using ARMCLANG. This image is based |
| on the core image. |
| - DOCS_IMG_NAME : Name of the image used to build the documentation. This |
| image is based on the core image. |
| - BUILD_DIR : Name of the directory where the build files will be generated. If |
| your current TFM repository has a directory named the same, it will be |
| deleted. |
| - DOCS_DIR : Name of the directory where the documentation files will be |
| generated. If your current TFM repository has a directory named the same, |
| it will be deleted. |
| |
| - LOCAL_TFM_REPO : path to your local tfm repository. this parameter is |
| mandatory |
| - PLATFORM : Name of the platform used for the TFM build. |
| - ADDITIONNAL_PARAMETERS (optionnal) : additionnal parameters for the TFM |
| build. |
| |
| ***************** |
| Building an image |
| ***************** |
| |
| To build the docker images (TFM_Core, TFM_Armclang and TFM_documentation), |
| launch the build_images.sh script. |
| |
| **************** |
| Running an image |
| **************** |
| |
| To launch a container, launch the corresponding run_xxx.sh script. Your local |
| TFM repo will be mounted in the containerand the generated files will be |
| available in your local TFM repo after the build. |
| |
| To launch a container and build TFM manually, use the following command : |
| |
| docker run -it --rm --user $(id -u):$(id -g) -v /etc/group:/etc/group:ro \ |
| -v /etc/passwd:/etc/passwd:ro -v /etc/shadow:/etc/shadow:ro -v \ |
| $LOCAL_TFM_REPO:/opt/trusted-firmware-m --entrypoint /bin/bash $CORE_IMG_NAME |
| |
| Note : Armclang currently uses the ARMLTD_LICENSE_FILE variable which should |
| point to a license server. |
| |
| -------------- |
| |
| *Copyright (c) 2021, Arm Limited. All rights reserved.* |
| *SPDX-License-Identifier: BSD-3-Clause* |