You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
4.4 KiB
137 lines
4.4 KiB
4 months ago
|
Prerequisites
|
||
|
=============
|
||
|
|
||
|
This document describes the software requirements for building |TF-A| for
|
||
|
AArch32 and AArch64 target platforms.
|
||
|
|
||
|
It may possible to build |TF-A| with combinations of software packages that are
|
||
|
different from those listed below, however only the software described in this
|
||
|
document can be officially supported.
|
||
|
|
||
|
Build Host
|
||
|
----------
|
||
|
|
||
|
|TF-A| can be built using either a Linux or a Windows machine as the build host.
|
||
|
|
||
|
A relatively recent Linux distribution is recommended for building |TF-A|. We
|
||
|
have performed tests using Ubuntu 16.04 LTS (64-bit) but other distributions
|
||
|
should also work fine as a base, provided that the necessary tools and libraries
|
||
|
can be installed.
|
||
|
|
||
|
.. _prerequisites_toolchain:
|
||
|
|
||
|
Toolchain
|
||
|
---------
|
||
|
|
||
|
|TF-A| can be built with any of the following *cross-compiler* toolchains that
|
||
|
target the Armv7-A or Armv8-A architectures:
|
||
|
|
||
|
- GCC >= 9.2-2019.12 (from the `Arm Developer website`_)
|
||
|
- Clang >= 4.0
|
||
|
- Arm Compiler >= 6.0
|
||
|
|
||
|
In addition, a native compiler is required to build the supporting tools.
|
||
|
|
||
|
.. note::
|
||
|
The software has also been built on Windows 7 Enterprise SP1, using CMD.EXE,
|
||
|
Cygwin, and Msys (MinGW) shells, using version 5.3.1 of the GNU toolchain.
|
||
|
|
||
|
.. note::
|
||
|
For instructions on how to select the cross compiler refer to
|
||
|
:ref:`Performing an Initial Build`.
|
||
|
|
||
|
.. _prerequisites_software_and_libraries:
|
||
|
|
||
|
Software and Libraries
|
||
|
----------------------
|
||
|
|
||
|
The following tools are required to obtain and build |TF-A|:
|
||
|
|
||
|
- An appropriate toolchain (see :ref:`prerequisites_toolchain`)
|
||
|
- GNU Make
|
||
|
- Git
|
||
|
|
||
|
The following libraries must be available to build one or more components or
|
||
|
supporting tools:
|
||
|
|
||
|
- OpenSSL >= 1.0.1
|
||
|
|
||
|
Required to build the cert_create tool.
|
||
|
|
||
|
The following libraries are required for Trusted Board Boot support:
|
||
|
|
||
|
- mbed TLS == 2.24.0 (tag: ``mbedtls-2.24.0``)
|
||
|
|
||
|
These tools are optional:
|
||
|
|
||
|
- Device Tree Compiler (DTC) >= 1.4.6
|
||
|
|
||
|
Needed if you want to rebuild the provided Flattened Device Tree (FDT)
|
||
|
source files (``.dts`` files). DTC is available for Linux through the package
|
||
|
repositories of most distributions.
|
||
|
|
||
|
- Arm `Development Studio 5 (DS-5)`_
|
||
|
|
||
|
The standard software package used for debugging software on Arm development
|
||
|
platforms and |FVP| models.
|
||
|
|
||
|
Package Installation (Linux)
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
If you are using the recommended Ubuntu distribution then you can install the
|
||
|
required packages with the following command:
|
||
|
|
||
|
.. code:: shell
|
||
|
|
||
|
sudo apt install build-essential git libssl-dev
|
||
|
|
||
|
The optional packages can be installed using:
|
||
|
|
||
|
.. code:: shell
|
||
|
|
||
|
sudo apt install device-tree-compiler
|
||
|
|
||
|
Supporting Files
|
||
|
----------------
|
||
|
|
||
|
TF-A has been tested with pre-built binaries and file systems from `Linaro
|
||
|
Release 19.06`_. Alternatively, you can build the binaries from source using
|
||
|
instructions in :ref:`Performing an Initial Build`.
|
||
|
|
||
|
.. _prerequisites_get_source:
|
||
|
|
||
|
Getting the TF-A Source
|
||
|
-----------------------
|
||
|
|
||
|
Source code for |TF-A| is maintained in a Git repository hosted on
|
||
|
TrustedFirmware.org. To clone this repository from the server, run the following
|
||
|
in your shell:
|
||
|
|
||
|
.. code:: shell
|
||
|
|
||
|
git clone "https://review.trustedfirmware.org/TF-A/trusted-firmware-a" && (cd "trusted-firmware-a" && mkdir -p .git/hooks && curl -Lo `git rev-parse --git-dir`/hooks/commit-msg https://review.trustedfirmware.org/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg)
|
||
|
|
||
|
This will clone the Git repository also install a *commit hook* that
|
||
|
automatically inserts appropriate *Change-Id:* lines at the end of your
|
||
|
commit messages. These change IDs are required when committing changes that you
|
||
|
intend to push for review via our Gerrit system.
|
||
|
|
||
|
You can read more about Git hooks in the *githooks* page of the Git documentation,
|
||
|
available at: https://git-scm.com/docs/githooks
|
||
|
|
||
|
Alternatively, you can clone without the commit hook using:
|
||
|
|
||
|
.. code:: shell
|
||
|
|
||
|
git clone "https://review.trustedfirmware.org/TF-A/trusted-firmware-a"
|
||
|
|
||
|
--------------
|
||
|
|
||
|
*Copyright (c) 2019, Arm Limited. All rights reserved.*
|
||
|
|
||
|
.. _Arm Developer website: https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads
|
||
|
.. _Linaro Release Notes: https://community.arm.com/dev-platforms/w/docs/226/old-release-notes
|
||
|
.. _Linaro instructions: https://community.arm.com/dev-platforms/w/docs/304/arm-reference-platforms-deliverables
|
||
|
.. _Development Studio 5 (DS-5): https://developer.arm.com/products/software-development-tools/ds-5-development-studio
|
||
|
.. _Linaro Release 19.06: http://releases.linaro.org/members/arm/platforms/19.06
|