blob: 3cca3a6fb6ea2fd05ac706a3c55642c49e0e10be [file] [log] [blame]
.. todo::
Joakim: Question is whether this should be moved under the "optee_os"
specific page instead?
.. _file_structure:
File structure
##############
This page describes what different folders in :ref:`optee_os` contains.
Top level directories
*********************
.. list-table:: Top level directories
:header-rows: 1
:widths: 1 5
* - Directory
- Description
* - /core
- Files that are only used building TEE Core
* - /lib
- Files that are used both when building TEE Core and TAs
* - /ta
- Files that are only used when building TAs
* - /mk
- Makefiles supporting the build system
* - /tmp-stuff
- Temporary stuff that will be removed before the final commit is made
* - /scripts
- Helper scripts for miscellaneous tasks
* - /out
- Created when building unless a different out directory is specified with
``O=...`` on the command line
/core
*****
.. list-table:: Structure of /core
:header-rows: 1
:widths: 1 5
* - Directory
- Description
* - /arch
- Architecture and platform specific files
* - /include
- Header files of resources exported by the core
* - /lib
- Generic libraries that are likely to be replaced in a final product
* - /mm
- Generic memory management, currently empty
* - /tee
- Generic TEE files
/core/arch
**********
.. list-table:: Structure of /core/arch
:header-rows: 1
:widths: 1 5
* - Directory
- Description
* - /arm
- ARMv7 and Aarch32 specific architecture and platform specific files
/core/arch/arm
**************
.. list-table:: Structure of /core/arch/arm
:header-rows: 1
:widths: 1 5
* - Directory
- Description
* - /dts
- Device tree source files
* - /include
- Include files used in rest of TEE core but not in any supporting
libraries
* - /kern
- Low level and core parts of TEE Core
* - /mm
- Memory management
* - /tee
- TEE files
* - /sm
- Secure Monitor
* - /plat-foo
- Specific files for the ``foo`` platform
/core/arch/arm/include
**********************
.. list-table:: Structure of /core/arch/arm/include
:header-rows: 1
:widths: 1 5
* - Directory
- Description
* - /kern
- Include files exposing API for /core/arch/arm/kern files
* - /kta
- Include files exposing the KTA API that is mainly used by kernel TAs
* - /mm
- Include files exposing API for /core/arch/arm/mm files
* - /rom
- Old ROM files that should be removed before going public
* - /sm
- Include files exposing API for Secure Monitor
/core/include
*************************
.. list-table:: Structure of /core/include
:header-rows: 1
:widths: 1 5
* - Directory
- Description
* - /drivers
- Include files exposing API for /core/drivers files
* - /dt-bindings
- Include files for the device tree bindings
/core/lib/lib{crypto,sla}
*************************
.. list-table:: Structure of /core/lib/lib{crypto,sla}
:header-rows: 1
:widths: 1 5
* - Directory
- Description
* - /
- Source files for the library
* - /include
- Include files exposing the API of the library
/lib/libutils
*************
.. list-table:: Structure of /lib/libutils
:header-rows: 1
:widths: 1 5
* - Directory
- Description
* - /
- Source file for the library
* - /arch
- Architecture specific source files
* - /arch/arm
- ARMv7 and Aarch32 specific source files
* - /arch/arm/include
- ARMv7 and Aarch32 specific include files
* - /include
- Include files exposing the API of the library