blob: 6302cd3b6acf3f07bc853460ca4f46f265566464 [file] [log] [blame]
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001/*
2 * Copyright (c) 2019, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
9
10#ifndef __TFM_SPM_DB_INC__
11#define __TFM_SPM_DB_INC__
12
13#include "spm_api.h"
14
15/**************************************************************************/
16/** IRQ count per partition */
17/**************************************************************************/
18#define TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT 0
19
TudorCretufb182bc2019-07-05 17:34:12 +010020#define TFM_PARTITION_TFM_SP_ITS_IRQ_COUNT 0
21
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020022#ifdef TFM_PARTITION_AUDIT_LOG
23#define TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT 0
24#endif /* TFM_PARTITION_AUDIT_LOG */
25
26#define TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT 0
27
28#ifdef TFM_PARTITION_PLATFORM
29#define TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT 0
30#endif /* TFM_PARTITION_PLATFORM */
31
32#define TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT 0
33
34#ifdef TFM_PARTITION_TEST_CORE
35#define TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT 0
36#endif /* TFM_PARTITION_TEST_CORE */
37
38#ifdef TFM_PARTITION_TEST_CORE
39#define TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT 0
40#endif /* TFM_PARTITION_TEST_CORE */
41
42#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
43#define TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT 0
44#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
45
46#ifdef TFM_PARTITION_TEST_CORE_IPC
47#define TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT 0
48#endif /* TFM_PARTITION_TEST_CORE_IPC */
49
50#ifdef TFM_PARTITION_TEST_CORE_IPC
51#define TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT 0
52#endif /* TFM_PARTITION_TEST_CORE_IPC */
53
David Hu33f2fd22019-08-16 15:32:39 +080054#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020055#define TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT 1
David Hu33f2fd22019-08-16 15:32:39 +080056#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020057
Jamie Fox0e823a02019-10-28 17:28:19 +000058#ifdef TFM_PARTITION_TEST_SST
59#define TFM_PARTITION_TFM_SP_SST_TEST_IRQ_COUNT 0
60#endif /* TFM_PARTITION_TEST_SST */
61
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020062/**************************************************************************/
63/** Declarations of partition init functions */
64/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +080065#ifdef TFM_PSA_API
Edison Ai9c48d202019-10-12 16:57:21 +080066extern void tfm_nspm_thread_entry(void);
Summer Qin423dbef2019-08-22 15:59:35 +080067#endif
68
Edison Ai9c48d202019-10-12 16:57:21 +080069extern void tfm_sst_req_mngr_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020070
Edison Ai9c48d202019-10-12 16:57:21 +080071extern void tfm_its_req_mngr_init(void);
TudorCretufb182bc2019-07-05 17:34:12 +010072
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020073#ifdef TFM_PARTITION_AUDIT_LOG
Edison Ai9c48d202019-10-12 16:57:21 +080074extern void audit_core_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020075#endif /* TFM_PARTITION_AUDIT_LOG */
76
Edison Ai9c48d202019-10-12 16:57:21 +080077extern void tfm_crypto_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020078
79#ifdef TFM_PARTITION_PLATFORM
Edison Ai9c48d202019-10-12 16:57:21 +080080extern void platform_sp_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020081#endif /* TFM_PARTITION_PLATFORM */
82
Edison Ai9c48d202019-10-12 16:57:21 +080083extern void attest_partition_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020084
85#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +080086extern void core_test_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020087#endif /* TFM_PARTITION_TEST_CORE */
88
89#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +080090extern void core_test_2_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020091#endif /* TFM_PARTITION_TEST_CORE */
92
93#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Ai9c48d202019-10-12 16:57:21 +080094extern void tfm_secure_client_service_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020095#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
96
97#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +080098extern void ipc_service_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020099#endif /* TFM_PARTITION_TEST_CORE_IPC */
100
101#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +0800102extern void ipc_client_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200103#endif /* TFM_PARTITION_TEST_CORE_IPC */
104
David Hu33f2fd22019-08-16 15:32:39 +0800105#ifdef TFM_ENABLE_IRQ_TEST
Edison Ai9c48d202019-10-12 16:57:21 +0800106extern void tfm_irq_test_1_init(void);
David Hu33f2fd22019-08-16 15:32:39 +0800107#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200108
Jamie Fox0e823a02019-10-28 17:28:19 +0000109#ifdef TFM_PARTITION_TEST_SST
110extern void tfm_sst_test_init(void);
111#endif /* TFM_PARTITION_TEST_SST */
112
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200113/**************************************************************************/
114/** Memory region declarations */
115/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800116#ifdef TFM_PSA_API
117REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Base);
118REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Limit);
119
Edison Aib2134e62019-10-11 18:24:47 +0800120REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Base);
121REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Limit);
122REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Base);
123REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Limit);
124REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base);
125REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit);
126REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base);
127REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit);
128REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base);
129REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200130
Edison Aib2134e62019-10-11 18:24:47 +0800131REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Base);
132REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Limit);
133REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Base);
134REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Limit);
135REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Base);
136REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Limit);
137REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Base);
138REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit);
139REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Base);
140REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit);
TudorCretufb182bc2019-07-05 17:34:12 +0100141
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200142#ifdef TFM_PARTITION_AUDIT_LOG
Edison Aib2134e62019-10-11 18:24:47 +0800143REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Base);
144REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Limit);
145REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base);
146REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit);
147REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base);
148REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit);
149REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base);
150REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit);
151REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base);
152REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200153#endif /* TFM_PARTITION_AUDIT_LOG */
154
Edison Aib2134e62019-10-11 18:24:47 +0800155REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Base);
156REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Limit);
157REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Base);
158REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Limit);
159REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base);
160REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit);
161REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base);
162REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit);
163REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base);
164REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200165
166#ifdef TFM_PARTITION_PLATFORM
Edison Aib2134e62019-10-11 18:24:47 +0800167REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Base);
168REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Limit);
169REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Base);
170REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Limit);
171REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base);
172REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit);
173REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base);
174REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit);
175REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base);
176REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200177#endif /* TFM_PARTITION_PLATFORM */
178
Edison Aib2134e62019-10-11 18:24:47 +0800179REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base);
180REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit);
181REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base);
182REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit);
183REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base);
184REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit);
185REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base);
186REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit);
187REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base);
188REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200189
190#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800191REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Base);
192REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Limit);
193REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Base);
194REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Limit);
195REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base);
196REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit);
197REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base);
198REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit);
199REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base);
200REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200201#endif /* TFM_PARTITION_TEST_CORE */
202
203#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800204REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Base);
205REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Limit);
206REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base);
207REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit);
208REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base);
209REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit);
210REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base);
211REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit);
212REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base);
213REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200214#endif /* TFM_PARTITION_TEST_CORE */
215
216#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Aib2134e62019-10-11 18:24:47 +0800217REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base);
218REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit);
219REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base);
220REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit);
221REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base);
222REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit);
223REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base);
224REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit);
225REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base);
226REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200227#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
228
229#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800230REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base);
231REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit);
232REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base);
233REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit);
234REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base);
235REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit);
236REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base);
237REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit);
238REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base);
239REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200240#endif /* TFM_PARTITION_TEST_CORE_IPC */
241
242#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800243REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base);
244REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit);
245REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base);
246REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit);
247REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base);
248REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit);
249REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base);
250REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit);
251REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base);
252REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200253#endif /* TFM_PARTITION_TEST_CORE_IPC */
254
David Hu33f2fd22019-08-16 15:32:39 +0800255#ifdef TFM_ENABLE_IRQ_TEST
Edison Aib2134e62019-10-11 18:24:47 +0800256REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Base);
257REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Limit);
258REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Base);
259REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Limit);
260REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base);
261REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit);
262REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base);
263REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit);
264REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base);
265REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit);
David Hu33f2fd22019-08-16 15:32:39 +0800266#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200267
Jamie Fox0e823a02019-10-28 17:28:19 +0000268#ifdef TFM_PARTITION_TEST_SST
269REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Base);
270REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Limit);
271REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Base);
272REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Limit);
273REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base);
274REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit);
275REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base);
276REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit);
277REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base);
278REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit);
279#endif /* TFM_PARTITION_TEST_SST */
280
Summer Qin423dbef2019-08-22 15:59:35 +0800281#endif /* defined(TFM_PSA_API) */
282
Edison Ai66fbdf12019-07-08 16:05:07 +0800283#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200284/**************************************************************************/
285/** Context stacks for IRQ handling */
286/**************************************************************************/
287/* The max size of the context stack can be calculated as a function of the IRQ
288 * count of the secure partition:
289 *
290 * max_stack_size = intr_ctx_size + (IRQ_CNT * (intr_ctx_size + hndl_ctx_size))
291 *
292 * where:
293 * intr_ctx: Frame pushed when the partition is interrupted
294 * hndl_ctx: Frame pushed when the partition is handling an interrupt
295 */
Summer Qin423dbef2019-08-22 15:59:35 +0800296static uint32_t ns_interrupt_ctx_stack[
297 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
298
299static uint32_t tfm_core_interrupt_ctx_stack[
300 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
301
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200302static uint32_t ctx_stack_TFM_SP_STORAGE[
303 (sizeof(struct interrupted_ctx_stack_frame_t) +
304 (TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT) * (
305 sizeof(struct interrupted_ctx_stack_frame_t) +
306 sizeof(struct handler_ctx_stack_frame_t)
307 )) / sizeof(uint32_t)];
308
TudorCretufb182bc2019-07-05 17:34:12 +0100309static uint32_t ctx_stack_TFM_SP_ITS[
310 (sizeof(struct interrupted_ctx_stack_frame_t) +
311 (TFM_PARTITION_TFM_SP_ITS_IRQ_COUNT) * (
312 sizeof(struct interrupted_ctx_stack_frame_t) +
313 sizeof(struct handler_ctx_stack_frame_t)
314 )) / sizeof(uint32_t)];
315
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200316#ifdef TFM_PARTITION_AUDIT_LOG
317static uint32_t ctx_stack_TFM_SP_AUDIT_LOG[
318 (sizeof(struct interrupted_ctx_stack_frame_t) +
319 (TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT) * (
320 sizeof(struct interrupted_ctx_stack_frame_t) +
321 sizeof(struct handler_ctx_stack_frame_t)
322 )) / sizeof(uint32_t)];
323#endif /* TFM_PARTITION_AUDIT_LOG */
324
325static uint32_t ctx_stack_TFM_SP_CRYPTO[
326 (sizeof(struct interrupted_ctx_stack_frame_t) +
327 (TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT) * (
328 sizeof(struct interrupted_ctx_stack_frame_t) +
329 sizeof(struct handler_ctx_stack_frame_t)
330 )) / sizeof(uint32_t)];
331
332#ifdef TFM_PARTITION_PLATFORM
333static uint32_t ctx_stack_TFM_SP_PLATFORM[
334 (sizeof(struct interrupted_ctx_stack_frame_t) +
335 (TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT) * (
336 sizeof(struct interrupted_ctx_stack_frame_t) +
337 sizeof(struct handler_ctx_stack_frame_t)
338 )) / sizeof(uint32_t)];
339#endif /* TFM_PARTITION_PLATFORM */
340
341static uint32_t ctx_stack_TFM_SP_INITIAL_ATTESTATION[
342 (sizeof(struct interrupted_ctx_stack_frame_t) +
343 (TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT) * (
344 sizeof(struct interrupted_ctx_stack_frame_t) +
345 sizeof(struct handler_ctx_stack_frame_t)
346 )) / sizeof(uint32_t)];
347
348#ifdef TFM_PARTITION_TEST_CORE
349static uint32_t ctx_stack_TFM_SP_CORE_TEST[
350 (sizeof(struct interrupted_ctx_stack_frame_t) +
351 (TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT) * (
352 sizeof(struct interrupted_ctx_stack_frame_t) +
353 sizeof(struct handler_ctx_stack_frame_t)
354 )) / sizeof(uint32_t)];
355#endif /* TFM_PARTITION_TEST_CORE */
356
357#ifdef TFM_PARTITION_TEST_CORE
358static uint32_t ctx_stack_TFM_SP_CORE_TEST_2[
359 (sizeof(struct interrupted_ctx_stack_frame_t) +
360 (TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT) * (
361 sizeof(struct interrupted_ctx_stack_frame_t) +
362 sizeof(struct handler_ctx_stack_frame_t)
363 )) / sizeof(uint32_t)];
364#endif /* TFM_PARTITION_TEST_CORE */
365
366#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
367static uint32_t ctx_stack_TFM_SP_SECURE_TEST_PARTITION[
368 (sizeof(struct interrupted_ctx_stack_frame_t) +
369 (TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT) * (
370 sizeof(struct interrupted_ctx_stack_frame_t) +
371 sizeof(struct handler_ctx_stack_frame_t)
372 )) / sizeof(uint32_t)];
373#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
374
375#ifdef TFM_PARTITION_TEST_CORE_IPC
376static uint32_t ctx_stack_TFM_SP_IPC_SERVICE_TEST[
377 (sizeof(struct interrupted_ctx_stack_frame_t) +
378 (TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT) * (
379 sizeof(struct interrupted_ctx_stack_frame_t) +
380 sizeof(struct handler_ctx_stack_frame_t)
381 )) / sizeof(uint32_t)];
382#endif /* TFM_PARTITION_TEST_CORE_IPC */
383
384#ifdef TFM_PARTITION_TEST_CORE_IPC
385static uint32_t ctx_stack_TFM_SP_IPC_CLIENT_TEST[
386 (sizeof(struct interrupted_ctx_stack_frame_t) +
387 (TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT) * (
388 sizeof(struct interrupted_ctx_stack_frame_t) +
389 sizeof(struct handler_ctx_stack_frame_t)
390 )) / sizeof(uint32_t)];
391#endif /* TFM_PARTITION_TEST_CORE_IPC */
392
David Hu33f2fd22019-08-16 15:32:39 +0800393#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200394static uint32_t ctx_stack_TFM_IRQ_TEST_1[
395 (sizeof(struct interrupted_ctx_stack_frame_t) +
396 (TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT) * (
397 sizeof(struct interrupted_ctx_stack_frame_t) +
398 sizeof(struct handler_ctx_stack_frame_t)
399 )) / sizeof(uint32_t)];
David Hu33f2fd22019-08-16 15:32:39 +0800400#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200401
Jamie Fox0e823a02019-10-28 17:28:19 +0000402#ifdef TFM_PARTITION_TEST_SST
403static uint32_t ctx_stack_TFM_SP_SST_TEST[
404 (sizeof(struct interrupted_ctx_stack_frame_t) +
405 (TFM_PARTITION_TFM_SP_SST_TEST_IRQ_COUNT) * (
406 sizeof(struct interrupted_ctx_stack_frame_t) +
407 sizeof(struct handler_ctx_stack_frame_t)
408 )) / sizeof(uint32_t)];
409#endif /* TFM_PARTITION_TEST_SST */
410
Summer Qin423dbef2019-08-22 15:59:35 +0800411
412uint32_t *ctx_stack_list[] =
413{
414 ns_interrupt_ctx_stack,
415 tfm_core_interrupt_ctx_stack,
416 ctx_stack_TFM_SP_STORAGE,
TudorCretufb182bc2019-07-05 17:34:12 +0100417 ctx_stack_TFM_SP_ITS,
Summer Qin423dbef2019-08-22 15:59:35 +0800418#ifdef TFM_PARTITION_AUDIT_LOG
419 ctx_stack_TFM_SP_AUDIT_LOG,
420#endif /* TFM_PARTITION_AUDIT_LOG */
421 ctx_stack_TFM_SP_CRYPTO,
422#ifdef TFM_PARTITION_PLATFORM
423 ctx_stack_TFM_SP_PLATFORM,
424#endif /* TFM_PARTITION_PLATFORM */
425 ctx_stack_TFM_SP_INITIAL_ATTESTATION,
426#ifdef TFM_PARTITION_TEST_CORE
427 ctx_stack_TFM_SP_CORE_TEST,
428#endif /* TFM_PARTITION_TEST_CORE */
429#ifdef TFM_PARTITION_TEST_CORE
430 ctx_stack_TFM_SP_CORE_TEST_2,
431#endif /* TFM_PARTITION_TEST_CORE */
432#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
433 ctx_stack_TFM_SP_SECURE_TEST_PARTITION,
434#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
435#ifdef TFM_PARTITION_TEST_CORE_IPC
436 ctx_stack_TFM_SP_IPC_SERVICE_TEST,
437#endif /* TFM_PARTITION_TEST_CORE_IPC */
438#ifdef TFM_PARTITION_TEST_CORE_IPC
439 ctx_stack_TFM_SP_IPC_CLIENT_TEST,
440#endif /* TFM_PARTITION_TEST_CORE_IPC */
441#ifdef TFM_ENABLE_IRQ_TEST
442 ctx_stack_TFM_IRQ_TEST_1,
443#endif /* TFM_ENABLE_IRQ_TEST */
Jamie Fox0e823a02019-10-28 17:28:19 +0000444#ifdef TFM_PARTITION_TEST_SST
445 ctx_stack_TFM_SP_SST_TEST,
446#endif /* TFM_PARTITION_TEST_SST */
Summer Qin423dbef2019-08-22 15:59:35 +0800447};
Edison Ai66fbdf12019-07-08 16:05:07 +0800448#endif /* !defined(TFM_PSA_API) */
449
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200450/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800451/** The static data of the partition list */
452/**************************************************************************/
453const struct spm_partition_static_data_t static_data_list[] =
454{
455 {
Edison Aif0501702019-10-11 14:36:42 +0800456#ifdef TFM_PSA_API
457 .psa_framework_version = 0x0100,
458#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800459 .partition_id = TFM_SP_NON_SECURE_ID,
460#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800461#if TFM_MULTI_CORE_TOPOLOGY
462 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
463#else
Summer Qin423dbef2019-08-22 15:59:35 +0800464 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800465#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800466 .partition_priority = TFM_PRIORITY_LOW,
467 .partition_init = tfm_nspm_thread_entry,
468#else
469 .partition_flags = 0,
470#endif
471 },
472
473#ifndef TFM_PSA_API
474 {
475 .partition_id = TFM_SP_CORE_ID,
476 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
477 },
478#endif
479
480 {
Edison Aif0501702019-10-11 14:36:42 +0800481#ifdef TFM_PSA_API
482 .psa_framework_version = 0x0100,
483#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800484 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800485 .partition_flags = SPM_PART_FLAG_IPC
486 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
487 ,
488 .partition_priority = TFM_PRIORITY(NORMAL),
489 .partition_init = tfm_sst_req_mngr_init,
490 },
491
TudorCretufb182bc2019-07-05 17:34:12 +0100492 {
Edison Aif0501702019-10-11 14:36:42 +0800493#ifdef TFM_PSA_API
494 .psa_framework_version = 0x0100,
495#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800496 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100497 .partition_flags = SPM_PART_FLAG_IPC
498 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
499 ,
500 .partition_priority = TFM_PRIORITY(NORMAL),
501 .partition_init = tfm_its_req_mngr_init,
502 },
503
Summer Qin423dbef2019-08-22 15:59:35 +0800504#ifdef TFM_PARTITION_AUDIT_LOG
505 {
Edison Aif0501702019-10-11 14:36:42 +0800506#ifdef TFM_PSA_API
507 .psa_framework_version = 0x0100,
508#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800509 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800510 .partition_flags = 0
511 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
512 ,
513 .partition_priority = TFM_PRIORITY(NORMAL),
514 .partition_init = audit_core_init,
515 },
516#endif /* TFM_PARTITION_AUDIT_LOG */
517
518 {
Edison Aif0501702019-10-11 14:36:42 +0800519#ifdef TFM_PSA_API
520 .psa_framework_version = 0x0100,
521#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800522 .partition_id = TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800523 .partition_flags = SPM_PART_FLAG_IPC
524 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
525 ,
526 .partition_priority = TFM_PRIORITY(NORMAL),
527 .partition_init = tfm_crypto_init,
528 },
529
530#ifdef TFM_PARTITION_PLATFORM
531 {
Edison Aif0501702019-10-11 14:36:42 +0800532#ifdef TFM_PSA_API
533 .psa_framework_version = 0x0100,
534#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800535 .partition_id = TFM_SP_PLATFORM,
Summer Qin423dbef2019-08-22 15:59:35 +0800536 .partition_flags = 0
537 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
538 ,
539 .partition_priority = TFM_PRIORITY(NORMAL),
540 .partition_init = platform_sp_init,
541 },
542#endif /* TFM_PARTITION_PLATFORM */
543
544 {
Edison Aif0501702019-10-11 14:36:42 +0800545#ifdef TFM_PSA_API
546 .psa_framework_version = 0x0100,
547#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800548 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800549 .partition_flags = SPM_PART_FLAG_IPC
550 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
551 ,
552 .partition_priority = TFM_PRIORITY(NORMAL),
553 .partition_init = attest_partition_init,
554 },
555
556#ifdef TFM_PARTITION_TEST_CORE
557 {
Edison Aif0501702019-10-11 14:36:42 +0800558#ifdef TFM_PSA_API
559 .psa_framework_version = 0x0100,
560#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800561 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800562 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200563 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800564 ,
565 .partition_priority = TFM_PRIORITY(NORMAL),
566 .partition_init = core_test_init,
567 },
568#endif /* TFM_PARTITION_TEST_CORE */
569
570#ifdef TFM_PARTITION_TEST_CORE
571 {
Edison Aif0501702019-10-11 14:36:42 +0800572#ifdef TFM_PSA_API
573 .psa_framework_version = 0x0100,
574#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800575 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800576 .partition_flags = SPM_PART_FLAG_IPC
577 | SPM_PART_FLAG_APP_ROT
578 ,
579 .partition_priority = TFM_PRIORITY(NORMAL),
580 .partition_init = core_test_2_init,
581 },
582#endif /* TFM_PARTITION_TEST_CORE */
583
584#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
585 {
Edison Aif0501702019-10-11 14:36:42 +0800586#ifdef TFM_PSA_API
587 .psa_framework_version = 0x0100,
588#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800589 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800590 .partition_flags = SPM_PART_FLAG_IPC
591 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
592 ,
593 .partition_priority = TFM_PRIORITY(NORMAL),
594 .partition_init = tfm_secure_client_service_init,
595 },
596#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
597
598#ifdef TFM_PARTITION_TEST_CORE_IPC
599 {
Edison Aif0501702019-10-11 14:36:42 +0800600#ifdef TFM_PSA_API
601 .psa_framework_version = 0x0100,
602#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800603 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800604 .partition_flags = SPM_PART_FLAG_IPC
605 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
606 ,
607 .partition_priority = TFM_PRIORITY(HIGH),
608 .partition_init = ipc_service_test_main,
609 },
610#endif /* TFM_PARTITION_TEST_CORE_IPC */
611
612#ifdef TFM_PARTITION_TEST_CORE_IPC
613 {
Edison Aif0501702019-10-11 14:36:42 +0800614#ifdef TFM_PSA_API
615 .psa_framework_version = 0x0100,
616#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800617 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800618 .partition_flags = SPM_PART_FLAG_IPC
619 | SPM_PART_FLAG_APP_ROT
620 ,
621 .partition_priority = TFM_PRIORITY(NORMAL),
622 .partition_init = ipc_client_test_main,
623 },
624#endif /* TFM_PARTITION_TEST_CORE_IPC */
625
626#ifdef TFM_ENABLE_IRQ_TEST
627 {
Edison Aif0501702019-10-11 14:36:42 +0800628#ifdef TFM_PSA_API
629 .psa_framework_version = 0x0100,
630#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800631 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800632 .partition_flags = SPM_PART_FLAG_IPC
633 | SPM_PART_FLAG_APP_ROT
634 ,
635 .partition_priority = TFM_PRIORITY(NORMAL),
636 .partition_init = tfm_irq_test_1_init,
637 },
638#endif /* TFM_ENABLE_IRQ_TEST */
639
Jamie Fox0e823a02019-10-28 17:28:19 +0000640#ifdef TFM_PARTITION_TEST_SST
641 {
642#ifdef TFM_PSA_API
643 .psa_framework_version = 0x0100,
644#endif /* defined(TFM_PSA_API) */
645 .partition_id = TFM_SP_SST_TEST,
646 .partition_flags = SPM_PART_FLAG_IPC
647 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
648 ,
649 .partition_priority = TFM_PRIORITY(NORMAL),
650 .partition_init = tfm_sst_test_init,
651 },
652#endif /* TFM_PARTITION_TEST_SST */
653
Summer Qin423dbef2019-08-22 15:59:35 +0800654};
655
656/**************************************************************************/
657/** The platform data of the partition list */
658/**************************************************************************/
659const struct tfm_spm_partition_platform_data_t *platform_data_list[] =
660{
661 NULL,
662
663#ifndef TFM_PSA_API
664 NULL,
665#endif
666
667 NULL,
668
TudorCretufb182bc2019-07-05 17:34:12 +0100669 NULL,
670
Summer Qin423dbef2019-08-22 15:59:35 +0800671#ifdef TFM_PARTITION_AUDIT_LOG
672 /* FIXME: Only adding the first mmio region */
673#ifdef AUDIT_UART_REDIRECTION
674 TFM_PERIPHERAL_UART1,
675#else /* AUDIT_UART_REDIRECTION */
676 NULL,
677#endif /* AUDIT_UART_REDIRECTION */
678#endif /* TFM_PARTITION_AUDIT_LOG */
679
680 NULL,
681
682#ifdef TFM_PARTITION_PLATFORM
683 NULL,
684#endif /* TFM_PARTITION_PLATFORM */
685
686 NULL,
687
688#ifdef TFM_PARTITION_TEST_CORE
689 /* FIXME: Only adding the first mmio region */
690 TFM_PERIPHERAL_FPGA_IO,
691#endif /* TFM_PARTITION_TEST_CORE */
692
693#ifdef TFM_PARTITION_TEST_CORE
694 NULL,
695#endif /* TFM_PARTITION_TEST_CORE */
696
697#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
698 /* FIXME: Only adding the first mmio region */
699 TFM_PERIPHERAL_STD_UART,
700#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
701
702#ifdef TFM_PARTITION_TEST_CORE_IPC
703 NULL,
704#endif /* TFM_PARTITION_TEST_CORE_IPC */
705
706#ifdef TFM_PARTITION_TEST_CORE_IPC
707 NULL,
708#endif /* TFM_PARTITION_TEST_CORE_IPC */
709
710#ifdef TFM_ENABLE_IRQ_TEST
711 /* FIXME: Only adding the first mmio region */
712 TFM_PERIPHERAL_TIMER0,
713#endif /* TFM_ENABLE_IRQ_TEST */
714
Jamie Fox0e823a02019-10-28 17:28:19 +0000715#ifdef TFM_PARTITION_TEST_SST
716 NULL,
717#endif /* TFM_PARTITION_TEST_SST */
718
Summer Qin423dbef2019-08-22 15:59:35 +0800719};
720
721/**************************************************************************/
722/** The memory data of the partition list */
723/**************************************************************************/
724#ifdef TFM_PSA_API
725const struct tfm_spm_partition_memory_data_t memory_data_list[] =
726{
727 {
728 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
729 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
730 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
731 },
732 {
Edison Aib2134e62019-10-11 18:24:47 +0800733 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
734 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
735 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
736 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
737 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
738 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
739 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
740 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
741 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
742 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800743 },
744
TudorCretufb182bc2019-07-05 17:34:12 +0100745 {
Edison Aib2134e62019-10-11 18:24:47 +0800746 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
747 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
748 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
749 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
750 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
751 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
752 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
753 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
754 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
755 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +0100756 },
757
Summer Qin423dbef2019-08-22 15:59:35 +0800758#ifdef TFM_PARTITION_AUDIT_LOG
759 {
Edison Aib2134e62019-10-11 18:24:47 +0800760 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
761 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
762 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
763 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
764 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
765 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
766 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
767 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
768 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
769 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800770 },
771#endif /* TFM_PARTITION_AUDIT_LOG */
772
773 {
Edison Aib2134e62019-10-11 18:24:47 +0800774 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
775 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
776 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
777 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
778 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
779 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
780 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
781 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
782 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
783 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800784 },
785
786#ifdef TFM_PARTITION_PLATFORM
787 {
Edison Aib2134e62019-10-11 18:24:47 +0800788 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
789 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
790 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
791 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
792 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
793 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
794 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
795 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
796 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
797 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800798 },
799#endif /* TFM_PARTITION_PLATFORM */
800
801 {
Edison Aib2134e62019-10-11 18:24:47 +0800802 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
803 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
804 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
805 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
806 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
807 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
808 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
809 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
810 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
811 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800812 },
813
814#ifdef TFM_PARTITION_TEST_CORE
815 {
Edison Aib2134e62019-10-11 18:24:47 +0800816 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
817 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
818 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
819 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
820 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
821 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
822 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
823 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
824 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
825 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800826 },
827#endif /* TFM_PARTITION_TEST_CORE */
828
829#ifdef TFM_PARTITION_TEST_CORE
830 {
Edison Aib2134e62019-10-11 18:24:47 +0800831 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
832 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
833 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
834 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
835 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
836 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
837 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
838 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
839 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
840 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800841 },
842#endif /* TFM_PARTITION_TEST_CORE */
843
844#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
845 {
Edison Aib2134e62019-10-11 18:24:47 +0800846 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
847 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
848 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
849 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
850 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
851 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
852 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
853 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
854 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
855 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800856 },
857#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
858
859#ifdef TFM_PARTITION_TEST_CORE_IPC
860 {
Edison Aib2134e62019-10-11 18:24:47 +0800861 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
862 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
863 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
864 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
865 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
866 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
867 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
868 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
869 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
870 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800871 },
872#endif /* TFM_PARTITION_TEST_CORE_IPC */
873
874#ifdef TFM_PARTITION_TEST_CORE_IPC
875 {
Edison Aib2134e62019-10-11 18:24:47 +0800876 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
877 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
878 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
879 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
880 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
881 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
882 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
883 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
884 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
885 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800886 },
887#endif /* TFM_PARTITION_TEST_CORE_IPC */
888
889#ifdef TFM_ENABLE_IRQ_TEST
890 {
Edison Aib2134e62019-10-11 18:24:47 +0800891 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
892 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
893 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
894 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
895 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
896 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
897 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
898 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
899 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
900 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800901 },
902#endif /* TFM_ENABLE_IRQ_TEST */
903
Jamie Fox0e823a02019-10-28 17:28:19 +0000904#ifdef TFM_PARTITION_TEST_SST
905 {
906 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
907 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
908 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
909 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
910 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
911 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
912 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
913 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
914 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
915 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
916 },
917#endif /* TFM_PARTITION_TEST_SST */
918
Summer Qin423dbef2019-08-22 15:59:35 +0800919};
920#endif /* defined(TFM_PSA_API) */
921
922/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200923/** The partition list for the DB */
924/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800925static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200926{
Summer Qin423dbef2019-08-22 15:59:35 +0800927 {{}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +0800928#ifndef TFM_PSA_API
Summer Qin423dbef2019-08-22 15:59:35 +0800929 {{}}, /* placeholder for TF-M Core internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +0800930#endif /* !ifndefined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200931
932 /* -----------------------------------------------------------------------*/
933 /* - Partition DB record for TFM_SP_STORAGE */
934 /* -----------------------------------------------------------------------*/
935 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200936 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +0800937 .runtime_data = {},
938 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200939 .platform_data = NULL,
940
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200941 },
942
943 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +0100944 /* - Partition DB record for TFM_SP_ITS */
945 /* -----------------------------------------------------------------------*/
946 {
947 /* Runtime data */
948 .runtime_data = {},
949 .static_data = NULL,
950 .platform_data = NULL,
951
952 },
953
954 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200955 /* - Partition DB record for TFM_SP_AUDIT_LOG */
956 /* -----------------------------------------------------------------------*/
957#ifdef TFM_PARTITION_AUDIT_LOG
958 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200959 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +0800960 .runtime_data = {},
961 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200962 .platform_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200963
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200964 },
965#endif /* TFM_PARTITION_AUDIT_LOG */
966
967 /* -----------------------------------------------------------------------*/
968 /* - Partition DB record for TFM_SP_CRYPTO */
969 /* -----------------------------------------------------------------------*/
970 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200971 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +0800972 .runtime_data = {},
973 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200974 .platform_data = NULL,
975
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200976 },
977
978 /* -----------------------------------------------------------------------*/
979 /* - Partition DB record for TFM_SP_PLATFORM */
980 /* -----------------------------------------------------------------------*/
981#ifdef TFM_PARTITION_PLATFORM
982 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200983 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +0800984 .runtime_data = {},
985 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200986 .platform_data = NULL,
987
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200988 },
989#endif /* TFM_PARTITION_PLATFORM */
990
991 /* -----------------------------------------------------------------------*/
992 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
993 /* -----------------------------------------------------------------------*/
994 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200995 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +0800996 .runtime_data = {},
997 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200998 .platform_data = NULL,
999
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001000 },
1001
1002 /* -----------------------------------------------------------------------*/
1003 /* - Partition DB record for TFM_SP_CORE_TEST */
1004 /* -----------------------------------------------------------------------*/
1005#ifdef TFM_PARTITION_TEST_CORE
1006 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001007 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001008 .runtime_data = {},
1009 .static_data = NULL,
1010 .platform_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001011
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001012 },
1013#endif /* TFM_PARTITION_TEST_CORE */
1014
1015 /* -----------------------------------------------------------------------*/
1016 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1017 /* -----------------------------------------------------------------------*/
1018#ifdef TFM_PARTITION_TEST_CORE
1019 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001020 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001021 .runtime_data = {},
1022 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001023 .platform_data = NULL,
1024
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001025 },
1026#endif /* TFM_PARTITION_TEST_CORE */
1027
1028 /* -----------------------------------------------------------------------*/
1029 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1030 /* -----------------------------------------------------------------------*/
1031#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1032 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001033 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001034 .runtime_data = {},
1035 .static_data = NULL,
1036 .platform_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001037
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001038 },
1039#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1040
1041 /* -----------------------------------------------------------------------*/
1042 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1043 /* -----------------------------------------------------------------------*/
1044#ifdef TFM_PARTITION_TEST_CORE_IPC
1045 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001046 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001047 .runtime_data = {},
1048 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001049 .platform_data = NULL,
1050
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001051 },
1052#endif /* TFM_PARTITION_TEST_CORE_IPC */
1053
1054 /* -----------------------------------------------------------------------*/
1055 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1056 /* -----------------------------------------------------------------------*/
1057#ifdef TFM_PARTITION_TEST_CORE_IPC
1058 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001059 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001060 .runtime_data = {},
1061 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001062 .platform_data = NULL,
1063
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001064 },
1065#endif /* TFM_PARTITION_TEST_CORE_IPC */
1066
1067 /* -----------------------------------------------------------------------*/
1068 /* - Partition DB record for TFM_IRQ_TEST_1 */
1069 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001070#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001071 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001072 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001073 .runtime_data = {},
1074 .static_data = NULL,
1075 .platform_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001076
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001077 },
David Hu33f2fd22019-08-16 15:32:39 +08001078#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001079
Jamie Fox0e823a02019-10-28 17:28:19 +00001080 /* -----------------------------------------------------------------------*/
1081 /* - Partition DB record for TFM_SP_SST_TEST */
1082 /* -----------------------------------------------------------------------*/
1083#ifdef TFM_PARTITION_TEST_SST
1084 {
1085 /* Runtime data */
1086 .runtime_data = {},
1087 .static_data = NULL,
1088 .platform_data = NULL,
1089
1090 },
1091#endif /* TFM_PARTITION_TEST_SST */
1092
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001093};
1094
1095struct spm_partition_db_t g_spm_partition_db = {
1096 .is_init = 0,
1097 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001098#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001099 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001100#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001101 .partitions = partition_list,
1102};
1103
1104#endif /* __TFM_SPM_DB_INC__ */