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