blob: 43bd2bc8fe342abed22501705a14bdb539d59b42 [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
546/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800547/** The static data of the partition list */
548/**************************************************************************/
549const struct spm_partition_static_data_t static_data_list[] =
550{
551 {
Edison Aif0501702019-10-11 14:36:42 +0800552#ifdef TFM_PSA_API
553 .psa_framework_version = 0x0100,
554#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800555 .partition_id = TFM_SP_NON_SECURE_ID,
556#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800557#if TFM_MULTI_CORE_TOPOLOGY
558 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
559#else
Summer Qin423dbef2019-08-22 15:59:35 +0800560 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800561#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800562 .partition_priority = TFM_PRIORITY_LOW,
563 .partition_init = tfm_nspm_thread_entry,
564#else
565 .partition_flags = 0,
566#endif
567 },
568
569#ifndef TFM_PSA_API
570 {
571 .partition_id = TFM_SP_CORE_ID,
572 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
573 },
574#endif
575
576 {
Edison Aif0501702019-10-11 14:36:42 +0800577#ifdef TFM_PSA_API
578 .psa_framework_version = 0x0100,
579#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800580 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800581 .partition_flags = SPM_PART_FLAG_IPC
582 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
583 ,
584 .partition_priority = TFM_PRIORITY(NORMAL),
585 .partition_init = tfm_sst_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800586 .dependencies_num = 1,
587 .p_dependencies = dependencies_TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800588 },
589
TudorCretufb182bc2019-07-05 17:34:12 +0100590 {
Edison Aif0501702019-10-11 14:36:42 +0800591#ifdef TFM_PSA_API
592 .psa_framework_version = 0x0100,
593#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800594 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100595 .partition_flags = SPM_PART_FLAG_IPC
596 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
597 ,
598 .partition_priority = TFM_PRIORITY(NORMAL),
599 .partition_init = tfm_its_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800600 .dependencies_num = 0,
601 .p_dependencies = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +0100602 },
603
Summer Qin423dbef2019-08-22 15:59:35 +0800604#ifdef TFM_PARTITION_AUDIT_LOG
605 {
Edison Aif0501702019-10-11 14:36:42 +0800606#ifdef TFM_PSA_API
607 .psa_framework_version = 0x0100,
608#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800609 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800610 .partition_flags = 0
611 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
612 ,
613 .partition_priority = TFM_PRIORITY(NORMAL),
614 .partition_init = audit_core_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800615 .dependencies_num = 0,
616 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800617 },
618#endif /* TFM_PARTITION_AUDIT_LOG */
619
620 {
Edison Aif0501702019-10-11 14:36:42 +0800621#ifdef TFM_PSA_API
622 .psa_framework_version = 0x0100,
623#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800624 .partition_id = TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800625 .partition_flags = SPM_PART_FLAG_IPC
626 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
627 ,
628 .partition_priority = TFM_PRIORITY(NORMAL),
629 .partition_init = tfm_crypto_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800630 .dependencies_num = 0,
631 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800632 },
633
634#ifdef TFM_PARTITION_PLATFORM
635 {
Edison Aif0501702019-10-11 14:36:42 +0800636#ifdef TFM_PSA_API
637 .psa_framework_version = 0x0100,
638#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800639 .partition_id = TFM_SP_PLATFORM,
Mate Toth-Pal179a1562019-11-08 11:40:27 +0100640 .partition_flags = SPM_PART_FLAG_IPC
Summer Qin423dbef2019-08-22 15:59:35 +0800641 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
642 ,
643 .partition_priority = TFM_PRIORITY(NORMAL),
644 .partition_init = platform_sp_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800645 .dependencies_num = 0,
646 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800647 },
648#endif /* TFM_PARTITION_PLATFORM */
649
650 {
Edison Aif0501702019-10-11 14:36:42 +0800651#ifdef TFM_PSA_API
652 .psa_framework_version = 0x0100,
653#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800654 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800655 .partition_flags = SPM_PART_FLAG_IPC
656 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
657 ,
658 .partition_priority = TFM_PRIORITY(NORMAL),
659 .partition_init = attest_partition_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800660 .dependencies_num = 1,
661 .p_dependencies = dependencies_TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800662 },
663
664#ifdef TFM_PARTITION_TEST_CORE
665 {
Edison Aif0501702019-10-11 14:36:42 +0800666#ifdef TFM_PSA_API
667 .psa_framework_version = 0x0100,
668#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800669 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800670 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200671 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800672 ,
673 .partition_priority = TFM_PRIORITY(NORMAL),
674 .partition_init = core_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800675 .dependencies_num = 3,
676 .p_dependencies = dependencies_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800677 },
678#endif /* TFM_PARTITION_TEST_CORE */
679
680#ifdef TFM_PARTITION_TEST_CORE
681 {
Edison Aif0501702019-10-11 14:36:42 +0800682#ifdef TFM_PSA_API
683 .psa_framework_version = 0x0100,
684#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800685 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800686 .partition_flags = SPM_PART_FLAG_IPC
687 | SPM_PART_FLAG_APP_ROT
688 ,
689 .partition_priority = TFM_PRIORITY(NORMAL),
690 .partition_init = core_test_2_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800691 .dependencies_num = 0,
692 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800693 },
694#endif /* TFM_PARTITION_TEST_CORE */
695
696#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
697 {
Edison Aif0501702019-10-11 14:36:42 +0800698#ifdef TFM_PSA_API
699 .psa_framework_version = 0x0100,
700#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800701 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800702 .partition_flags = SPM_PART_FLAG_IPC
703 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
704 ,
705 .partition_priority = TFM_PRIORITY(NORMAL),
706 .partition_init = tfm_secure_client_service_init,
Jamie Fox830ff762019-12-16 15:20:22 +0000707 .dependencies_num = 17,
Edison Aie728fbf2019-11-13 09:37:12 +0800708 .p_dependencies = dependencies_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800709 },
710#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
711
712#ifdef TFM_PARTITION_TEST_CORE_IPC
713 {
Edison Aif0501702019-10-11 14:36:42 +0800714#ifdef TFM_PSA_API
715 .psa_framework_version = 0x0100,
716#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800717 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800718 .partition_flags = SPM_PART_FLAG_IPC
719 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
720 ,
721 .partition_priority = TFM_PRIORITY(HIGH),
722 .partition_init = ipc_service_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800723 .dependencies_num = 0,
724 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800725 },
726#endif /* TFM_PARTITION_TEST_CORE_IPC */
727
728#ifdef TFM_PARTITION_TEST_CORE_IPC
729 {
Edison Aif0501702019-10-11 14:36:42 +0800730#ifdef TFM_PSA_API
731 .psa_framework_version = 0x0100,
732#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800733 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800734 .partition_flags = SPM_PART_FLAG_IPC
735 | SPM_PART_FLAG_APP_ROT
736 ,
737 .partition_priority = TFM_PRIORITY(NORMAL),
738 .partition_init = ipc_client_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800739 .dependencies_num = 4,
740 .p_dependencies = dependencies_TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800741 },
742#endif /* TFM_PARTITION_TEST_CORE_IPC */
743
744#ifdef TFM_ENABLE_IRQ_TEST
745 {
Edison Aif0501702019-10-11 14:36:42 +0800746#ifdef TFM_PSA_API
747 .psa_framework_version = 0x0100,
748#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800749 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800750 .partition_flags = SPM_PART_FLAG_IPC
751 | SPM_PART_FLAG_APP_ROT
752 ,
753 .partition_priority = TFM_PRIORITY(NORMAL),
754 .partition_init = tfm_irq_test_1_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800755 .dependencies_num = 0,
756 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800757 },
758#endif /* TFM_ENABLE_IRQ_TEST */
759
Jamie Fox0e823a02019-10-28 17:28:19 +0000760#ifdef TFM_PARTITION_TEST_SST
761 {
762#ifdef TFM_PSA_API
763 .psa_framework_version = 0x0100,
764#endif /* defined(TFM_PSA_API) */
765 .partition_id = TFM_SP_SST_TEST,
766 .partition_flags = SPM_PART_FLAG_IPC
767 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
768 ,
769 .partition_priority = TFM_PRIORITY(NORMAL),
770 .partition_init = tfm_sst_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800771 .dependencies_num = 1,
772 .p_dependencies = dependencies_TFM_SP_SST_TEST,
Jamie Fox0e823a02019-10-28 17:28:19 +0000773 },
774#endif /* TFM_PARTITION_TEST_SST */
775
Jamie Fox830ff762019-12-16 15:20:22 +0000776#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
777 {
778#ifdef TFM_PSA_API
779 .psa_framework_version = 0x0100,
780#endif /* defined(TFM_PSA_API) */
781 .partition_id = TFM_SP_SECURE_CLIENT_2,
782 .partition_flags = SPM_PART_FLAG_IPC
783 | SPM_PART_FLAG_APP_ROT
784 ,
785 .partition_priority = TFM_PRIORITY(NORMAL),
786 .partition_init = tfm_secure_client_2_init,
787 .dependencies_num = 0,
788 .p_dependencies = NULL,
789 },
790#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
791
Summer Qin423dbef2019-08-22 15:59:35 +0800792};
793
794/**************************************************************************/
795/** The platform data of the partition list */
796/**************************************************************************/
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100797#ifdef TFM_PARTITION_AUDIT_LOG
798const struct tfm_spm_partition_platform_data_t *
799 platform_data_list_TFM_SP_AUDIT_LOG[] =
800{
801#ifdef AUDIT_UART_REDIRECTION
802 TFM_PERIPHERAL_UART1,
803#endif /* AUDIT_UART_REDIRECTION */
804 NULL
805};
806#endif /* TFM_PARTITION_AUDIT_LOG */
807
808#ifdef TFM_PARTITION_TEST_CORE
809const struct tfm_spm_partition_platform_data_t *
810 platform_data_list_TFM_SP_CORE_TEST[] =
811{
812 TFM_PERIPHERAL_FPGA_IO,
813 NULL
814};
815#endif /* TFM_PARTITION_TEST_CORE */
816
817#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
818const struct tfm_spm_partition_platform_data_t *
819 platform_data_list_TFM_SP_SECURE_TEST_PARTITION[] =
820{
821 TFM_PERIPHERAL_STD_UART,
822 NULL
823};
824#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
825
826#ifdef TFM_ENABLE_IRQ_TEST
827const struct tfm_spm_partition_platform_data_t *
828 platform_data_list_TFM_IRQ_TEST_1[] =
829{
830 TFM_PERIPHERAL_TIMER0,
831 NULL
832};
833#endif /* TFM_ENABLE_IRQ_TEST */
834
835const struct tfm_spm_partition_platform_data_t **platform_data_list_list[] =
Summer Qin423dbef2019-08-22 15:59:35 +0800836{
837 NULL,
838
839#ifndef TFM_PSA_API
840 NULL,
841#endif
842
843 NULL,
844
TudorCretufb182bc2019-07-05 17:34:12 +0100845 NULL,
846
Summer Qin423dbef2019-08-22 15:59:35 +0800847#ifdef TFM_PARTITION_AUDIT_LOG
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100848 platform_data_list_TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800849#endif /* TFM_PARTITION_AUDIT_LOG */
850
851 NULL,
852
853#ifdef TFM_PARTITION_PLATFORM
854 NULL,
855#endif /* TFM_PARTITION_PLATFORM */
856
857 NULL,
858
859#ifdef TFM_PARTITION_TEST_CORE
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100860 platform_data_list_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800861#endif /* TFM_PARTITION_TEST_CORE */
862
863#ifdef TFM_PARTITION_TEST_CORE
864 NULL,
865#endif /* TFM_PARTITION_TEST_CORE */
866
867#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100868 platform_data_list_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800869#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
870
871#ifdef TFM_PARTITION_TEST_CORE_IPC
872 NULL,
873#endif /* TFM_PARTITION_TEST_CORE_IPC */
874
875#ifdef TFM_PARTITION_TEST_CORE_IPC
876 NULL,
877#endif /* TFM_PARTITION_TEST_CORE_IPC */
878
879#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100880 platform_data_list_TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800881#endif /* TFM_ENABLE_IRQ_TEST */
882
Jamie Fox0e823a02019-10-28 17:28:19 +0000883#ifdef TFM_PARTITION_TEST_SST
884 NULL,
885#endif /* TFM_PARTITION_TEST_SST */
886
Jamie Fox830ff762019-12-16 15:20:22 +0000887#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
888 NULL,
889#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
890
Summer Qin423dbef2019-08-22 15:59:35 +0800891};
892
893/**************************************************************************/
894/** The memory data of the partition list */
895/**************************************************************************/
896#ifdef TFM_PSA_API
897const struct tfm_spm_partition_memory_data_t memory_data_list[] =
898{
899 {
900 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
901 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
902 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
903 },
904 {
Edison Aib2134e62019-10-11 18:24:47 +0800905 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
906 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
907 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
908 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
909 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
910 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
911 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
912 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
913 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
914 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800915 },
916
TudorCretufb182bc2019-07-05 17:34:12 +0100917 {
Edison Aib2134e62019-10-11 18:24:47 +0800918 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
919 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
920 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
921 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
922 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
923 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
924 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
925 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
926 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
927 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +0100928 },
929
Summer Qin423dbef2019-08-22 15:59:35 +0800930#ifdef TFM_PARTITION_AUDIT_LOG
931 {
Edison Aib2134e62019-10-11 18:24:47 +0800932 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
933 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
934 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
935 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
936 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
937 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
938 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
939 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
940 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
941 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800942 },
943#endif /* TFM_PARTITION_AUDIT_LOG */
944
945 {
Edison Aib2134e62019-10-11 18:24:47 +0800946 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
947 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
948 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
949 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
950 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
951 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
952 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
953 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
954 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
955 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800956 },
957
958#ifdef TFM_PARTITION_PLATFORM
959 {
Edison Aib2134e62019-10-11 18:24:47 +0800960 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
961 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
962 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
963 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
964 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
965 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
966 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
967 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
968 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
969 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800970 },
971#endif /* TFM_PARTITION_PLATFORM */
972
973 {
Edison Aib2134e62019-10-11 18:24:47 +0800974 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
975 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
976 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
977 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
978 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
979 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
980 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
981 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
982 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
983 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800984 },
985
986#ifdef TFM_PARTITION_TEST_CORE
987 {
Edison Aib2134e62019-10-11 18:24:47 +0800988 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
989 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
990 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
991 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
992 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
993 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
994 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
995 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
996 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
997 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800998 },
999#endif /* TFM_PARTITION_TEST_CORE */
1000
1001#ifdef TFM_PARTITION_TEST_CORE
1002 {
Edison Aib2134e62019-10-11 18:24:47 +08001003 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
1004 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
1005 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
1006 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
1007 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
1008 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
1009 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
1010 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
1011 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
1012 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001013 },
1014#endif /* TFM_PARTITION_TEST_CORE */
1015
1016#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1017 {
Edison Aib2134e62019-10-11 18:24:47 +08001018 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
1019 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
1020 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
1021 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
1022 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
1023 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
1024 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
1025 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
1026 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
1027 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001028 },
1029#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1030
1031#ifdef TFM_PARTITION_TEST_CORE_IPC
1032 {
Edison Aib2134e62019-10-11 18:24:47 +08001033 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
1034 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
1035 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
1036 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
1037 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
1038 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
1039 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
1040 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
1041 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
1042 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001043 },
1044#endif /* TFM_PARTITION_TEST_CORE_IPC */
1045
1046#ifdef TFM_PARTITION_TEST_CORE_IPC
1047 {
Edison Aib2134e62019-10-11 18:24:47 +08001048 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
1049 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
1050 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
1051 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
1052 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
1053 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
1054 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
1055 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
1056 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
1057 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001058 },
1059#endif /* TFM_PARTITION_TEST_CORE_IPC */
1060
1061#ifdef TFM_ENABLE_IRQ_TEST
1062 {
Edison Aib2134e62019-10-11 18:24:47 +08001063 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
1064 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
1065 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
1066 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
1067 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
1068 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
1069 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
1070 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
1071 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
1072 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001073 },
1074#endif /* TFM_ENABLE_IRQ_TEST */
1075
Jamie Fox0e823a02019-10-28 17:28:19 +00001076#ifdef TFM_PARTITION_TEST_SST
1077 {
1078 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
1079 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
1080 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
1081 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
1082 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
1083 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
1084 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
1085 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
1086 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
1087 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
1088 },
1089#endif /* TFM_PARTITION_TEST_SST */
1090
Jamie Fox830ff762019-12-16 15:20:22 +00001091#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1092 {
1093 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Base),
1094 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit),
1095 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base),
1096 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit),
1097 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base),
1098 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit),
1099 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base),
1100 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit),
1101 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base),
1102 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit),
1103 },
1104#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1105
Summer Qin423dbef2019-08-22 15:59:35 +08001106};
1107#endif /* defined(TFM_PSA_API) */
1108
1109/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001110/** The partition list for the DB */
1111/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +08001112static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001113{
Summer Qin423dbef2019-08-22 15:59:35 +08001114 {{}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001115#ifndef TFM_PSA_API
Summer Qin423dbef2019-08-22 15:59:35 +08001116 {{}}, /* placeholder for TF-M Core internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001117#endif /* !ifndefined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001118
1119 /* -----------------------------------------------------------------------*/
1120 /* - Partition DB record for TFM_SP_STORAGE */
1121 /* -----------------------------------------------------------------------*/
1122 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001123 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001124 .runtime_data = {},
1125 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001126 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001127 },
1128
1129 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +01001130 /* - Partition DB record for TFM_SP_ITS */
1131 /* -----------------------------------------------------------------------*/
1132 {
1133 /* Runtime data */
1134 .runtime_data = {},
1135 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001136 .platform_data_list = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +01001137 },
1138
1139 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001140 /* - Partition DB record for TFM_SP_AUDIT_LOG */
1141 /* -----------------------------------------------------------------------*/
1142#ifdef TFM_PARTITION_AUDIT_LOG
1143 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001144 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001145 .runtime_data = {},
1146 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001147 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001148 },
1149#endif /* TFM_PARTITION_AUDIT_LOG */
1150
1151 /* -----------------------------------------------------------------------*/
1152 /* - Partition DB record for TFM_SP_CRYPTO */
1153 /* -----------------------------------------------------------------------*/
1154 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001155 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001156 .runtime_data = {},
1157 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001158 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001159 },
1160
1161 /* -----------------------------------------------------------------------*/
1162 /* - Partition DB record for TFM_SP_PLATFORM */
1163 /* -----------------------------------------------------------------------*/
1164#ifdef TFM_PARTITION_PLATFORM
1165 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001166 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001167 .runtime_data = {},
1168 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001169 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001170 },
1171#endif /* TFM_PARTITION_PLATFORM */
1172
1173 /* -----------------------------------------------------------------------*/
1174 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
1175 /* -----------------------------------------------------------------------*/
1176 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001177 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001178 .runtime_data = {},
1179 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001180 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001181 },
1182
1183 /* -----------------------------------------------------------------------*/
1184 /* - Partition DB record for TFM_SP_CORE_TEST */
1185 /* -----------------------------------------------------------------------*/
1186#ifdef TFM_PARTITION_TEST_CORE
1187 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001188 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001189 .runtime_data = {},
1190 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001191 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001192 },
1193#endif /* TFM_PARTITION_TEST_CORE */
1194
1195 /* -----------------------------------------------------------------------*/
1196 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1197 /* -----------------------------------------------------------------------*/
1198#ifdef TFM_PARTITION_TEST_CORE
1199 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001200 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001201 .runtime_data = {},
1202 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001203 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001204 },
1205#endif /* TFM_PARTITION_TEST_CORE */
1206
1207 /* -----------------------------------------------------------------------*/
1208 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1209 /* -----------------------------------------------------------------------*/
1210#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1211 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001212 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001213 .runtime_data = {},
1214 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001215 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001216 },
1217#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1218
1219 /* -----------------------------------------------------------------------*/
1220 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1221 /* -----------------------------------------------------------------------*/
1222#ifdef TFM_PARTITION_TEST_CORE_IPC
1223 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001224 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001225 .runtime_data = {},
1226 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001227 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001228 },
1229#endif /* TFM_PARTITION_TEST_CORE_IPC */
1230
1231 /* -----------------------------------------------------------------------*/
1232 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1233 /* -----------------------------------------------------------------------*/
1234#ifdef TFM_PARTITION_TEST_CORE_IPC
1235 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001236 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001237 .runtime_data = {},
1238 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001239 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001240 },
1241#endif /* TFM_PARTITION_TEST_CORE_IPC */
1242
1243 /* -----------------------------------------------------------------------*/
1244 /* - Partition DB record for TFM_IRQ_TEST_1 */
1245 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001246#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001247 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001248 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001249 .runtime_data = {},
1250 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001251 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001252 },
David Hu33f2fd22019-08-16 15:32:39 +08001253#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001254
Jamie Fox0e823a02019-10-28 17:28:19 +00001255 /* -----------------------------------------------------------------------*/
1256 /* - Partition DB record for TFM_SP_SST_TEST */
1257 /* -----------------------------------------------------------------------*/
1258#ifdef TFM_PARTITION_TEST_SST
1259 {
1260 /* Runtime data */
1261 .runtime_data = {},
1262 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001263 .platform_data_list = NULL,
Jamie Fox0e823a02019-10-28 17:28:19 +00001264 },
1265#endif /* TFM_PARTITION_TEST_SST */
1266
Jamie Fox830ff762019-12-16 15:20:22 +00001267 /* -----------------------------------------------------------------------*/
1268 /* - Partition DB record for TFM_SP_SECURE_CLIENT_2 */
1269 /* -----------------------------------------------------------------------*/
1270#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1271 {
1272 /* Runtime data */
1273 .runtime_data = {},
1274 .static_data = NULL,
1275 .platform_data_list = NULL,
1276 },
1277#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1278
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001279};
1280
1281struct spm_partition_db_t g_spm_partition_db = {
1282 .is_init = 0,
1283 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001284#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001285 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001286#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001287 .partitions = partition_list,
1288};
1289
1290#endif /* __TFM_SPM_DB_INC__ */