blob: ce05fd6f0d7ac2c799b66398720ab8c4a6ec66e3 [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/**************************************************************************/
Kevin Pengc73130f2019-10-22 17:27:18 +080019#ifdef TFM_PARTITION_SECURE_STORAGE
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020020#define TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT 0
Kevin Pengc73130f2019-10-22 17:27:18 +080021#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020022
Kevin Pengc73130f2019-10-22 17:27:18 +080023#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +010024#define TFM_PARTITION_TFM_SP_ITS_IRQ_COUNT 0
Kevin Pengc73130f2019-10-22 17:27:18 +080025#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +010026
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020027#ifdef TFM_PARTITION_AUDIT_LOG
28#define TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT 0
29#endif /* TFM_PARTITION_AUDIT_LOG */
30
Kevin Pengc73130f2019-10-22 17:27:18 +080031#ifdef TFM_PARTITION_CRYPTO
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020032#define TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT 0
Kevin Pengc73130f2019-10-22 17:27:18 +080033#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020034
35#ifdef TFM_PARTITION_PLATFORM
36#define TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT 0
37#endif /* TFM_PARTITION_PLATFORM */
38
Kevin Pengc73130f2019-10-22 17:27:18 +080039#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020040#define TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT 0
Kevin Pengc73130f2019-10-22 17:27:18 +080041#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020042
43#ifdef TFM_PARTITION_TEST_CORE
44#define TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT 0
45#endif /* TFM_PARTITION_TEST_CORE */
46
47#ifdef TFM_PARTITION_TEST_CORE
48#define TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT 0
49#endif /* TFM_PARTITION_TEST_CORE */
50
51#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
52#define TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT 0
53#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
54
55#ifdef TFM_PARTITION_TEST_CORE_IPC
56#define TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT 0
57#endif /* TFM_PARTITION_TEST_CORE_IPC */
58
59#ifdef TFM_PARTITION_TEST_CORE_IPC
60#define TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT 0
61#endif /* TFM_PARTITION_TEST_CORE_IPC */
62
David Hu33f2fd22019-08-16 15:32:39 +080063#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020064#define TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT 1
David Hu33f2fd22019-08-16 15:32:39 +080065#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020066
Jamie Fox0e823a02019-10-28 17:28:19 +000067#ifdef TFM_PARTITION_TEST_SST
68#define TFM_PARTITION_TFM_SP_SST_TEST_IRQ_COUNT 0
69#endif /* TFM_PARTITION_TEST_SST */
70
Jamie Fox830ff762019-12-16 15:20:22 +000071#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
72#define TFM_PARTITION_TFM_SP_SECURE_CLIENT_2_IRQ_COUNT 0
73#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
74
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020075/**************************************************************************/
76/** Declarations of partition init functions */
77/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +080078#ifdef TFM_PSA_API
Edison Ai9c48d202019-10-12 16:57:21 +080079extern void tfm_nspm_thread_entry(void);
Summer Qin423dbef2019-08-22 15:59:35 +080080#endif
81
Kevin Pengc73130f2019-10-22 17:27:18 +080082#ifdef TFM_PARTITION_SECURE_STORAGE
Edison Ai9c48d202019-10-12 16:57:21 +080083extern void tfm_sst_req_mngr_init(void);
Kevin Pengc73130f2019-10-22 17:27:18 +080084#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020085
Kevin Pengc73130f2019-10-22 17:27:18 +080086#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Edison Ai9c48d202019-10-12 16:57:21 +080087extern void tfm_its_req_mngr_init(void);
Kevin Pengc73130f2019-10-22 17:27:18 +080088#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +010089
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020090#ifdef TFM_PARTITION_AUDIT_LOG
Edison Ai9c48d202019-10-12 16:57:21 +080091extern void audit_core_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020092#endif /* TFM_PARTITION_AUDIT_LOG */
93
Kevin Pengc73130f2019-10-22 17:27:18 +080094#ifdef TFM_PARTITION_CRYPTO
Edison Ai9c48d202019-10-12 16:57:21 +080095extern void tfm_crypto_init(void);
Kevin Pengc73130f2019-10-22 17:27:18 +080096#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020097
98#ifdef TFM_PARTITION_PLATFORM
Edison Ai9c48d202019-10-12 16:57:21 +080099extern void platform_sp_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200100#endif /* TFM_PARTITION_PLATFORM */
101
Kevin Pengc73130f2019-10-22 17:27:18 +0800102#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Edison Ai9c48d202019-10-12 16:57:21 +0800103extern void attest_partition_init(void);
Kevin Pengc73130f2019-10-22 17:27:18 +0800104#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200105
106#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +0800107extern void core_test_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200108#endif /* TFM_PARTITION_TEST_CORE */
109
110#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +0800111extern void core_test_2_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200112#endif /* TFM_PARTITION_TEST_CORE */
113
114#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Ai9c48d202019-10-12 16:57:21 +0800115extern void tfm_secure_client_service_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200116#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
117
118#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +0800119extern void ipc_service_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200120#endif /* TFM_PARTITION_TEST_CORE_IPC */
121
122#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +0800123extern void ipc_client_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200124#endif /* TFM_PARTITION_TEST_CORE_IPC */
125
David Hu33f2fd22019-08-16 15:32:39 +0800126#ifdef TFM_ENABLE_IRQ_TEST
Edison Ai9c48d202019-10-12 16:57:21 +0800127extern void tfm_irq_test_1_init(void);
David Hu33f2fd22019-08-16 15:32:39 +0800128#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200129
Jamie Fox0e823a02019-10-28 17:28:19 +0000130#ifdef TFM_PARTITION_TEST_SST
131extern void tfm_sst_test_init(void);
132#endif /* TFM_PARTITION_TEST_SST */
133
Jamie Fox830ff762019-12-16 15:20:22 +0000134#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
135extern void tfm_secure_client_2_init(void);
136#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
137
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200138/**************************************************************************/
139/** Memory region declarations */
140/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800141#ifdef TFM_PSA_API
142REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Base);
143REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Limit);
144
Kevin Pengc73130f2019-10-22 17:27:18 +0800145#ifdef TFM_PARTITION_SECURE_STORAGE
Edison Aib2134e62019-10-11 18:24:47 +0800146REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Base);
147REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Limit);
148REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Base);
149REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Limit);
150REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base);
151REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit);
152REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base);
153REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit);
154REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base);
155REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit);
Kevin Pengc73130f2019-10-22 17:27:18 +0800156#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200157
Kevin Pengc73130f2019-10-22 17:27:18 +0800158#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Edison Aib2134e62019-10-11 18:24:47 +0800159REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Base);
160REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Limit);
161REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Base);
162REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Limit);
163REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Base);
164REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Limit);
165REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Base);
166REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit);
167REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Base);
168REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit);
Kevin Pengc73130f2019-10-22 17:27:18 +0800169#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100170
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200171#ifdef TFM_PARTITION_AUDIT_LOG
Edison Aib2134e62019-10-11 18:24:47 +0800172REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Base);
173REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Limit);
174REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base);
175REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit);
176REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base);
177REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit);
178REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base);
179REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit);
180REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base);
181REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200182#endif /* TFM_PARTITION_AUDIT_LOG */
183
Kevin Pengc73130f2019-10-22 17:27:18 +0800184#ifdef TFM_PARTITION_CRYPTO
Edison Aib2134e62019-10-11 18:24:47 +0800185REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Base);
186REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Limit);
187REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Base);
188REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Limit);
189REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base);
190REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit);
191REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base);
192REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit);
193REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base);
194REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit);
Kevin Pengc73130f2019-10-22 17:27:18 +0800195#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200196
197#ifdef TFM_PARTITION_PLATFORM
Edison Aib2134e62019-10-11 18:24:47 +0800198REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Base);
199REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Limit);
200REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Base);
201REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Limit);
202REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base);
203REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit);
204REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base);
205REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit);
206REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base);
207REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200208#endif /* TFM_PARTITION_PLATFORM */
209
Kevin Pengc73130f2019-10-22 17:27:18 +0800210#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Edison Aib2134e62019-10-11 18:24:47 +0800211REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base);
212REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit);
213REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base);
214REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit);
215REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base);
216REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit);
217REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base);
218REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit);
219REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base);
220REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit);
Kevin Pengc73130f2019-10-22 17:27:18 +0800221#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200222
223#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800224REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Base);
225REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Limit);
226REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Base);
227REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Limit);
228REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base);
229REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit);
230REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base);
231REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit);
232REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base);
233REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200234#endif /* TFM_PARTITION_TEST_CORE */
235
236#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800237REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Base);
238REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Limit);
239REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base);
240REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit);
241REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base);
242REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit);
243REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base);
244REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit);
245REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base);
246REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200247#endif /* TFM_PARTITION_TEST_CORE */
248
249#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Aib2134e62019-10-11 18:24:47 +0800250REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base);
251REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit);
252REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base);
253REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit);
254REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base);
255REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit);
256REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base);
257REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit);
258REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base);
259REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200260#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
261
262#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800263REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base);
264REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit);
265REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base);
266REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit);
267REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base);
268REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit);
269REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base);
270REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit);
271REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base);
272REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200273#endif /* TFM_PARTITION_TEST_CORE_IPC */
274
275#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800276REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base);
277REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit);
278REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base);
279REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit);
280REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base);
281REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit);
282REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base);
283REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit);
284REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base);
285REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200286#endif /* TFM_PARTITION_TEST_CORE_IPC */
287
David Hu33f2fd22019-08-16 15:32:39 +0800288#ifdef TFM_ENABLE_IRQ_TEST
Edison Aib2134e62019-10-11 18:24:47 +0800289REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Base);
290REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Limit);
291REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Base);
292REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Limit);
293REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base);
294REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit);
295REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base);
296REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit);
297REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base);
298REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit);
David Hu33f2fd22019-08-16 15:32:39 +0800299#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200300
Jamie Fox0e823a02019-10-28 17:28:19 +0000301#ifdef TFM_PARTITION_TEST_SST
302REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Base);
303REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Limit);
304REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Base);
305REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Limit);
306REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base);
307REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit);
308REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base);
309REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit);
310REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base);
311REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit);
312#endif /* TFM_PARTITION_TEST_SST */
313
Jamie Fox830ff762019-12-16 15:20:22 +0000314#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
315REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$Base);
316REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit);
317REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base);
318REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit);
319REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base);
320REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit);
321REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base);
322REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit);
323REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base);
324REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit);
325#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
326
Summer Qin423dbef2019-08-22 15:59:35 +0800327#endif /* defined(TFM_PSA_API) */
328
Edison Ai66fbdf12019-07-08 16:05:07 +0800329#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200330/**************************************************************************/
331/** Context stacks for IRQ handling */
332/**************************************************************************/
333/* The max size of the context stack can be calculated as a function of the IRQ
334 * count of the secure partition:
335 *
336 * max_stack_size = intr_ctx_size + (IRQ_CNT * (intr_ctx_size + hndl_ctx_size))
337 *
338 * where:
339 * intr_ctx: Frame pushed when the partition is interrupted
340 * hndl_ctx: Frame pushed when the partition is handling an interrupt
341 */
Summer Qin423dbef2019-08-22 15:59:35 +0800342static uint32_t ns_interrupt_ctx_stack[
343 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
344
345static uint32_t tfm_core_interrupt_ctx_stack[
346 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
347
Kevin Pengc73130f2019-10-22 17:27:18 +0800348#ifdef TFM_PARTITION_SECURE_STORAGE
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200349static uint32_t ctx_stack_TFM_SP_STORAGE[
350 (sizeof(struct interrupted_ctx_stack_frame_t) +
351 (TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT) * (
352 sizeof(struct interrupted_ctx_stack_frame_t) +
353 sizeof(struct handler_ctx_stack_frame_t)
354 )) / sizeof(uint32_t)];
Kevin Pengc73130f2019-10-22 17:27:18 +0800355#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200356
Kevin Pengc73130f2019-10-22 17:27:18 +0800357#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100358static uint32_t ctx_stack_TFM_SP_ITS[
359 (sizeof(struct interrupted_ctx_stack_frame_t) +
360 (TFM_PARTITION_TFM_SP_ITS_IRQ_COUNT) * (
361 sizeof(struct interrupted_ctx_stack_frame_t) +
362 sizeof(struct handler_ctx_stack_frame_t)
363 )) / sizeof(uint32_t)];
Kevin Pengc73130f2019-10-22 17:27:18 +0800364#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100365
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200366#ifdef TFM_PARTITION_AUDIT_LOG
367static uint32_t ctx_stack_TFM_SP_AUDIT_LOG[
368 (sizeof(struct interrupted_ctx_stack_frame_t) +
369 (TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT) * (
370 sizeof(struct interrupted_ctx_stack_frame_t) +
371 sizeof(struct handler_ctx_stack_frame_t)
372 )) / sizeof(uint32_t)];
373#endif /* TFM_PARTITION_AUDIT_LOG */
374
Kevin Pengc73130f2019-10-22 17:27:18 +0800375#ifdef TFM_PARTITION_CRYPTO
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200376static uint32_t ctx_stack_TFM_SP_CRYPTO[
377 (sizeof(struct interrupted_ctx_stack_frame_t) +
378 (TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT) * (
379 sizeof(struct interrupted_ctx_stack_frame_t) +
380 sizeof(struct handler_ctx_stack_frame_t)
381 )) / sizeof(uint32_t)];
Kevin Pengc73130f2019-10-22 17:27:18 +0800382#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200383
384#ifdef TFM_PARTITION_PLATFORM
385static uint32_t ctx_stack_TFM_SP_PLATFORM[
386 (sizeof(struct interrupted_ctx_stack_frame_t) +
387 (TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT) * (
388 sizeof(struct interrupted_ctx_stack_frame_t) +
389 sizeof(struct handler_ctx_stack_frame_t)
390 )) / sizeof(uint32_t)];
391#endif /* TFM_PARTITION_PLATFORM */
392
Kevin Pengc73130f2019-10-22 17:27:18 +0800393#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200394static uint32_t ctx_stack_TFM_SP_INITIAL_ATTESTATION[
395 (sizeof(struct interrupted_ctx_stack_frame_t) +
396 (TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT) * (
397 sizeof(struct interrupted_ctx_stack_frame_t) +
398 sizeof(struct handler_ctx_stack_frame_t)
399 )) / sizeof(uint32_t)];
Kevin Pengc73130f2019-10-22 17:27:18 +0800400#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200401
402#ifdef TFM_PARTITION_TEST_CORE
403static uint32_t ctx_stack_TFM_SP_CORE_TEST[
404 (sizeof(struct interrupted_ctx_stack_frame_t) +
405 (TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT) * (
406 sizeof(struct interrupted_ctx_stack_frame_t) +
407 sizeof(struct handler_ctx_stack_frame_t)
408 )) / sizeof(uint32_t)];
409#endif /* TFM_PARTITION_TEST_CORE */
410
411#ifdef TFM_PARTITION_TEST_CORE
412static uint32_t ctx_stack_TFM_SP_CORE_TEST_2[
413 (sizeof(struct interrupted_ctx_stack_frame_t) +
414 (TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT) * (
415 sizeof(struct interrupted_ctx_stack_frame_t) +
416 sizeof(struct handler_ctx_stack_frame_t)
417 )) / sizeof(uint32_t)];
418#endif /* TFM_PARTITION_TEST_CORE */
419
420#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
421static uint32_t ctx_stack_TFM_SP_SECURE_TEST_PARTITION[
422 (sizeof(struct interrupted_ctx_stack_frame_t) +
423 (TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT) * (
424 sizeof(struct interrupted_ctx_stack_frame_t) +
425 sizeof(struct handler_ctx_stack_frame_t)
426 )) / sizeof(uint32_t)];
427#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
428
429#ifdef TFM_PARTITION_TEST_CORE_IPC
430static uint32_t ctx_stack_TFM_SP_IPC_SERVICE_TEST[
431 (sizeof(struct interrupted_ctx_stack_frame_t) +
432 (TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT) * (
433 sizeof(struct interrupted_ctx_stack_frame_t) +
434 sizeof(struct handler_ctx_stack_frame_t)
435 )) / sizeof(uint32_t)];
436#endif /* TFM_PARTITION_TEST_CORE_IPC */
437
438#ifdef TFM_PARTITION_TEST_CORE_IPC
439static uint32_t ctx_stack_TFM_SP_IPC_CLIENT_TEST[
440 (sizeof(struct interrupted_ctx_stack_frame_t) +
441 (TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT) * (
442 sizeof(struct interrupted_ctx_stack_frame_t) +
443 sizeof(struct handler_ctx_stack_frame_t)
444 )) / sizeof(uint32_t)];
445#endif /* TFM_PARTITION_TEST_CORE_IPC */
446
David Hu33f2fd22019-08-16 15:32:39 +0800447#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200448static uint32_t ctx_stack_TFM_IRQ_TEST_1[
449 (sizeof(struct interrupted_ctx_stack_frame_t) +
450 (TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT) * (
451 sizeof(struct interrupted_ctx_stack_frame_t) +
452 sizeof(struct handler_ctx_stack_frame_t)
453 )) / sizeof(uint32_t)];
David Hu33f2fd22019-08-16 15:32:39 +0800454#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200455
Jamie Fox0e823a02019-10-28 17:28:19 +0000456#ifdef TFM_PARTITION_TEST_SST
457static uint32_t ctx_stack_TFM_SP_SST_TEST[
458 (sizeof(struct interrupted_ctx_stack_frame_t) +
459 (TFM_PARTITION_TFM_SP_SST_TEST_IRQ_COUNT) * (
460 sizeof(struct interrupted_ctx_stack_frame_t) +
461 sizeof(struct handler_ctx_stack_frame_t)
462 )) / sizeof(uint32_t)];
463#endif /* TFM_PARTITION_TEST_SST */
464
Jamie Fox830ff762019-12-16 15:20:22 +0000465#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
466static uint32_t ctx_stack_TFM_SP_SECURE_CLIENT_2[
467 (sizeof(struct interrupted_ctx_stack_frame_t) +
468 (TFM_PARTITION_TFM_SP_SECURE_CLIENT_2_IRQ_COUNT) * (
469 sizeof(struct interrupted_ctx_stack_frame_t) +
470 sizeof(struct handler_ctx_stack_frame_t)
471 )) / sizeof(uint32_t)];
472#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
473
Summer Qin423dbef2019-08-22 15:59:35 +0800474
475uint32_t *ctx_stack_list[] =
476{
477 ns_interrupt_ctx_stack,
478 tfm_core_interrupt_ctx_stack,
Kevin Pengc73130f2019-10-22 17:27:18 +0800479#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800480 ctx_stack_TFM_SP_STORAGE,
Kevin Pengc73130f2019-10-22 17:27:18 +0800481#endif /* TFM_PARTITION_SECURE_STORAGE */
482#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100483 ctx_stack_TFM_SP_ITS,
Kevin Pengc73130f2019-10-22 17:27:18 +0800484#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800485#ifdef TFM_PARTITION_AUDIT_LOG
486 ctx_stack_TFM_SP_AUDIT_LOG,
487#endif /* TFM_PARTITION_AUDIT_LOG */
Kevin Pengc73130f2019-10-22 17:27:18 +0800488#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800489 ctx_stack_TFM_SP_CRYPTO,
Kevin Pengc73130f2019-10-22 17:27:18 +0800490#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800491#ifdef TFM_PARTITION_PLATFORM
492 ctx_stack_TFM_SP_PLATFORM,
493#endif /* TFM_PARTITION_PLATFORM */
Kevin Pengc73130f2019-10-22 17:27:18 +0800494#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800495 ctx_stack_TFM_SP_INITIAL_ATTESTATION,
Kevin Pengc73130f2019-10-22 17:27:18 +0800496#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800497#ifdef TFM_PARTITION_TEST_CORE
498 ctx_stack_TFM_SP_CORE_TEST,
499#endif /* TFM_PARTITION_TEST_CORE */
500#ifdef TFM_PARTITION_TEST_CORE
501 ctx_stack_TFM_SP_CORE_TEST_2,
502#endif /* TFM_PARTITION_TEST_CORE */
503#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
504 ctx_stack_TFM_SP_SECURE_TEST_PARTITION,
505#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
506#ifdef TFM_PARTITION_TEST_CORE_IPC
507 ctx_stack_TFM_SP_IPC_SERVICE_TEST,
508#endif /* TFM_PARTITION_TEST_CORE_IPC */
509#ifdef TFM_PARTITION_TEST_CORE_IPC
510 ctx_stack_TFM_SP_IPC_CLIENT_TEST,
511#endif /* TFM_PARTITION_TEST_CORE_IPC */
512#ifdef TFM_ENABLE_IRQ_TEST
513 ctx_stack_TFM_IRQ_TEST_1,
514#endif /* TFM_ENABLE_IRQ_TEST */
Jamie Fox0e823a02019-10-28 17:28:19 +0000515#ifdef TFM_PARTITION_TEST_SST
516 ctx_stack_TFM_SP_SST_TEST,
517#endif /* TFM_PARTITION_TEST_SST */
Jamie Fox830ff762019-12-16 15:20:22 +0000518#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
519 ctx_stack_TFM_SP_SECURE_CLIENT_2,
520#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
Summer Qin423dbef2019-08-22 15:59:35 +0800521};
Edison Ai66fbdf12019-07-08 16:05:07 +0800522#endif /* !defined(TFM_PSA_API) */
523
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200524/**************************************************************************/
Edison Aie728fbf2019-11-13 09:37:12 +0800525/** Dependencies array for Secure Partition */
526/**************************************************************************/
Kevin Pengc73130f2019-10-22 17:27:18 +0800527#ifdef TFM_PARTITION_SECURE_STORAGE
Edison Aie728fbf2019-11-13 09:37:12 +0800528static int32_t dependencies_TFM_SP_STORAGE[] =
529{
530 TFM_CRYPTO_SID,
531};
Kevin Pengc73130f2019-10-22 17:27:18 +0800532#endif /* TFM_PARTITION_SECURE_STORAGE */
Edison Aie728fbf2019-11-13 09:37:12 +0800533
Kevin Pengc73130f2019-10-22 17:27:18 +0800534#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Edison Aie728fbf2019-11-13 09:37:12 +0800535static int32_t dependencies_TFM_SP_INITIAL_ATTESTATION[] =
536{
537 TFM_CRYPTO_SID,
538};
Kevin Pengc73130f2019-10-22 17:27:18 +0800539#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Edison Aie728fbf2019-11-13 09:37:12 +0800540
541#ifdef TFM_PARTITION_TEST_CORE
542static int32_t dependencies_TFM_SP_CORE_TEST[] =
543{
544 SPM_CORE_TEST_2_INVERT_SID,
545 SPM_CORE_TEST_2_GET_EVERY_SECOND_BYTE_SID,
546 SPM_CORE_TEST_2_SLAVE_SERVICE_SID,
547};
548#endif /* TFM_PARTITION_TEST_CORE */
549
550#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
551static int32_t dependencies_TFM_SP_SECURE_TEST_PARTITION[] =
552{
Jamie Fox830ff762019-12-16 15:20:22 +0000553 TFM_SECURE_CLIENT_2_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800554 TFM_CRYPTO_SID,
555 TFM_SST_SET_SID,
556 TFM_SST_GET_SID,
557 TFM_SST_GET_INFO_SID,
558 TFM_SST_REMOVE_SID,
559 TFM_SST_GET_SUPPORT_SID,
560 TFM_ITS_SET_SID,
561 TFM_ITS_GET_SID,
562 TFM_ITS_GET_INFO_SID,
563 TFM_ITS_REMOVE_SID,
564 TFM_ATTEST_GET_TOKEN_SID,
565 TFM_ATTEST_GET_TOKEN_SIZE_SID,
566 TFM_ATTEST_GET_PUBLIC_KEY_SID,
567 TFM_SST_TEST_PREPARE_SID,
Edison Aia765f232019-12-06 15:41:38 +0800568 TFM_SP_PLATFORM_SYSTEM_RESET_SID,
569 TFM_SP_PLATFORM_IOCTL_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800570};
571#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
572
573#ifdef TFM_PARTITION_TEST_CORE_IPC
574static int32_t dependencies_TFM_SP_IPC_CLIENT_TEST[] =
575{
576 IPC_SERVICE_TEST_PSA_ACCESS_APP_READ_ONLY_MEM_SID,
577 IPC_SERVICE_TEST_PSA_ACCESS_APP_MEM_SID,
578 IPC_SERVICE_TEST_BASIC_SID,
579 IPC_SERVICE_TEST_APP_ACCESS_PSA_MEM_SID,
580};
581#endif /* TFM_PARTITION_TEST_CORE_IPC */
582
583#ifdef TFM_PARTITION_TEST_SST
584static int32_t dependencies_TFM_SP_SST_TEST[] =
585{
586 TFM_CRYPTO_SID,
587};
588#endif /* TFM_PARTITION_TEST_SST */
589
Jamie Foxfafeff72019-12-12 17:17:24 +0000590#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
591static int32_t dependencies_TFM_SP_SECURE_CLIENT_2[] =
592{
593 TFM_ITS_GET_SID,
Jamie Foxc0b66852019-12-19 16:40:41 +0000594 TFM_CRYPTO_SID,
Jamie Foxfafeff72019-12-12 17:17:24 +0000595};
596#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
597
Edison Aie728fbf2019-11-13 09:37:12 +0800598/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800599/** The static data of the partition list */
600/**************************************************************************/
601const struct spm_partition_static_data_t static_data_list[] =
602{
603 {
Edison Aif0501702019-10-11 14:36:42 +0800604#ifdef TFM_PSA_API
605 .psa_framework_version = 0x0100,
606#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800607 .partition_id = TFM_SP_NON_SECURE_ID,
608#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800609#if TFM_MULTI_CORE_TOPOLOGY
610 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
611#else
Summer Qin423dbef2019-08-22 15:59:35 +0800612 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800613#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800614 .partition_priority = TFM_PRIORITY_LOW,
615 .partition_init = tfm_nspm_thread_entry,
616#else
617 .partition_flags = 0,
618#endif
619 },
620
621#ifndef TFM_PSA_API
622 {
623 .partition_id = TFM_SP_CORE_ID,
624 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
625 },
626#endif
627
Kevin Pengc73130f2019-10-22 17:27:18 +0800628#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800629 {
Edison Aif0501702019-10-11 14:36:42 +0800630#ifdef TFM_PSA_API
631 .psa_framework_version = 0x0100,
632#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800633 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800634 .partition_flags = SPM_PART_FLAG_IPC
635 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
636 ,
637 .partition_priority = TFM_PRIORITY(NORMAL),
638 .partition_init = tfm_sst_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800639 .dependencies_num = 1,
640 .p_dependencies = dependencies_TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800641 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800642#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800643
Kevin Pengc73130f2019-10-22 17:27:18 +0800644#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100645 {
Edison Aif0501702019-10-11 14:36:42 +0800646#ifdef TFM_PSA_API
647 .psa_framework_version = 0x0100,
648#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800649 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100650 .partition_flags = SPM_PART_FLAG_IPC
651 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
652 ,
653 .partition_priority = TFM_PRIORITY(NORMAL),
654 .partition_init = tfm_its_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800655 .dependencies_num = 0,
656 .p_dependencies = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +0100657 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800658#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100659
Summer Qin423dbef2019-08-22 15:59:35 +0800660#ifdef TFM_PARTITION_AUDIT_LOG
661 {
Edison Aif0501702019-10-11 14:36:42 +0800662#ifdef TFM_PSA_API
663 .psa_framework_version = 0x0100,
664#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800665 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800666 .partition_flags = 0
667 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
668 ,
669 .partition_priority = TFM_PRIORITY(NORMAL),
670 .partition_init = audit_core_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800671 .dependencies_num = 0,
672 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800673 },
674#endif /* TFM_PARTITION_AUDIT_LOG */
675
Kevin Pengc73130f2019-10-22 17:27:18 +0800676#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800677 {
Edison Aif0501702019-10-11 14:36:42 +0800678#ifdef TFM_PSA_API
679 .psa_framework_version = 0x0100,
680#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800681 .partition_id = TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800682 .partition_flags = SPM_PART_FLAG_IPC
683 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
684 ,
685 .partition_priority = TFM_PRIORITY(NORMAL),
686 .partition_init = tfm_crypto_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800687 .dependencies_num = 0,
688 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800689 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800690#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800691
692#ifdef TFM_PARTITION_PLATFORM
693 {
Edison Aif0501702019-10-11 14:36:42 +0800694#ifdef TFM_PSA_API
695 .psa_framework_version = 0x0100,
696#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800697 .partition_id = TFM_SP_PLATFORM,
Mate Toth-Pal179a1562019-11-08 11:40:27 +0100698 .partition_flags = SPM_PART_FLAG_IPC
Summer Qin423dbef2019-08-22 15:59:35 +0800699 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
700 ,
701 .partition_priority = TFM_PRIORITY(NORMAL),
702 .partition_init = platform_sp_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800703 .dependencies_num = 0,
704 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800705 },
706#endif /* TFM_PARTITION_PLATFORM */
707
Kevin Pengc73130f2019-10-22 17:27:18 +0800708#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800709 {
Edison Aif0501702019-10-11 14:36:42 +0800710#ifdef TFM_PSA_API
711 .psa_framework_version = 0x0100,
712#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800713 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800714 .partition_flags = SPM_PART_FLAG_IPC
715 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
716 ,
717 .partition_priority = TFM_PRIORITY(NORMAL),
718 .partition_init = attest_partition_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800719 .dependencies_num = 1,
720 .p_dependencies = dependencies_TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800721 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800722#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800723
724#ifdef TFM_PARTITION_TEST_CORE
725 {
Edison Aif0501702019-10-11 14:36:42 +0800726#ifdef TFM_PSA_API
727 .psa_framework_version = 0x0100,
728#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800729 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800730 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200731 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800732 ,
733 .partition_priority = TFM_PRIORITY(NORMAL),
734 .partition_init = core_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800735 .dependencies_num = 3,
736 .p_dependencies = dependencies_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800737 },
738#endif /* TFM_PARTITION_TEST_CORE */
739
740#ifdef TFM_PARTITION_TEST_CORE
741 {
Edison Aif0501702019-10-11 14:36:42 +0800742#ifdef TFM_PSA_API
743 .psa_framework_version = 0x0100,
744#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800745 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800746 .partition_flags = SPM_PART_FLAG_IPC
747 | SPM_PART_FLAG_APP_ROT
748 ,
749 .partition_priority = TFM_PRIORITY(NORMAL),
750 .partition_init = core_test_2_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800751 .dependencies_num = 0,
752 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800753 },
754#endif /* TFM_PARTITION_TEST_CORE */
755
756#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
757 {
Edison Aif0501702019-10-11 14:36:42 +0800758#ifdef TFM_PSA_API
759 .psa_framework_version = 0x0100,
760#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800761 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800762 .partition_flags = SPM_PART_FLAG_IPC
763 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
764 ,
765 .partition_priority = TFM_PRIORITY(NORMAL),
766 .partition_init = tfm_secure_client_service_init,
Jamie Fox830ff762019-12-16 15:20:22 +0000767 .dependencies_num = 17,
Edison Aie728fbf2019-11-13 09:37:12 +0800768 .p_dependencies = dependencies_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800769 },
770#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
771
772#ifdef TFM_PARTITION_TEST_CORE_IPC
773 {
Edison Aif0501702019-10-11 14:36:42 +0800774#ifdef TFM_PSA_API
775 .psa_framework_version = 0x0100,
776#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800777 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800778 .partition_flags = SPM_PART_FLAG_IPC
779 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
780 ,
781 .partition_priority = TFM_PRIORITY(HIGH),
782 .partition_init = ipc_service_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800783 .dependencies_num = 0,
784 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800785 },
786#endif /* TFM_PARTITION_TEST_CORE_IPC */
787
788#ifdef TFM_PARTITION_TEST_CORE_IPC
789 {
Edison Aif0501702019-10-11 14:36:42 +0800790#ifdef TFM_PSA_API
791 .psa_framework_version = 0x0100,
792#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800793 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800794 .partition_flags = SPM_PART_FLAG_IPC
795 | SPM_PART_FLAG_APP_ROT
796 ,
797 .partition_priority = TFM_PRIORITY(NORMAL),
798 .partition_init = ipc_client_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800799 .dependencies_num = 4,
800 .p_dependencies = dependencies_TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800801 },
802#endif /* TFM_PARTITION_TEST_CORE_IPC */
803
804#ifdef TFM_ENABLE_IRQ_TEST
805 {
Edison Aif0501702019-10-11 14:36:42 +0800806#ifdef TFM_PSA_API
807 .psa_framework_version = 0x0100,
808#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800809 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800810 .partition_flags = SPM_PART_FLAG_IPC
811 | SPM_PART_FLAG_APP_ROT
812 ,
813 .partition_priority = TFM_PRIORITY(NORMAL),
814 .partition_init = tfm_irq_test_1_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800815 .dependencies_num = 0,
816 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800817 },
818#endif /* TFM_ENABLE_IRQ_TEST */
819
Jamie Fox0e823a02019-10-28 17:28:19 +0000820#ifdef TFM_PARTITION_TEST_SST
821 {
822#ifdef TFM_PSA_API
823 .psa_framework_version = 0x0100,
824#endif /* defined(TFM_PSA_API) */
825 .partition_id = TFM_SP_SST_TEST,
826 .partition_flags = SPM_PART_FLAG_IPC
827 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
828 ,
829 .partition_priority = TFM_PRIORITY(NORMAL),
830 .partition_init = tfm_sst_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800831 .dependencies_num = 1,
832 .p_dependencies = dependencies_TFM_SP_SST_TEST,
Jamie Fox0e823a02019-10-28 17:28:19 +0000833 },
834#endif /* TFM_PARTITION_TEST_SST */
835
Jamie Fox830ff762019-12-16 15:20:22 +0000836#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
837 {
838#ifdef TFM_PSA_API
839 .psa_framework_version = 0x0100,
840#endif /* defined(TFM_PSA_API) */
841 .partition_id = TFM_SP_SECURE_CLIENT_2,
842 .partition_flags = SPM_PART_FLAG_IPC
843 | SPM_PART_FLAG_APP_ROT
844 ,
845 .partition_priority = TFM_PRIORITY(NORMAL),
846 .partition_init = tfm_secure_client_2_init,
Jamie Foxc0b66852019-12-19 16:40:41 +0000847 .dependencies_num = 2,
Jamie Foxfafeff72019-12-12 17:17:24 +0000848 .p_dependencies = dependencies_TFM_SP_SECURE_CLIENT_2,
Jamie Fox830ff762019-12-16 15:20:22 +0000849 },
850#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
851
Summer Qin423dbef2019-08-22 15:59:35 +0800852};
853
854/**************************************************************************/
855/** The platform data of the partition list */
856/**************************************************************************/
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100857#ifdef TFM_PARTITION_AUDIT_LOG
858const struct tfm_spm_partition_platform_data_t *
859 platform_data_list_TFM_SP_AUDIT_LOG[] =
860{
861#ifdef AUDIT_UART_REDIRECTION
862 TFM_PERIPHERAL_UART1,
863#endif /* AUDIT_UART_REDIRECTION */
864 NULL
865};
866#endif /* TFM_PARTITION_AUDIT_LOG */
867
868#ifdef TFM_PARTITION_TEST_CORE
869const struct tfm_spm_partition_platform_data_t *
870 platform_data_list_TFM_SP_CORE_TEST[] =
871{
872 TFM_PERIPHERAL_FPGA_IO,
873 NULL
874};
875#endif /* TFM_PARTITION_TEST_CORE */
876
877#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
878const struct tfm_spm_partition_platform_data_t *
879 platform_data_list_TFM_SP_SECURE_TEST_PARTITION[] =
880{
881 TFM_PERIPHERAL_STD_UART,
882 NULL
883};
884#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
885
886#ifdef TFM_ENABLE_IRQ_TEST
887const struct tfm_spm_partition_platform_data_t *
888 platform_data_list_TFM_IRQ_TEST_1[] =
889{
890 TFM_PERIPHERAL_TIMER0,
891 NULL
892};
893#endif /* TFM_ENABLE_IRQ_TEST */
894
895const struct tfm_spm_partition_platform_data_t **platform_data_list_list[] =
Summer Qin423dbef2019-08-22 15:59:35 +0800896{
897 NULL,
898
899#ifndef TFM_PSA_API
900 NULL,
901#endif
902
Kevin Pengc73130f2019-10-22 17:27:18 +0800903#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800904 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800905#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800906
Kevin Pengc73130f2019-10-22 17:27:18 +0800907#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100908 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800909#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100910
Summer Qin423dbef2019-08-22 15:59:35 +0800911#ifdef TFM_PARTITION_AUDIT_LOG
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100912 platform_data_list_TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800913#endif /* TFM_PARTITION_AUDIT_LOG */
914
Kevin Pengc73130f2019-10-22 17:27:18 +0800915#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800916 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800917#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800918
919#ifdef TFM_PARTITION_PLATFORM
920 NULL,
921#endif /* TFM_PARTITION_PLATFORM */
922
Kevin Pengc73130f2019-10-22 17:27:18 +0800923#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800924 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800925#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800926
927#ifdef TFM_PARTITION_TEST_CORE
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100928 platform_data_list_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800929#endif /* TFM_PARTITION_TEST_CORE */
930
931#ifdef TFM_PARTITION_TEST_CORE
932 NULL,
933#endif /* TFM_PARTITION_TEST_CORE */
934
935#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100936 platform_data_list_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800937#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
938
939#ifdef TFM_PARTITION_TEST_CORE_IPC
940 NULL,
941#endif /* TFM_PARTITION_TEST_CORE_IPC */
942
943#ifdef TFM_PARTITION_TEST_CORE_IPC
944 NULL,
945#endif /* TFM_PARTITION_TEST_CORE_IPC */
946
947#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100948 platform_data_list_TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800949#endif /* TFM_ENABLE_IRQ_TEST */
950
Jamie Fox0e823a02019-10-28 17:28:19 +0000951#ifdef TFM_PARTITION_TEST_SST
952 NULL,
953#endif /* TFM_PARTITION_TEST_SST */
954
Jamie Fox830ff762019-12-16 15:20:22 +0000955#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
956 NULL,
957#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
958
Summer Qin423dbef2019-08-22 15:59:35 +0800959};
960
961/**************************************************************************/
962/** The memory data of the partition list */
963/**************************************************************************/
964#ifdef TFM_PSA_API
965const struct tfm_spm_partition_memory_data_t memory_data_list[] =
966{
967 {
968 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
969 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
970 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
971 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800972#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800973 {
Edison Aib2134e62019-10-11 18:24:47 +0800974 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
975 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
976 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
977 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
978 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
979 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
980 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
981 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
982 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
983 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800984 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800985#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800986
Kevin Pengc73130f2019-10-22 17:27:18 +0800987#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100988 {
Edison Aib2134e62019-10-11 18:24:47 +0800989 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
990 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
991 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
992 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
993 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
994 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
995 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
996 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
997 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
998 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +0100999 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001000#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001001
Summer Qin423dbef2019-08-22 15:59:35 +08001002#ifdef TFM_PARTITION_AUDIT_LOG
1003 {
Edison Aib2134e62019-10-11 18:24:47 +08001004 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
1005 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
1006 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
1007 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
1008 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
1009 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
1010 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
1011 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
1012 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
1013 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001014 },
1015#endif /* TFM_PARTITION_AUDIT_LOG */
1016
Kevin Pengc73130f2019-10-22 17:27:18 +08001017#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +08001018 {
Edison Aib2134e62019-10-11 18:24:47 +08001019 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
1020 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
1021 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
1022 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
1023 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
1024 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
1025 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
1026 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
1027 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
1028 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001029 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001030#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +08001031
1032#ifdef TFM_PARTITION_PLATFORM
1033 {
Edison Aib2134e62019-10-11 18:24:47 +08001034 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
1035 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
1036 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
1037 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
1038 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
1039 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
1040 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
1041 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
1042 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
1043 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001044 },
1045#endif /* TFM_PARTITION_PLATFORM */
1046
Kevin Pengc73130f2019-10-22 17:27:18 +08001047#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +08001048 {
Edison Aib2134e62019-10-11 18:24:47 +08001049 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
1050 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
1051 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
1052 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
1053 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
1054 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
1055 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
1056 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
1057 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
1058 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001059 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001060#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +08001061
1062#ifdef TFM_PARTITION_TEST_CORE
1063 {
Edison Aib2134e62019-10-11 18:24:47 +08001064 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
1065 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
1066 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
1067 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
1068 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
1069 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1070 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1071 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1072 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1073 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001074 },
1075#endif /* TFM_PARTITION_TEST_CORE */
1076
1077#ifdef TFM_PARTITION_TEST_CORE
1078 {
Edison Aib2134e62019-10-11 18:24:47 +08001079 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
1080 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
1081 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
1082 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
1083 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
1084 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
1085 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
1086 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
1087 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
1088 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001089 },
1090#endif /* TFM_PARTITION_TEST_CORE */
1091
1092#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1093 {
Edison Aib2134e62019-10-11 18:24:47 +08001094 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
1095 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
1096 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
1097 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
1098 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
1099 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
1100 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
1101 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
1102 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
1103 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001104 },
1105#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1106
1107#ifdef TFM_PARTITION_TEST_CORE_IPC
1108 {
Edison Aib2134e62019-10-11 18:24:47 +08001109 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
1110 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
1111 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
1112 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
1113 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
1114 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
1115 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
1116 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
1117 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
1118 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001119 },
1120#endif /* TFM_PARTITION_TEST_CORE_IPC */
1121
1122#ifdef TFM_PARTITION_TEST_CORE_IPC
1123 {
Edison Aib2134e62019-10-11 18:24:47 +08001124 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
1125 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
1126 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
1127 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
1128 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
1129 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
1130 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
1131 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
1132 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
1133 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001134 },
1135#endif /* TFM_PARTITION_TEST_CORE_IPC */
1136
1137#ifdef TFM_ENABLE_IRQ_TEST
1138 {
Edison Aib2134e62019-10-11 18:24:47 +08001139 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
1140 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
1141 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
1142 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
1143 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
1144 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
1145 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
1146 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
1147 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
1148 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001149 },
1150#endif /* TFM_ENABLE_IRQ_TEST */
1151
Jamie Fox0e823a02019-10-28 17:28:19 +00001152#ifdef TFM_PARTITION_TEST_SST
1153 {
1154 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
1155 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
1156 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
1157 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
1158 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
1159 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
1160 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
1161 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
1162 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
1163 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
1164 },
1165#endif /* TFM_PARTITION_TEST_SST */
1166
Jamie Fox830ff762019-12-16 15:20:22 +00001167#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1168 {
1169 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Base),
1170 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit),
1171 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base),
1172 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit),
1173 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base),
1174 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit),
1175 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base),
1176 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit),
1177 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base),
1178 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit),
1179 },
1180#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1181
Summer Qin423dbef2019-08-22 15:59:35 +08001182};
1183#endif /* defined(TFM_PSA_API) */
1184
1185/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001186/** The partition list for the DB */
1187/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +08001188static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001189{
Summer Qin423dbef2019-08-22 15:59:35 +08001190 {{}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001191#ifndef TFM_PSA_API
Summer Qin423dbef2019-08-22 15:59:35 +08001192 {{}}, /* placeholder for TF-M Core internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001193#endif /* !ifndefined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001194
1195 /* -----------------------------------------------------------------------*/
1196 /* - Partition DB record for TFM_SP_STORAGE */
1197 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001198#ifdef TFM_PARTITION_SECURE_STORAGE
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001199 {
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 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001205#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001206
1207 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +01001208 /* - Partition DB record for TFM_SP_ITS */
1209 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001210#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +01001211 {
1212 /* Runtime data */
1213 .runtime_data = {},
1214 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001215 .platform_data_list = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +01001216 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001217#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001218
1219 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001220 /* - Partition DB record for TFM_SP_AUDIT_LOG */
1221 /* -----------------------------------------------------------------------*/
1222#ifdef TFM_PARTITION_AUDIT_LOG
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_AUDIT_LOG */
1230
1231 /* -----------------------------------------------------------------------*/
1232 /* - Partition DB record for TFM_SP_CRYPTO */
1233 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001234#ifdef TFM_PARTITION_CRYPTO
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001235 {
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 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001241#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001242
1243 /* -----------------------------------------------------------------------*/
1244 /* - Partition DB record for TFM_SP_PLATFORM */
1245 /* -----------------------------------------------------------------------*/
1246#ifdef TFM_PARTITION_PLATFORM
1247 {
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 },
1253#endif /* TFM_PARTITION_PLATFORM */
1254
1255 /* -----------------------------------------------------------------------*/
1256 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
1257 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001258#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001259 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001260 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001261 .runtime_data = {},
1262 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001263 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001264 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001265#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001266
1267 /* -----------------------------------------------------------------------*/
1268 /* - Partition DB record for TFM_SP_CORE_TEST */
1269 /* -----------------------------------------------------------------------*/
1270#ifdef TFM_PARTITION_TEST_CORE
1271 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001272 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001273 .runtime_data = {},
1274 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001275 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001276 },
1277#endif /* TFM_PARTITION_TEST_CORE */
1278
1279 /* -----------------------------------------------------------------------*/
1280 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1281 /* -----------------------------------------------------------------------*/
1282#ifdef TFM_PARTITION_TEST_CORE
1283 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001284 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001285 .runtime_data = {},
1286 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001287 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001288 },
1289#endif /* TFM_PARTITION_TEST_CORE */
1290
1291 /* -----------------------------------------------------------------------*/
1292 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1293 /* -----------------------------------------------------------------------*/
1294#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1295 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001296 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001297 .runtime_data = {},
1298 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001299 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001300 },
1301#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1302
1303 /* -----------------------------------------------------------------------*/
1304 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1305 /* -----------------------------------------------------------------------*/
1306#ifdef TFM_PARTITION_TEST_CORE_IPC
1307 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001308 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001309 .runtime_data = {},
1310 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001311 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001312 },
1313#endif /* TFM_PARTITION_TEST_CORE_IPC */
1314
1315 /* -----------------------------------------------------------------------*/
1316 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1317 /* -----------------------------------------------------------------------*/
1318#ifdef TFM_PARTITION_TEST_CORE_IPC
1319 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001320 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001321 .runtime_data = {},
1322 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001323 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001324 },
1325#endif /* TFM_PARTITION_TEST_CORE_IPC */
1326
1327 /* -----------------------------------------------------------------------*/
1328 /* - Partition DB record for TFM_IRQ_TEST_1 */
1329 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001330#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001331 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001332 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001333 .runtime_data = {},
1334 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001335 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001336 },
David Hu33f2fd22019-08-16 15:32:39 +08001337#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001338
Jamie Fox0e823a02019-10-28 17:28:19 +00001339 /* -----------------------------------------------------------------------*/
1340 /* - Partition DB record for TFM_SP_SST_TEST */
1341 /* -----------------------------------------------------------------------*/
1342#ifdef TFM_PARTITION_TEST_SST
1343 {
1344 /* Runtime data */
1345 .runtime_data = {},
1346 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001347 .platform_data_list = NULL,
Jamie Fox0e823a02019-10-28 17:28:19 +00001348 },
1349#endif /* TFM_PARTITION_TEST_SST */
1350
Jamie Fox830ff762019-12-16 15:20:22 +00001351 /* -----------------------------------------------------------------------*/
1352 /* - Partition DB record for TFM_SP_SECURE_CLIENT_2 */
1353 /* -----------------------------------------------------------------------*/
1354#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1355 {
1356 /* Runtime data */
1357 .runtime_data = {},
1358 .static_data = NULL,
1359 .platform_data_list = NULL,
1360 },
1361#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1362
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001363};
1364
1365struct spm_partition_db_t g_spm_partition_db = {
1366 .is_init = 0,
1367 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001368#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001369 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001370#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001371 .partitions = partition_list,
1372};
1373
1374#endif /* __TFM_SPM_DB_INC__ */