| .. _file_structure: |
| |
| File structure |
| ############## |
| This page describes organization of the tree structure in :ref:`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 |
| ********************* |
| .. list-table:: |
| :header-rows: 1 |
| :widths: 1 5 |
| |
| * - 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/ |
| ***** |
| .. list-table:: |
| :header-rows: 1 |
| :widths: 1 5 |
| |
| * - 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/ |
| ************** |
| .. list-table:: |
| :header-rows: 1 |
| :widths: 1 5 |
| |
| * - 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/ |
| ************* |
| .. list-table:: |
| :header-rows: 1 |
| :widths: 1 5 |
| |
| * - 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/ |
| ************* |
| .. list-table:: |
| :header-rows: 1 |
| :widths: 1 5 |
| |
| * - 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 |