Software Requirements
=====================

As of today the only available normal-world interface for Trusted Services is available trough linux. Building and end-to-end
firmware stack requires compiling the Linux Kernel and linux user space applications. This restricts the possible host
environments to Linux distributions.
While some TS components can be built under Windows this scenario is not mandated by this documentation.

The preferred host environment is Ubuntu 18.04.

The following tools are required:

   * CMake, version 3.18.4. (See the `CMake download page`_.)
   * GNU Make v4.1 or higher.
   * Git v2.17 or newer.
   * Python3.6 and the modules listed in ``<project>/requirements.txt``.
   * GCC supporting the deployment.

       * `opteesp` environment: a host to aarch64 cross-compiler is needed. Please use the compilers specified by the
         `OP-TEE documentation`_.
       * `arm-linux` environment: a host to aarch64 linux cross-compiler is needed. Please use the version `9.2-2019.12` of the
         "aarch64-none-linux-gnu" compiler available from `arm Developer`_.
         (Note: the compiler part of the OP-TEE build environment works too.)
       * For `linux-pc` environment use the native version of GCC available in your Linux distribution.

   * The `AEM FVP`_ binaries if targeting the FVP platform.

To build the documentation, please refer to :ref:`Documentation Build Instructions`.

--------------

.. _OP-TEE documentation: https://optee.readthedocs.io/en/latest/building/gits/build.html#step-4-get-the-toolchains
.. _arm Developer: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
.. _CMake download page: https://cmake.org/files/v3.18/
.. _`AEM FVP`: https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_11.18_16_Linux64.tgz

*Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.*

SPDX-License-Identifier: BSD-3-Clause
