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` and `sp` environments: 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-2023, Arm Limited and Contributors. All rights reserved.*

SPDX-License-Identifier: BSD-3-Clause
