File structure
This page describes organization of the tree structure in optee_os.
The description is dived into different tables. First the flat top directory
followed by the core/
directory tree with the core/arch/arm/
tree
in separate table. There are two more tables covering the lib/
and
ta/
trees.
Top level directories
Directory |
Description |
---|---|
core/ |
Files that are only used building OP-TEE core, the privileged mode part |
keys/ |
Secure keys or not so secure example keys |
ldelf/ |
Ldelf the user mode ELF loader, for instance used to load TAs |
lib/ |
Libraries that are used both when building more than one component, for instance, OP-TEE core, ldelf, or TAs |
mk/ |
Makefiles supporting the build system |
scripts/ |
Helper scripts for miscellaneous tasks |
ta/ |
Files that are only used when building TAs |
out/ |
Created when building unless a different out directory is specified with
|
core/
Directory |
Description |
---|---|
arch/ |
Architecture and platform specific files |
arch/arm/ |
Arm specific architecture and platform files |
crypto/ |
Crypto infrastructure including software implementations of certain algorithms. |
drivers/ |
Various device drivers |
include/ |
Header files of resources exported to the rest of the core |
include/crypto/ |
Include files related to files in /core/crypto |
include/drivers/ |
Include files related to device drivers |
include/dt-bindings/ |
Include files for the device tree bindings |
include/kernel/ |
Include files related to files in /core/kernel |
include/mm/ |
Include files related to memory management and files in /core/mm |
include/tee/ |
Include files related to files in /core/tee |
kernel/ |
Miscellaneous architecture neutral files |
lib/ |
Libraries that are used by core only |
lib/libfdt/ |
Flat Device Trees manipulation library |
lib/libfdt/include/ |
Include files related to libfdt |
lib/libtomcrypt/ |
Libtomcrypt crypto library |
lib/libtomcrypt/include/ |
Include files related to libtomcrypt |
lib/libtomcrypt/src/ |
Source files of libtomcrypt |
lib/zlib/ |
Zlib compression library |
mm/ |
Architecture neutral memory management |
pta/ |
Various pseudo TAs |
tee/ |
Architecture neutral TEE files |
core/arch/arm/
Directory |
Description |
---|---|
cpu/ |
CPU specific settings |
crypto/ |
Architecture specific software implementations of crypto algorithms |
dts/ |
Device tree source files |
include/ |
Header files of resources exported to the rest of the core |
include/crypto/ |
Architecture specific include files related to /core/crypto or /core/arch/arm/crypto files |
include/kernel/ |
Architecture specific include files related to /core/kernel or /core/arch/arm/kernel files |
include/mm/ |
Architecture specific include files related to /core/mm or /core/arch/arm/mm files |
include/sm/ |
Include files related to the secure monitor |
include/tee/ |
Architecture specific include files related to /core/tee or /core/arch/arm/tee files |
kernel/ |
Miscellaneous low level architecure specific files |
plat-*/ |
Specific files for the different supported platform |
mm/ |
Memory management |
tee/ |
TEE files |
sm/ |
Secure Monitor, ARMv7-A only |
lib/
Directory |
Description |
---|---|
libdl/ |
Implementation of dlopen(), dlsym() and dlclose() used by TAs and ldelf |
libdl/include/ |
Include files for libdl |
libmbedtls/ |
Mbed TLS crypto library |
libmbedtls/core/ |
Glue code only compiled with core to connect with the core internal <crypto/crypto.h> API. |
libmbedtls/include/ |
Include files with configuration of Mbed TLS |
libmbedtls/mbedtls/ |
Top directory of the imported Mbed TLS source tree |
libmbedtls/mbedtls/include/ |
Mbed TLS include files |
libmbedtls/mbedtls/library/ |
Mbed TLS implementation |
libunw/ |
Unwind library |
libunw/include/ |
Include files for libunwnd |
libutee/ |
Libutee which provide the implementation of TEE Internal Core API. |
libutee/arch/ |
Architecture specific implementation |
libutee/include/ |
Include files related to libutee and the header files for TEE Internal Core API |
libutils/ |
The reduced “libc” of OP-TEE |
libutils/ext/ |
Extensions to a standard libc |
libutils/ext/arch/ |
Architecture specific implmementation of the extensions |
libutils/ext/include/ |
Include files related to the extensions |
libutils/isoc/ |
A subset of ISOC |
libutils/isoc/arch/ |
Architecture specific |
libutils/isoc/include/ |
Header files related to the provided subset of ISOC |
libutils/isoc/newlib/ |
Routines imported from newlib |
ta/
Directory |
Description |
---|---|
trusted_keys |
Trusted key TA |
trusted_keys/include |
Header file of the ABI provided by the trusted key TA |
arch |
Architecture specific files needed to compile a TA |
mk |
Makefile includes needed to build TAs and the TA dev kit |
avb |
TA to support AVB (Android Verified Boot) |
avb/include |
Header file of the ABI provided by the AVB TA |
pkcs11 |
TA to support PKCS#11 |
pkcs11/src |
Source code for the PKCS#11 TA |
pkcs11/include |
Header file for the ABI provided by the PKCS#11 TA |