blob: 96d11bde1a96f33bad600a1ab0ae5d247d8a2fc0 [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"
Edison Aie728fbf2019-11-13 09:37:12 +080014#include "psa_manifest/sid.h"
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020015
16/**************************************************************************/
17/** IRQ count per partition */
18/**************************************************************************/
19#define TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT 0
20
TudorCretufb182bc2019-07-05 17:34:12 +010021#define TFM_PARTITION_TFM_SP_ITS_IRQ_COUNT 0
22
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020023#ifdef TFM_PARTITION_AUDIT_LOG
24#define TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT 0
25#endif /* TFM_PARTITION_AUDIT_LOG */
26
27#define TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT 0
28
29#ifdef TFM_PARTITION_PLATFORM
30#define TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT 0
31#endif /* TFM_PARTITION_PLATFORM */
32
33#define TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT 0
34
35#ifdef TFM_PARTITION_TEST_CORE
36#define TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT 0
37#endif /* TFM_PARTITION_TEST_CORE */
38
39#ifdef TFM_PARTITION_TEST_CORE
40#define TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT 0
41#endif /* TFM_PARTITION_TEST_CORE */
42
43#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
44#define TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT 0
45#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
46
47#ifdef TFM_PARTITION_TEST_CORE_IPC
48#define TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT 0
49#endif /* TFM_PARTITION_TEST_CORE_IPC */
50
51#ifdef TFM_PARTITION_TEST_CORE_IPC
52#define TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT 0
53#endif /* TFM_PARTITION_TEST_CORE_IPC */
54
David Hu33f2fd22019-08-16 15:32:39 +080055#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020056#define TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT 1
David Hu33f2fd22019-08-16 15:32:39 +080057#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020058
Jamie Fox0e823a02019-10-28 17:28:19 +000059#ifdef TFM_PARTITION_TEST_SST
60#define TFM_PARTITION_TFM_SP_SST_TEST_IRQ_COUNT 0
61#endif /* TFM_PARTITION_TEST_SST */
62
Jamie Fox830ff762019-12-16 15:20:22 +000063#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
64#define TFM_PARTITION_TFM_SP_SECURE_CLIENT_2_IRQ_COUNT 0
65#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
66
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020067/**************************************************************************/
68/** Declarations of partition init functions */
69/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +080070#ifdef TFM_PSA_API
Edison Ai9c48d202019-10-12 16:57:21 +080071extern void tfm_nspm_thread_entry(void);
Summer Qin423dbef2019-08-22 15:59:35 +080072#endif
73
Edison Ai9c48d202019-10-12 16:57:21 +080074extern void tfm_sst_req_mngr_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020075
Edison Ai9c48d202019-10-12 16:57:21 +080076extern void tfm_its_req_mngr_init(void);
TudorCretufb182bc2019-07-05 17:34:12 +010077
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020078#ifdef TFM_PARTITION_AUDIT_LOG
Edison Ai9c48d202019-10-12 16:57:21 +080079extern void audit_core_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020080#endif /* TFM_PARTITION_AUDIT_LOG */
81
Edison Ai9c48d202019-10-12 16:57:21 +080082extern void tfm_crypto_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020083
84#ifdef TFM_PARTITION_PLATFORM
Edison Ai9c48d202019-10-12 16:57:21 +080085extern void platform_sp_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020086#endif /* TFM_PARTITION_PLATFORM */
87
Edison Ai9c48d202019-10-12 16:57:21 +080088extern void attest_partition_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020089
90#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +080091extern void core_test_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020092#endif /* TFM_PARTITION_TEST_CORE */
93
94#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +080095extern void core_test_2_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020096#endif /* TFM_PARTITION_TEST_CORE */
97
98#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Ai9c48d202019-10-12 16:57:21 +080099extern void tfm_secure_client_service_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200100#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
101
102#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +0800103extern void ipc_service_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200104#endif /* TFM_PARTITION_TEST_CORE_IPC */
105
106#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +0800107extern void ipc_client_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200108#endif /* TFM_PARTITION_TEST_CORE_IPC */
109
David Hu33f2fd22019-08-16 15:32:39 +0800110#ifdef TFM_ENABLE_IRQ_TEST
Edison Ai9c48d202019-10-12 16:57:21 +0800111extern void tfm_irq_test_1_init(void);
David Hu33f2fd22019-08-16 15:32:39 +0800112#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200113
Jamie Fox0e823a02019-10-28 17:28:19 +0000114#ifdef TFM_PARTITION_TEST_SST
115extern void tfm_sst_test_init(void);
116#endif /* TFM_PARTITION_TEST_SST */
117
Jamie Fox830ff762019-12-16 15:20:22 +0000118#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
119extern void tfm_secure_client_2_init(void);
120#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
121
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200122/**************************************************************************/
123/** Memory region declarations */
124/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800125#ifdef TFM_PSA_API
126REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Base);
127REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Limit);
128
Edison Aib2134e62019-10-11 18:24:47 +0800129REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Base);
130REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Limit);
131REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Base);
132REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Limit);
133REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base);
134REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit);
135REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base);
136REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit);
137REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base);
138REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200139
Edison Aib2134e62019-10-11 18:24:47 +0800140REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Base);
141REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Limit);
142REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Base);
143REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Limit);
144REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Base);
145REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Limit);
146REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Base);
147REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit);
148REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Base);
149REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit);
TudorCretufb182bc2019-07-05 17:34:12 +0100150
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200151#ifdef TFM_PARTITION_AUDIT_LOG
Edison Aib2134e62019-10-11 18:24:47 +0800152REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Base);
153REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Limit);
154REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base);
155REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit);
156REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base);
157REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit);
158REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base);
159REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit);
160REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base);
161REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200162#endif /* TFM_PARTITION_AUDIT_LOG */
163
Edison Aib2134e62019-10-11 18:24:47 +0800164REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Base);
165REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Limit);
166REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Base);
167REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Limit);
168REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base);
169REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit);
170REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base);
171REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit);
172REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base);
173REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200174
175#ifdef TFM_PARTITION_PLATFORM
Edison Aib2134e62019-10-11 18:24:47 +0800176REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Base);
177REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Limit);
178REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Base);
179REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Limit);
180REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base);
181REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit);
182REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base);
183REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit);
184REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base);
185REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200186#endif /* TFM_PARTITION_PLATFORM */
187
Edison Aib2134e62019-10-11 18:24:47 +0800188REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base);
189REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit);
190REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base);
191REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit);
192REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base);
193REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit);
194REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base);
195REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit);
196REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base);
197REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200198
199#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800200REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Base);
201REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Limit);
202REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Base);
203REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Limit);
204REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base);
205REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit);
206REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base);
207REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit);
208REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base);
209REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200210#endif /* TFM_PARTITION_TEST_CORE */
211
212#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800213REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Base);
214REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Limit);
215REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base);
216REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit);
217REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base);
218REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit);
219REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base);
220REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit);
221REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base);
222REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200223#endif /* TFM_PARTITION_TEST_CORE */
224
225#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Aib2134e62019-10-11 18:24:47 +0800226REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base);
227REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit);
228REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base);
229REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit);
230REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base);
231REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit);
232REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base);
233REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit);
234REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base);
235REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200236#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
237
238#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800239REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base);
240REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit);
241REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base);
242REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit);
243REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base);
244REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit);
245REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base);
246REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit);
247REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base);
248REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200249#endif /* TFM_PARTITION_TEST_CORE_IPC */
250
251#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800252REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base);
253REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit);
254REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base);
255REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit);
256REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base);
257REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit);
258REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base);
259REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit);
260REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base);
261REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200262#endif /* TFM_PARTITION_TEST_CORE_IPC */
263
David Hu33f2fd22019-08-16 15:32:39 +0800264#ifdef TFM_ENABLE_IRQ_TEST
Edison Aib2134e62019-10-11 18:24:47 +0800265REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Base);
266REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Limit);
267REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Base);
268REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Limit);
269REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base);
270REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit);
271REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base);
272REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit);
273REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base);
274REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit);
David Hu33f2fd22019-08-16 15:32:39 +0800275#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200276
Jamie Fox0e823a02019-10-28 17:28:19 +0000277#ifdef TFM_PARTITION_TEST_SST
278REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Base);
279REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Limit);
280REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Base);
281REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Limit);
282REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base);
283REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit);
284REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base);
285REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit);
286REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base);
287REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit);
288#endif /* TFM_PARTITION_TEST_SST */
289
Jamie Fox830ff762019-12-16 15:20:22 +0000290#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
291REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$Base);
292REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit);
293REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base);
294REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit);
295REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base);
296REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit);
297REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base);
298REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit);
299REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base);
300REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit);
301#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
302
Summer Qin423dbef2019-08-22 15:59:35 +0800303#endif /* defined(TFM_PSA_API) */
304
Edison Ai66fbdf12019-07-08 16:05:07 +0800305#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200306/**************************************************************************/
307/** Context stacks for IRQ handling */
308/**************************************************************************/
309/* The max size of the context stack can be calculated as a function of the IRQ
310 * count of the secure partition:
311 *
312 * max_stack_size = intr_ctx_size + (IRQ_CNT * (intr_ctx_size + hndl_ctx_size))
313 *
314 * where:
315 * intr_ctx: Frame pushed when the partition is interrupted
316 * hndl_ctx: Frame pushed when the partition is handling an interrupt
317 */
Summer Qin423dbef2019-08-22 15:59:35 +0800318static uint32_t ns_interrupt_ctx_stack[
319 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
320
321static uint32_t tfm_core_interrupt_ctx_stack[
322 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
323
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200324static uint32_t ctx_stack_TFM_SP_STORAGE[
325 (sizeof(struct interrupted_ctx_stack_frame_t) +
326 (TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT) * (
327 sizeof(struct interrupted_ctx_stack_frame_t) +
328 sizeof(struct handler_ctx_stack_frame_t)
329 )) / sizeof(uint32_t)];
330
TudorCretufb182bc2019-07-05 17:34:12 +0100331static uint32_t ctx_stack_TFM_SP_ITS[
332 (sizeof(struct interrupted_ctx_stack_frame_t) +
333 (TFM_PARTITION_TFM_SP_ITS_IRQ_COUNT) * (
334 sizeof(struct interrupted_ctx_stack_frame_t) +
335 sizeof(struct handler_ctx_stack_frame_t)
336 )) / sizeof(uint32_t)];
337
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200338#ifdef TFM_PARTITION_AUDIT_LOG
339static uint32_t ctx_stack_TFM_SP_AUDIT_LOG[
340 (sizeof(struct interrupted_ctx_stack_frame_t) +
341 (TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT) * (
342 sizeof(struct interrupted_ctx_stack_frame_t) +
343 sizeof(struct handler_ctx_stack_frame_t)
344 )) / sizeof(uint32_t)];
345#endif /* TFM_PARTITION_AUDIT_LOG */
346
347static uint32_t ctx_stack_TFM_SP_CRYPTO[
348 (sizeof(struct interrupted_ctx_stack_frame_t) +
349 (TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT) * (
350 sizeof(struct interrupted_ctx_stack_frame_t) +
351 sizeof(struct handler_ctx_stack_frame_t)
352 )) / sizeof(uint32_t)];
353
354#ifdef TFM_PARTITION_PLATFORM
355static uint32_t ctx_stack_TFM_SP_PLATFORM[
356 (sizeof(struct interrupted_ctx_stack_frame_t) +
357 (TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT) * (
358 sizeof(struct interrupted_ctx_stack_frame_t) +
359 sizeof(struct handler_ctx_stack_frame_t)
360 )) / sizeof(uint32_t)];
361#endif /* TFM_PARTITION_PLATFORM */
362
363static uint32_t ctx_stack_TFM_SP_INITIAL_ATTESTATION[
364 (sizeof(struct interrupted_ctx_stack_frame_t) +
365 (TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT) * (
366 sizeof(struct interrupted_ctx_stack_frame_t) +
367 sizeof(struct handler_ctx_stack_frame_t)
368 )) / sizeof(uint32_t)];
369
370#ifdef TFM_PARTITION_TEST_CORE
371static uint32_t ctx_stack_TFM_SP_CORE_TEST[
372 (sizeof(struct interrupted_ctx_stack_frame_t) +
373 (TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT) * (
374 sizeof(struct interrupted_ctx_stack_frame_t) +
375 sizeof(struct handler_ctx_stack_frame_t)
376 )) / sizeof(uint32_t)];
377#endif /* TFM_PARTITION_TEST_CORE */
378
379#ifdef TFM_PARTITION_TEST_CORE
380static uint32_t ctx_stack_TFM_SP_CORE_TEST_2[
381 (sizeof(struct interrupted_ctx_stack_frame_t) +
382 (TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT) * (
383 sizeof(struct interrupted_ctx_stack_frame_t) +
384 sizeof(struct handler_ctx_stack_frame_t)
385 )) / sizeof(uint32_t)];
386#endif /* TFM_PARTITION_TEST_CORE */
387
388#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
389static uint32_t ctx_stack_TFM_SP_SECURE_TEST_PARTITION[
390 (sizeof(struct interrupted_ctx_stack_frame_t) +
391 (TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT) * (
392 sizeof(struct interrupted_ctx_stack_frame_t) +
393 sizeof(struct handler_ctx_stack_frame_t)
394 )) / sizeof(uint32_t)];
395#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
396
397#ifdef TFM_PARTITION_TEST_CORE_IPC
398static uint32_t ctx_stack_TFM_SP_IPC_SERVICE_TEST[
399 (sizeof(struct interrupted_ctx_stack_frame_t) +
400 (TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT) * (
401 sizeof(struct interrupted_ctx_stack_frame_t) +
402 sizeof(struct handler_ctx_stack_frame_t)
403 )) / sizeof(uint32_t)];
404#endif /* TFM_PARTITION_TEST_CORE_IPC */
405
406#ifdef TFM_PARTITION_TEST_CORE_IPC
407static uint32_t ctx_stack_TFM_SP_IPC_CLIENT_TEST[
408 (sizeof(struct interrupted_ctx_stack_frame_t) +
409 (TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT) * (
410 sizeof(struct interrupted_ctx_stack_frame_t) +
411 sizeof(struct handler_ctx_stack_frame_t)
412 )) / sizeof(uint32_t)];
413#endif /* TFM_PARTITION_TEST_CORE_IPC */
414
David Hu33f2fd22019-08-16 15:32:39 +0800415#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200416static uint32_t ctx_stack_TFM_IRQ_TEST_1[
417 (sizeof(struct interrupted_ctx_stack_frame_t) +
418 (TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT) * (
419 sizeof(struct interrupted_ctx_stack_frame_t) +
420 sizeof(struct handler_ctx_stack_frame_t)
421 )) / sizeof(uint32_t)];
David Hu33f2fd22019-08-16 15:32:39 +0800422#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200423
Jamie Fox0e823a02019-10-28 17:28:19 +0000424#ifdef TFM_PARTITION_TEST_SST
425static uint32_t ctx_stack_TFM_SP_SST_TEST[
426 (sizeof(struct interrupted_ctx_stack_frame_t) +
427 (TFM_PARTITION_TFM_SP_SST_TEST_IRQ_COUNT) * (
428 sizeof(struct interrupted_ctx_stack_frame_t) +
429 sizeof(struct handler_ctx_stack_frame_t)
430 )) / sizeof(uint32_t)];
431#endif /* TFM_PARTITION_TEST_SST */
432
Jamie Fox830ff762019-12-16 15:20:22 +0000433#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
434static uint32_t ctx_stack_TFM_SP_SECURE_CLIENT_2[
435 (sizeof(struct interrupted_ctx_stack_frame_t) +
436 (TFM_PARTITION_TFM_SP_SECURE_CLIENT_2_IRQ_COUNT) * (
437 sizeof(struct interrupted_ctx_stack_frame_t) +
438 sizeof(struct handler_ctx_stack_frame_t)
439 )) / sizeof(uint32_t)];
440#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
441
Summer Qin423dbef2019-08-22 15:59:35 +0800442
443uint32_t *ctx_stack_list[] =
444{
445 ns_interrupt_ctx_stack,
446 tfm_core_interrupt_ctx_stack,
447 ctx_stack_TFM_SP_STORAGE,
TudorCretufb182bc2019-07-05 17:34:12 +0100448 ctx_stack_TFM_SP_ITS,
Summer Qin423dbef2019-08-22 15:59:35 +0800449#ifdef TFM_PARTITION_AUDIT_LOG
450 ctx_stack_TFM_SP_AUDIT_LOG,
451#endif /* TFM_PARTITION_AUDIT_LOG */
452 ctx_stack_TFM_SP_CRYPTO,
453#ifdef TFM_PARTITION_PLATFORM
454 ctx_stack_TFM_SP_PLATFORM,
455#endif /* TFM_PARTITION_PLATFORM */
456 ctx_stack_TFM_SP_INITIAL_ATTESTATION,
457#ifdef TFM_PARTITION_TEST_CORE
458 ctx_stack_TFM_SP_CORE_TEST,
459#endif /* TFM_PARTITION_TEST_CORE */
460#ifdef TFM_PARTITION_TEST_CORE
461 ctx_stack_TFM_SP_CORE_TEST_2,
462#endif /* TFM_PARTITION_TEST_CORE */
463#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
464 ctx_stack_TFM_SP_SECURE_TEST_PARTITION,
465#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
466#ifdef TFM_PARTITION_TEST_CORE_IPC
467 ctx_stack_TFM_SP_IPC_SERVICE_TEST,
468#endif /* TFM_PARTITION_TEST_CORE_IPC */
469#ifdef TFM_PARTITION_TEST_CORE_IPC
470 ctx_stack_TFM_SP_IPC_CLIENT_TEST,
471#endif /* TFM_PARTITION_TEST_CORE_IPC */
472#ifdef TFM_ENABLE_IRQ_TEST
473 ctx_stack_TFM_IRQ_TEST_1,
474#endif /* TFM_ENABLE_IRQ_TEST */
Jamie Fox0e823a02019-10-28 17:28:19 +0000475#ifdef TFM_PARTITION_TEST_SST
476 ctx_stack_TFM_SP_SST_TEST,
477#endif /* TFM_PARTITION_TEST_SST */
Jamie Fox830ff762019-12-16 15:20:22 +0000478#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
479 ctx_stack_TFM_SP_SECURE_CLIENT_2,
480#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
Summer Qin423dbef2019-08-22 15:59:35 +0800481};
Edison Ai66fbdf12019-07-08 16:05:07 +0800482#endif /* !defined(TFM_PSA_API) */
483
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200484/**************************************************************************/
Edison Aie728fbf2019-11-13 09:37:12 +0800485/** Dependencies array for Secure Partition */
486/**************************************************************************/
487static int32_t dependencies_TFM_SP_STORAGE[] =
488{
489 TFM_CRYPTO_SID,
490};
491
492static int32_t dependencies_TFM_SP_INITIAL_ATTESTATION[] =
493{
494 TFM_CRYPTO_SID,
495};
496
497#ifdef TFM_PARTITION_TEST_CORE
498static int32_t dependencies_TFM_SP_CORE_TEST[] =
499{
500 SPM_CORE_TEST_2_INVERT_SID,
501 SPM_CORE_TEST_2_GET_EVERY_SECOND_BYTE_SID,
502 SPM_CORE_TEST_2_SLAVE_SERVICE_SID,
503};
504#endif /* TFM_PARTITION_TEST_CORE */
505
506#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
507static int32_t dependencies_TFM_SP_SECURE_TEST_PARTITION[] =
508{
Jamie Fox830ff762019-12-16 15:20:22 +0000509 TFM_SECURE_CLIENT_2_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800510 TFM_CRYPTO_SID,
511 TFM_SST_SET_SID,
512 TFM_SST_GET_SID,
513 TFM_SST_GET_INFO_SID,
514 TFM_SST_REMOVE_SID,
515 TFM_SST_GET_SUPPORT_SID,
516 TFM_ITS_SET_SID,
517 TFM_ITS_GET_SID,
518 TFM_ITS_GET_INFO_SID,
519 TFM_ITS_REMOVE_SID,
520 TFM_ATTEST_GET_TOKEN_SID,
521 TFM_ATTEST_GET_TOKEN_SIZE_SID,
522 TFM_ATTEST_GET_PUBLIC_KEY_SID,
523 TFM_SST_TEST_PREPARE_SID,
Edison Aia765f232019-12-06 15:41:38 +0800524 TFM_SP_PLATFORM_SYSTEM_RESET_SID,
525 TFM_SP_PLATFORM_IOCTL_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800526};
527#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
528
529#ifdef TFM_PARTITION_TEST_CORE_IPC
530static int32_t dependencies_TFM_SP_IPC_CLIENT_TEST[] =
531{
532 IPC_SERVICE_TEST_PSA_ACCESS_APP_READ_ONLY_MEM_SID,
533 IPC_SERVICE_TEST_PSA_ACCESS_APP_MEM_SID,
534 IPC_SERVICE_TEST_BASIC_SID,
535 IPC_SERVICE_TEST_APP_ACCESS_PSA_MEM_SID,
536};
537#endif /* TFM_PARTITION_TEST_CORE_IPC */
538
539#ifdef TFM_PARTITION_TEST_SST
540static int32_t dependencies_TFM_SP_SST_TEST[] =
541{
542 TFM_CRYPTO_SID,
543};
544#endif /* TFM_PARTITION_TEST_SST */
545
Jamie Foxfafeff72019-12-12 17:17:24 +0000546#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
547static int32_t dependencies_TFM_SP_SECURE_CLIENT_2[] =
548{
549 TFM_ITS_GET_SID,
550};
551#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
552
Edison Aie728fbf2019-11-13 09:37:12 +0800553/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800554/** The static data of the partition list */
555/**************************************************************************/
556const struct spm_partition_static_data_t static_data_list[] =
557{
558 {
Edison Aif0501702019-10-11 14:36:42 +0800559#ifdef TFM_PSA_API
560 .psa_framework_version = 0x0100,
561#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800562 .partition_id = TFM_SP_NON_SECURE_ID,
563#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800564#if TFM_MULTI_CORE_TOPOLOGY
565 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
566#else
Summer Qin423dbef2019-08-22 15:59:35 +0800567 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800568#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800569 .partition_priority = TFM_PRIORITY_LOW,
570 .partition_init = tfm_nspm_thread_entry,
571#else
572 .partition_flags = 0,
573#endif
574 },
575
576#ifndef TFM_PSA_API
577 {
578 .partition_id = TFM_SP_CORE_ID,
579 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
580 },
581#endif
582
583 {
Edison Aif0501702019-10-11 14:36:42 +0800584#ifdef TFM_PSA_API
585 .psa_framework_version = 0x0100,
586#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800587 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800588 .partition_flags = SPM_PART_FLAG_IPC
589 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
590 ,
591 .partition_priority = TFM_PRIORITY(NORMAL),
592 .partition_init = tfm_sst_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800593 .dependencies_num = 1,
594 .p_dependencies = dependencies_TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800595 },
596
TudorCretufb182bc2019-07-05 17:34:12 +0100597 {
Edison Aif0501702019-10-11 14:36:42 +0800598#ifdef TFM_PSA_API
599 .psa_framework_version = 0x0100,
600#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800601 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100602 .partition_flags = SPM_PART_FLAG_IPC
603 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
604 ,
605 .partition_priority = TFM_PRIORITY(NORMAL),
606 .partition_init = tfm_its_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800607 .dependencies_num = 0,
608 .p_dependencies = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +0100609 },
610
Summer Qin423dbef2019-08-22 15:59:35 +0800611#ifdef TFM_PARTITION_AUDIT_LOG
612 {
Edison Aif0501702019-10-11 14:36:42 +0800613#ifdef TFM_PSA_API
614 .psa_framework_version = 0x0100,
615#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800616 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800617 .partition_flags = 0
618 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
619 ,
620 .partition_priority = TFM_PRIORITY(NORMAL),
621 .partition_init = audit_core_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800622 .dependencies_num = 0,
623 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800624 },
625#endif /* TFM_PARTITION_AUDIT_LOG */
626
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_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800632 .partition_flags = SPM_PART_FLAG_IPC
633 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
634 ,
635 .partition_priority = TFM_PRIORITY(NORMAL),
636 .partition_init = tfm_crypto_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800637 .dependencies_num = 0,
638 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800639 },
640
641#ifdef TFM_PARTITION_PLATFORM
642 {
Edison Aif0501702019-10-11 14:36:42 +0800643#ifdef TFM_PSA_API
644 .psa_framework_version = 0x0100,
645#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800646 .partition_id = TFM_SP_PLATFORM,
Mate Toth-Pal179a1562019-11-08 11:40:27 +0100647 .partition_flags = SPM_PART_FLAG_IPC
Summer Qin423dbef2019-08-22 15:59:35 +0800648 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
649 ,
650 .partition_priority = TFM_PRIORITY(NORMAL),
651 .partition_init = platform_sp_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800652 .dependencies_num = 0,
653 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800654 },
655#endif /* TFM_PARTITION_PLATFORM */
656
657 {
Edison Aif0501702019-10-11 14:36:42 +0800658#ifdef TFM_PSA_API
659 .psa_framework_version = 0x0100,
660#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800661 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800662 .partition_flags = SPM_PART_FLAG_IPC
663 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
664 ,
665 .partition_priority = TFM_PRIORITY(NORMAL),
666 .partition_init = attest_partition_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800667 .dependencies_num = 1,
668 .p_dependencies = dependencies_TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800669 },
670
671#ifdef TFM_PARTITION_TEST_CORE
672 {
Edison Aif0501702019-10-11 14:36:42 +0800673#ifdef TFM_PSA_API
674 .psa_framework_version = 0x0100,
675#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800676 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800677 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200678 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800679 ,
680 .partition_priority = TFM_PRIORITY(NORMAL),
681 .partition_init = core_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800682 .dependencies_num = 3,
683 .p_dependencies = dependencies_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800684 },
685#endif /* TFM_PARTITION_TEST_CORE */
686
687#ifdef TFM_PARTITION_TEST_CORE
688 {
Edison Aif0501702019-10-11 14:36:42 +0800689#ifdef TFM_PSA_API
690 .psa_framework_version = 0x0100,
691#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800692 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800693 .partition_flags = SPM_PART_FLAG_IPC
694 | SPM_PART_FLAG_APP_ROT
695 ,
696 .partition_priority = TFM_PRIORITY(NORMAL),
697 .partition_init = core_test_2_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800698 .dependencies_num = 0,
699 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800700 },
701#endif /* TFM_PARTITION_TEST_CORE */
702
703#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
704 {
Edison Aif0501702019-10-11 14:36:42 +0800705#ifdef TFM_PSA_API
706 .psa_framework_version = 0x0100,
707#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800708 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800709 .partition_flags = SPM_PART_FLAG_IPC
710 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
711 ,
712 .partition_priority = TFM_PRIORITY(NORMAL),
713 .partition_init = tfm_secure_client_service_init,
Jamie Fox830ff762019-12-16 15:20:22 +0000714 .dependencies_num = 17,
Edison Aie728fbf2019-11-13 09:37:12 +0800715 .p_dependencies = dependencies_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800716 },
717#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
718
719#ifdef TFM_PARTITION_TEST_CORE_IPC
720 {
Edison Aif0501702019-10-11 14:36:42 +0800721#ifdef TFM_PSA_API
722 .psa_framework_version = 0x0100,
723#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800724 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800725 .partition_flags = SPM_PART_FLAG_IPC
726 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
727 ,
728 .partition_priority = TFM_PRIORITY(HIGH),
729 .partition_init = ipc_service_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800730 .dependencies_num = 0,
731 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800732 },
733#endif /* TFM_PARTITION_TEST_CORE_IPC */
734
735#ifdef TFM_PARTITION_TEST_CORE_IPC
736 {
Edison Aif0501702019-10-11 14:36:42 +0800737#ifdef TFM_PSA_API
738 .psa_framework_version = 0x0100,
739#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800740 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800741 .partition_flags = SPM_PART_FLAG_IPC
742 | SPM_PART_FLAG_APP_ROT
743 ,
744 .partition_priority = TFM_PRIORITY(NORMAL),
745 .partition_init = ipc_client_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800746 .dependencies_num = 4,
747 .p_dependencies = dependencies_TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800748 },
749#endif /* TFM_PARTITION_TEST_CORE_IPC */
750
751#ifdef TFM_ENABLE_IRQ_TEST
752 {
Edison Aif0501702019-10-11 14:36:42 +0800753#ifdef TFM_PSA_API
754 .psa_framework_version = 0x0100,
755#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800756 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800757 .partition_flags = SPM_PART_FLAG_IPC
758 | SPM_PART_FLAG_APP_ROT
759 ,
760 .partition_priority = TFM_PRIORITY(NORMAL),
761 .partition_init = tfm_irq_test_1_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800762 .dependencies_num = 0,
763 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800764 },
765#endif /* TFM_ENABLE_IRQ_TEST */
766
Jamie Fox0e823a02019-10-28 17:28:19 +0000767#ifdef TFM_PARTITION_TEST_SST
768 {
769#ifdef TFM_PSA_API
770 .psa_framework_version = 0x0100,
771#endif /* defined(TFM_PSA_API) */
772 .partition_id = TFM_SP_SST_TEST,
773 .partition_flags = SPM_PART_FLAG_IPC
774 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
775 ,
776 .partition_priority = TFM_PRIORITY(NORMAL),
777 .partition_init = tfm_sst_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800778 .dependencies_num = 1,
779 .p_dependencies = dependencies_TFM_SP_SST_TEST,
Jamie Fox0e823a02019-10-28 17:28:19 +0000780 },
781#endif /* TFM_PARTITION_TEST_SST */
782
Jamie Fox830ff762019-12-16 15:20:22 +0000783#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
784 {
785#ifdef TFM_PSA_API
786 .psa_framework_version = 0x0100,
787#endif /* defined(TFM_PSA_API) */
788 .partition_id = TFM_SP_SECURE_CLIENT_2,
789 .partition_flags = SPM_PART_FLAG_IPC
790 | SPM_PART_FLAG_APP_ROT
791 ,
792 .partition_priority = TFM_PRIORITY(NORMAL),
793 .partition_init = tfm_secure_client_2_init,
Jamie Foxfafeff72019-12-12 17:17:24 +0000794 .dependencies_num = 1,
795 .p_dependencies = dependencies_TFM_SP_SECURE_CLIENT_2,
Jamie Fox830ff762019-12-16 15:20:22 +0000796 },
797#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
798
Summer Qin423dbef2019-08-22 15:59:35 +0800799};
800
801/**************************************************************************/
802/** The platform data of the partition list */
803/**************************************************************************/
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100804#ifdef TFM_PARTITION_AUDIT_LOG
805const struct tfm_spm_partition_platform_data_t *
806 platform_data_list_TFM_SP_AUDIT_LOG[] =
807{
808#ifdef AUDIT_UART_REDIRECTION
809 TFM_PERIPHERAL_UART1,
810#endif /* AUDIT_UART_REDIRECTION */
811 NULL
812};
813#endif /* TFM_PARTITION_AUDIT_LOG */
814
815#ifdef TFM_PARTITION_TEST_CORE
816const struct tfm_spm_partition_platform_data_t *
817 platform_data_list_TFM_SP_CORE_TEST[] =
818{
819 TFM_PERIPHERAL_FPGA_IO,
820 NULL
821};
822#endif /* TFM_PARTITION_TEST_CORE */
823
824#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
825const struct tfm_spm_partition_platform_data_t *
826 platform_data_list_TFM_SP_SECURE_TEST_PARTITION[] =
827{
828 TFM_PERIPHERAL_STD_UART,
829 NULL
830};
831#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
832
833#ifdef TFM_ENABLE_IRQ_TEST
834const struct tfm_spm_partition_platform_data_t *
835 platform_data_list_TFM_IRQ_TEST_1[] =
836{
837 TFM_PERIPHERAL_TIMER0,
838 NULL
839};
840#endif /* TFM_ENABLE_IRQ_TEST */
841
842const struct tfm_spm_partition_platform_data_t **platform_data_list_list[] =
Summer Qin423dbef2019-08-22 15:59:35 +0800843{
844 NULL,
845
846#ifndef TFM_PSA_API
847 NULL,
848#endif
849
850 NULL,
851
TudorCretufb182bc2019-07-05 17:34:12 +0100852 NULL,
853
Summer Qin423dbef2019-08-22 15:59:35 +0800854#ifdef TFM_PARTITION_AUDIT_LOG
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100855 platform_data_list_TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800856#endif /* TFM_PARTITION_AUDIT_LOG */
857
858 NULL,
859
860#ifdef TFM_PARTITION_PLATFORM
861 NULL,
862#endif /* TFM_PARTITION_PLATFORM */
863
864 NULL,
865
866#ifdef TFM_PARTITION_TEST_CORE
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100867 platform_data_list_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800868#endif /* TFM_PARTITION_TEST_CORE */
869
870#ifdef TFM_PARTITION_TEST_CORE
871 NULL,
872#endif /* TFM_PARTITION_TEST_CORE */
873
874#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100875 platform_data_list_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800876#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
877
878#ifdef TFM_PARTITION_TEST_CORE_IPC
879 NULL,
880#endif /* TFM_PARTITION_TEST_CORE_IPC */
881
882#ifdef TFM_PARTITION_TEST_CORE_IPC
883 NULL,
884#endif /* TFM_PARTITION_TEST_CORE_IPC */
885
886#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100887 platform_data_list_TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800888#endif /* TFM_ENABLE_IRQ_TEST */
889
Jamie Fox0e823a02019-10-28 17:28:19 +0000890#ifdef TFM_PARTITION_TEST_SST
891 NULL,
892#endif /* TFM_PARTITION_TEST_SST */
893
Jamie Fox830ff762019-12-16 15:20:22 +0000894#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
895 NULL,
896#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
897
Summer Qin423dbef2019-08-22 15:59:35 +0800898};
899
900/**************************************************************************/
901/** The memory data of the partition list */
902/**************************************************************************/
903#ifdef TFM_PSA_API
904const struct tfm_spm_partition_memory_data_t memory_data_list[] =
905{
906 {
907 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
908 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
909 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
910 },
911 {
Edison Aib2134e62019-10-11 18:24:47 +0800912 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
913 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
914 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
915 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
916 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
917 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
918 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
919 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
920 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
921 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800922 },
923
TudorCretufb182bc2019-07-05 17:34:12 +0100924 {
Edison Aib2134e62019-10-11 18:24:47 +0800925 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
926 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
927 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
928 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
929 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
930 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
931 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
932 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
933 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
934 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +0100935 },
936
Summer Qin423dbef2019-08-22 15:59:35 +0800937#ifdef TFM_PARTITION_AUDIT_LOG
938 {
Edison Aib2134e62019-10-11 18:24:47 +0800939 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
940 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
941 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
942 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
943 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
944 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
945 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
946 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
947 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
948 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800949 },
950#endif /* TFM_PARTITION_AUDIT_LOG */
951
952 {
Edison Aib2134e62019-10-11 18:24:47 +0800953 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
954 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
955 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
956 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
957 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
958 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
959 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
960 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
961 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
962 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800963 },
964
965#ifdef TFM_PARTITION_PLATFORM
966 {
Edison Aib2134e62019-10-11 18:24:47 +0800967 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
968 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
969 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
970 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
971 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
972 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
973 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
974 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
975 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
976 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800977 },
978#endif /* TFM_PARTITION_PLATFORM */
979
980 {
Edison Aib2134e62019-10-11 18:24:47 +0800981 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
982 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
983 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
984 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
985 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
986 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
987 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
988 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
989 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
990 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800991 },
992
993#ifdef TFM_PARTITION_TEST_CORE
994 {
Edison Aib2134e62019-10-11 18:24:47 +0800995 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
996 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
997 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
998 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
999 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
1000 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1001 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1002 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1003 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1004 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001005 },
1006#endif /* TFM_PARTITION_TEST_CORE */
1007
1008#ifdef TFM_PARTITION_TEST_CORE
1009 {
Edison Aib2134e62019-10-11 18:24:47 +08001010 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
1011 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
1012 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
1013 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
1014 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
1015 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
1016 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
1017 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
1018 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
1019 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001020 },
1021#endif /* TFM_PARTITION_TEST_CORE */
1022
1023#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1024 {
Edison Aib2134e62019-10-11 18:24:47 +08001025 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
1026 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
1027 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
1028 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
1029 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
1030 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
1031 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
1032 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
1033 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
1034 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001035 },
1036#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1037
1038#ifdef TFM_PARTITION_TEST_CORE_IPC
1039 {
Edison Aib2134e62019-10-11 18:24:47 +08001040 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
1041 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
1042 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
1043 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
1044 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
1045 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
1046 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
1047 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
1048 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
1049 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001050 },
1051#endif /* TFM_PARTITION_TEST_CORE_IPC */
1052
1053#ifdef TFM_PARTITION_TEST_CORE_IPC
1054 {
Edison Aib2134e62019-10-11 18:24:47 +08001055 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
1056 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
1057 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
1058 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
1059 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
1060 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
1061 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
1062 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
1063 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
1064 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001065 },
1066#endif /* TFM_PARTITION_TEST_CORE_IPC */
1067
1068#ifdef TFM_ENABLE_IRQ_TEST
1069 {
Edison Aib2134e62019-10-11 18:24:47 +08001070 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
1071 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
1072 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
1073 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
1074 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
1075 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
1076 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
1077 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
1078 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
1079 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001080 },
1081#endif /* TFM_ENABLE_IRQ_TEST */
1082
Jamie Fox0e823a02019-10-28 17:28:19 +00001083#ifdef TFM_PARTITION_TEST_SST
1084 {
1085 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
1086 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
1087 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
1088 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
1089 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
1090 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
1091 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
1092 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
1093 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
1094 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
1095 },
1096#endif /* TFM_PARTITION_TEST_SST */
1097
Jamie Fox830ff762019-12-16 15:20:22 +00001098#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1099 {
1100 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Base),
1101 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit),
1102 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base),
1103 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit),
1104 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base),
1105 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit),
1106 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base),
1107 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit),
1108 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base),
1109 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit),
1110 },
1111#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1112
Summer Qin423dbef2019-08-22 15:59:35 +08001113};
1114#endif /* defined(TFM_PSA_API) */
1115
1116/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001117/** The partition list for the DB */
1118/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +08001119static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001120{
Summer Qin423dbef2019-08-22 15:59:35 +08001121 {{}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001122#ifndef TFM_PSA_API
Summer Qin423dbef2019-08-22 15:59:35 +08001123 {{}}, /* placeholder for TF-M Core internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001124#endif /* !ifndefined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001125
1126 /* -----------------------------------------------------------------------*/
1127 /* - Partition DB record for TFM_SP_STORAGE */
1128 /* -----------------------------------------------------------------------*/
1129 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001130 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001131 .runtime_data = {},
1132 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001133 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001134 },
1135
1136 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +01001137 /* - Partition DB record for TFM_SP_ITS */
1138 /* -----------------------------------------------------------------------*/
1139 {
1140 /* Runtime data */
1141 .runtime_data = {},
1142 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001143 .platform_data_list = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +01001144 },
1145
1146 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001147 /* - Partition DB record for TFM_SP_AUDIT_LOG */
1148 /* -----------------------------------------------------------------------*/
1149#ifdef TFM_PARTITION_AUDIT_LOG
1150 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001151 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001152 .runtime_data = {},
1153 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001154 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001155 },
1156#endif /* TFM_PARTITION_AUDIT_LOG */
1157
1158 /* -----------------------------------------------------------------------*/
1159 /* - Partition DB record for TFM_SP_CRYPTO */
1160 /* -----------------------------------------------------------------------*/
1161 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001162 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001163 .runtime_data = {},
1164 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001165 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001166 },
1167
1168 /* -----------------------------------------------------------------------*/
1169 /* - Partition DB record for TFM_SP_PLATFORM */
1170 /* -----------------------------------------------------------------------*/
1171#ifdef TFM_PARTITION_PLATFORM
1172 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001173 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001174 .runtime_data = {},
1175 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001176 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001177 },
1178#endif /* TFM_PARTITION_PLATFORM */
1179
1180 /* -----------------------------------------------------------------------*/
1181 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
1182 /* -----------------------------------------------------------------------*/
1183 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001184 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001185 .runtime_data = {},
1186 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001187 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001188 },
1189
1190 /* -----------------------------------------------------------------------*/
1191 /* - Partition DB record for TFM_SP_CORE_TEST */
1192 /* -----------------------------------------------------------------------*/
1193#ifdef TFM_PARTITION_TEST_CORE
1194 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001195 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001196 .runtime_data = {},
1197 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001198 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001199 },
1200#endif /* TFM_PARTITION_TEST_CORE */
1201
1202 /* -----------------------------------------------------------------------*/
1203 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1204 /* -----------------------------------------------------------------------*/
1205#ifdef TFM_PARTITION_TEST_CORE
1206 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001207 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001208 .runtime_data = {},
1209 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001210 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001211 },
1212#endif /* TFM_PARTITION_TEST_CORE */
1213
1214 /* -----------------------------------------------------------------------*/
1215 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1216 /* -----------------------------------------------------------------------*/
1217#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1218 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001219 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001220 .runtime_data = {},
1221 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001222 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001223 },
1224#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1225
1226 /* -----------------------------------------------------------------------*/
1227 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1228 /* -----------------------------------------------------------------------*/
1229#ifdef TFM_PARTITION_TEST_CORE_IPC
1230 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001231 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001232 .runtime_data = {},
1233 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001234 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001235 },
1236#endif /* TFM_PARTITION_TEST_CORE_IPC */
1237
1238 /* -----------------------------------------------------------------------*/
1239 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1240 /* -----------------------------------------------------------------------*/
1241#ifdef TFM_PARTITION_TEST_CORE_IPC
1242 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001243 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001244 .runtime_data = {},
1245 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001246 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001247 },
1248#endif /* TFM_PARTITION_TEST_CORE_IPC */
1249
1250 /* -----------------------------------------------------------------------*/
1251 /* - Partition DB record for TFM_IRQ_TEST_1 */
1252 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001253#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001254 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001255 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001256 .runtime_data = {},
1257 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001258 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001259 },
David Hu33f2fd22019-08-16 15:32:39 +08001260#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001261
Jamie Fox0e823a02019-10-28 17:28:19 +00001262 /* -----------------------------------------------------------------------*/
1263 /* - Partition DB record for TFM_SP_SST_TEST */
1264 /* -----------------------------------------------------------------------*/
1265#ifdef TFM_PARTITION_TEST_SST
1266 {
1267 /* Runtime data */
1268 .runtime_data = {},
1269 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001270 .platform_data_list = NULL,
Jamie Fox0e823a02019-10-28 17:28:19 +00001271 },
1272#endif /* TFM_PARTITION_TEST_SST */
1273
Jamie Fox830ff762019-12-16 15:20:22 +00001274 /* -----------------------------------------------------------------------*/
1275 /* - Partition DB record for TFM_SP_SECURE_CLIENT_2 */
1276 /* -----------------------------------------------------------------------*/
1277#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1278 {
1279 /* Runtime data */
1280 .runtime_data = {},
1281 .static_data = NULL,
1282 .platform_data_list = NULL,
1283 },
1284#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1285
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001286};
1287
1288struct spm_partition_db_t g_spm_partition_db = {
1289 .is_init = 0,
1290 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001291#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001292 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001293#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001294 .partitions = partition_list,
1295};
1296
1297#endif /* __TFM_SPM_DB_INC__ */