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
O=... on the command line |
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 |