GithubHelp home page GithubHelp logo

tonyxie06 / optee_os Goto Github PK

View Code? Open in Web Editor NEW

This project forked from op-tee/optee_os

0.0 2.0 0.0 11.1 MB

Trusted side of the TEE

License: Other

Makefile 2.14% C 88.56% Assembly 3.58% C++ 1.01% Roff 3.38% HTML 0.93% Shell 0.02% Python 0.34% Awk 0.04%

optee_os's Introduction

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.

Platform Composite PLATFORM flag Publicly available?
Allwinner A80 Board PLATFORM=sunxi No
ARM Juno Board PLATFORM=vexpress-juno Yes
FSL ls1021a PLATFORM=ls-ls1021atwr Yes
FSL i.MX6 Quad SABRE Lite Board PLATFORM=imx-mx6qsabrelite Yes
FSL i.MX6 Quad SABRE SD Board PLATFORM=imx-mx6qsabresd Yes
FSL i.MX6 UltraLite EVK Board PLATFORM=imx-mx6ulevk Yes
NXP i.MX7Dual SabreSD Board PLATFORM=imx-mx7dsabresd Yes
ARM Foundation FVP PLATFORM=vexpress-fvp Yes
HiSilicon D02 PLATFORM=d02 No
HiKey Board (HiSilicon Kirin 620) PLATFORM=hikey or PLATFORM=hikey-hikey Yes
HiKey960 Board (HiSilicon Kirin 960) PLATFORM=hikey-hikey960 Yes
MediaTek MT8173 EVB Board PLATFORM=mediatek-mt8173 No
QEMU PLATFORM=vexpress-qemu_virt Yes
QEMUv8 PLATFORM=vexpress-qemu_armv8a Yes
Raspberry Pi 3 PLATFORM=rpi3 Yes
Renesas RCAR PLATFORM=rcar No
STMicroelectronics b2260 - h410 (96boards fmt) PLATFORM=stm-b2260 No
STMicroelectronics b2120 - h310 / h410 PLATFORM=stm-cannes No
Texas Instruments DRA7xx PLATFORM=ti-dra7xx Yes
Texas Instruments AM57xx PLATFORM=ti-am57xx Yes
Texas Instruments AM43xx PLATFORM=ti-am43xx Yes
Xilinx Zynq 7000 ZC702 PLATFORM=zynq7k-zc702 Yes
Xilinx Zynq UltraScale+ MPSOC PLATFORM=zynqmp-zcu102 Yes
Spreadtrum SC9860 PLATFORM=sprd-sc9860 No

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.

optee_os's People

Contributors

jenswi-linaro avatar jforissier avatar etienne-lms avatar jbech-linaro avatar mrvan avatar cedric-chaumont-st avatar glneo avatar lorc avatar lws-team avatar prime-zeng avatar zhizhouzh avatar yanyan-wrs avatar sorenb-xlnx avatar guanchaoliang avatar mbriand avatar sunyanbang avatar d3zd3z avatar delorme-jm avatar josephchen2017 avatar pm215 avatar xiaoqiangdu avatar liuyq avatar p1119r1m avatar seqlabs avatar zhupg avatar bogdan-liulko avatar youssefesmat avatar vchong avatar tbistm avatar sylvainpelissier avatar

Watchers

Stanley ding avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.