blob: 3cca3a6fb6ea2fd05ac706a3c55642c49e0e10be [file] [log] [blame]
Joakim Bech8e5c5b32018-10-25 08:18:32 +02001.. todo::
2
3 Joakim: Question is whether this should be moved under the "optee_os"
4 specific page instead?
5
6.. _file_structure:
7
8File structure
9##############
10This page describes what different folders in :ref:`optee_os` contains.
11
12Top level directories
13*********************
14.. list-table:: Top level directories
15 :header-rows: 1
16 :widths: 1 5
17
18 * - Directory
19 - Description
20
21 * - /core
22 - Files that are only used building TEE Core
23
24 * - /lib
25 - Files that are used both when building TEE Core and TAs
26
27 * - /ta
28 - Files that are only used when building TAs
29
30 * - /mk
31 - Makefiles supporting the build system
32
33 * - /tmp-stuff
34 - Temporary stuff that will be removed before the final commit is made
35
36 * - /scripts
37 - Helper scripts for miscellaneous tasks
38
39 * - /out
40 - Created when building unless a different out directory is specified with
41 ``O=...`` on the command line
42
43/core
44*****
45.. list-table:: Structure of /core
46 :header-rows: 1
47 :widths: 1 5
48
49 * - Directory
50 - Description
51
52 * - /arch
53 - Architecture and platform specific files
54
55 * - /include
56 - Header files of resources exported by the core
57
58 * - /lib
59 - Generic libraries that are likely to be replaced in a final product
60
61 * - /mm
62 - Generic memory management, currently empty
63
64 * - /tee
65 - Generic TEE files
66
67/core/arch
68**********
69.. list-table:: Structure of /core/arch
70 :header-rows: 1
71 :widths: 1 5
72
73 * - Directory
74 - Description
75
76 * - /arm
77 - ARMv7 and Aarch32 specific architecture and platform specific files
78
79/core/arch/arm
80**************
81.. list-table:: Structure of /core/arch/arm
82 :header-rows: 1
83 :widths: 1 5
84
85 * - Directory
86 - Description
87
88 * - /dts
89 - Device tree source files
90
91 * - /include
92 - Include files used in rest of TEE core but not in any supporting
93 libraries
94
95 * - /kern
96 - Low level and core parts of TEE Core
97
98 * - /mm
99 - Memory management
100
101 * - /tee
102 - TEE files
103
104 * - /sm
105 - Secure Monitor
106
107 * - /plat-foo
108 - Specific files for the ``foo`` platform
109
110/core/arch/arm/include
111**********************
112.. list-table:: Structure of /core/arch/arm/include
113 :header-rows: 1
114 :widths: 1 5
115
116 * - Directory
117 - Description
118
119 * - /kern
120 - Include files exposing API for /core/arch/arm/kern files
121
122 * - /kta
123 - Include files exposing the KTA API that is mainly used by kernel TAs
124
125 * - /mm
126 - Include files exposing API for /core/arch/arm/mm files
127
128 * - /rom
129 - Old ROM files that should be removed before going public
130
131 * - /sm
132 - Include files exposing API for Secure Monitor
133
134/core/include
135*************************
136.. list-table:: Structure of /core/include
137 :header-rows: 1
138 :widths: 1 5
139
140 * - Directory
141 - Description
142
143 * - /drivers
144 - Include files exposing API for /core/drivers files
145
146 * - /dt-bindings
147 - Include files for the device tree bindings
148
149/core/lib/lib{crypto,sla}
150*************************
151.. list-table:: Structure of /core/lib/lib{crypto,sla}
152 :header-rows: 1
153 :widths: 1 5
154
155 * - Directory
156 - Description
157
158 * - /
159 - Source files for the library
160
161 * - /include
162 - Include files exposing the API of the library
163
164/lib/libutils
165*************
166.. list-table:: Structure of /lib/libutils
167 :header-rows: 1
168 :widths: 1 5
169
170 * - Directory
171 - Description
172
173 * - /
174 - Source file for the library
175
176 * - /arch
177 - Architecture specific source files
178
179 * - /arch/arm
180 - ARMv7 and Aarch32 specific source files
181
182 * - /arch/arm/include
183 - ARMv7 and Aarch32 specific include files
184
185 * - /include
186 - Include files exposing the API of the library