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 |