2.5.0-rc1
Update minor revision to 5 for release tag 2.5.0-rc1

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
1 file changed
tree: fe0d7e24f9a13fafa99aa1c48cb73a7416c73647
  1. core/
  2. documentation/
  3. keys/
  4. lib/
  5. mk/
  6. scripts/
  7. ta/
  8. .gitignore
  9. .travis.yml
  10. CHANGELOG.md
  11. LICENSE
  12. MAINTAINERS.md
  13. Makefile
  14. Notice.md
  15. README.md
  16. typedefs.checkpatch
README.md

OP-TEE Trusted OS

Contents

  1. Introduction
  2. License
  3. Platforms supported
  4. Get and build OP-TEE software
  5. Coding standards 5. checkpatch

1. Introduction

The optee_os git, contains the source code for the TEE in Linux using the ARMĀ® TrustZoneĀ® technology. This component meets the GlobalPlatform TEE System Architecture specification. It also provides the TEE Internal core API v1.1 as defined by the GlobalPlatform TEE Standard for the development of Trusted Applications. For a general overview of OP-TEE and to find out how to contribute, please see the Notice.md file.

The Trusted OS is accessible from the Rich OS (Linux) using the GlobalPlatform TEE Client API Specification v1.0, which also is used to trigger secure execution of applications within the TEE.


2. License

The software is distributed mostly under the BSD 2-Clause open source license, apart from some files in the optee_os/lib/libutils directory which are distributed under the BSD 3-Clause or public domain licenses.


3. Platforms supported

Several platforms are supported. In order to manage slight differences between platforms, a PLATFORM_FLAVOR flag has been introduced. The PLATFORM and PLATFORM_FLAVOR flags define the whole configuration for a chip the where the Trusted OS runs. Note that there is also a composite form which makes it possible to append PLATFORM_FLAVOR directly, by adding a dash in-between the names. The composite form is shown below for the different boards. For more specific details about build flags etc, please read the file build_system.md. Some platforms have different sub-maintainers, please refer to the file MAINTAINERS.md for contact details for various platforms.

PlatformComposite PLATFORM flagPublicly available?
Allwinner A80 BoardPLATFORM=sunxiNo
ARM Juno BoardPLATFORM=vexpress-junoYes
FSL ls1021aPLATFORM=ls-ls1021atwrYes
FSL i.MX6 Quad SABRE Lite BoardPLATFORM=imx-mx6qsabreliteYes
FSL i.MX6 Quad SABRE SD BoardPLATFORM=imx-mx6qsabresdYes
FSL i.MX6 UltraLite EVK BoardPLATFORM=imx-mx6ulevkYes
NXP i.MX7Dual SabreSD BoardPLATFORM=imx-mx7dsabresdYes
ARM Foundation FVPPLATFORM=vexpress-fvpYes
HiSilicon D02PLATFORM=d02No
HiKey Board (HiSilicon Kirin 620)PLATFORM=hikeyYes
MediaTek MT8173 EVB BoardPLATFORM=mediatek-mt8173No
QEMUPLATFORM=vexpress-qemu_virtYes
QEMUv8PLATFORM=vexpress-qemu_armv8aYes
Raspberry Pi 3PLATFORM=rpi3Yes
Renesas RCARPLATFORM=rcarNo
STMicroelectronics b2260 - h410 (96boards fmt)PLATFORM=stm-b2260No
STMicroelectronics b2120 - h310 / h410PLATFORM=stm-cannesNo
Texas Instruments DRA7xxPLATFORM=ti-dra7xxYes
Texas Instruments AM57xxPLATFORM=ti-am57xxYes
Texas Instruments AM43xxPLATFORM=ti-am43xxYes
Xilinx Zynq 7000 ZC702PLATFORM=zynq7k-zc702Yes
Xilinx Zynq UltraScale+ MPSOCPLATFORM=zynqmp-zcu102Yes
Spreadtrum SC9860PLATFORM=sprd-sc9860No

4. Get and build OP-TEE software

Please see build for instructions how to run OP-TEE on various devices.


5. Coding standards

In this project we are trying to adhere to the same coding convention as used in the Linux kernel (see CodingStyle). We achieve this by running checkpatch from Linux kernel. However there are a few exceptions that we had to make since the code also follows GlobalPlatform standards. The exceptions are as follows:

  • CamelCase for GlobalPlatform types are allowed.
  • And we also exclude checking third party code that we might use in this project, such as LibTomCrypt, MPA, newlib (not in this particular git, but those are also part of the complete TEE solution). The reason for excluding and not fixing third party code is because we would probably deviate too much from upstream and therefore it would be hard to rebase against those projects later on (and we don't expect that it is easy to convince other software projects to change coding style).

5.1 checkpatch

Since checkpatch is licensed under the terms of GNU GPL License Version 2, we cannot include this script directly into this project. Please use checkpatch directly from the Linux kernel git in combination with the local checkpatch script.