4 This is the repository of OP-TEE (Open Portable Trusted Execution Environment),
5 the open-source TEE maintained by Linaro, with initial contributions from
6 STMicroelectronics, Ericsson and Linaro Limited.
11 OP-TEE is designed primarily to rely on the ARM TrustZone(R) technology as the
12 underlying hardware isolation mechanism. However, it has been structured to be
13 compatible with any isolation technology suitable for the TEE concept and goals,
14 such as running as a virtual machine or on a dedicated CPU.
16 The main design goals for OP-TEE are:
17 - Isolation - the TEE provides isolation from the Rich OS (typically,
18 Linux/Android) and it protects the Trusted Applications (TAs) it
19 executes from each other, using underlying HW support,
20 - Small footprint - the TEE should remain small enough so that the TEE
21 core, including all the code and data required to provide isolation, can
22 reside in a reasonable amount of on-chip memory,
23 - Portability - the TEE must be easily pluggable to different
24 architectures and available HW, and it has to support various setups
25 such as multiple TEEs or multiple client OSes.
30 OP-TEE is composed of three gits:
31 - The optee-client git, containing the source code for the TEE client
32 library in Linux. This component provides the TEE Client API as defined
33 by the <a href="https://www.globalplatform.org/specificationsdevice.asp">GlobalPlatform
34 TEE standard</a>. It is distributed under the BSD 2-clause open-source license.
35 - The optee_os git, containing the source code for the TEE OS itself. This
36 component provides the TEE Internal APIs as defined by the
37 GlobalPlatform TEE standard to the Trusted Applications that it
38 executes. It is distributed mostly under the BSD 2-clause open-source
39 license. It includes few external files under BSD 3-clause license or
40 other free software licenses.
41 - The optee_linuxdriver git, containing the source code for the TEE driver
42 in Linux. This component implements a generic TEE driver, designed
43 primarily for TEE implementations that rely on the ARM
44 TrustZone(R)technology. It is distributed under the GPLv2 open-source
45 license. Please note that re-distribution under other versions of the
46 GPL license is not allowed. The rationale behind this limitation is to
47 ensure that this code may be used on products which have security
48 devices which prevent reloading the code. Such security devices would be
49 incompatible with some licenses such as GPLv3 and so distribution under
50 those licenses would be inconsistent with this goal. Therefore it is
51 recommended that care be taken before redistributing any of the
52 components under other license terms than those provided here.
57 Contributions to OP-TEE are managed by the OP-TEE gatekeepers, whose contact
58 email is op-tee[at]linaro[.]org.
60 Anyone can contribute to OP-TEE as long as it is understood that it will require
61 a Signed-off-by tag in the patch and when adding the Signed-off-by tag, you
62 thereby assure that you have read and are following the rules stated in the
63 `Developer Certificate of Origin` as stated below.
66 Developer Certificate of Origin
69 Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
70 660 York Street, Suite 102,
71 San Francisco, CA 94110 USA
73 Everyone is permitted to copy and distribute verbatim copies of this
74 license document, but changing it is not allowed.
77 Developer's Certificate of Origin 1.1
79 By making a contribution to this project, I certify that:
81 (a) The contribution was created in whole or in part by me and I
82 have the right to submit it under the open source license
83 indicated in the file; or
85 (b) The contribution is based upon previous work that, to the best
86 of my knowledge, is covered under an appropriate open source
87 license and I have the right under that license to submit that
88 work with modifications, whether created in whole or in part
89 by me, under the same open source license (unless I am
90 permitted to submit under a different license), as indicated
93 (c) The contribution was provided directly to me by some other
94 person who certified (a), (b) or (c) and I have not modified
97 (d) I understand and agree that this project and the contribution
98 are public and that a record of the contribution (including all
99 personal information I submit with it, including my sign-off) is
100 maintained indefinitely and may be redistributed consistent with
101 this project or the open source license(s) involved.