blob: 2fbdd90fc4c387b1dbcbc57936df396b288ad93d [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,
594};
595#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
596
Edison Aie728fbf2019-11-13 09:37:12 +0800597/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800598/** The static data of the partition list */
599/**************************************************************************/
600const struct spm_partition_static_data_t static_data_list[] =
601{
602 {
Edison Aif0501702019-10-11 14:36:42 +0800603#ifdef TFM_PSA_API
604 .psa_framework_version = 0x0100,
605#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800606 .partition_id = TFM_SP_NON_SECURE_ID,
607#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800608#if TFM_MULTI_CORE_TOPOLOGY
609 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
610#else
Summer Qin423dbef2019-08-22 15:59:35 +0800611 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800612#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800613 .partition_priority = TFM_PRIORITY_LOW,
614 .partition_init = tfm_nspm_thread_entry,
615#else
616 .partition_flags = 0,
617#endif
618 },
619
620#ifndef TFM_PSA_API
621 {
622 .partition_id = TFM_SP_CORE_ID,
623 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
624 },
625#endif
626
Kevin Pengc73130f2019-10-22 17:27:18 +0800627#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800628 {
Edison Aif0501702019-10-11 14:36:42 +0800629#ifdef TFM_PSA_API
630 .psa_framework_version = 0x0100,
631#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800632 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800633 .partition_flags = SPM_PART_FLAG_IPC
634 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
635 ,
636 .partition_priority = TFM_PRIORITY(NORMAL),
637 .partition_init = tfm_sst_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800638 .dependencies_num = 1,
639 .p_dependencies = dependencies_TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800640 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800641#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800642
Kevin Pengc73130f2019-10-22 17:27:18 +0800643#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100644 {
Edison Aif0501702019-10-11 14:36:42 +0800645#ifdef TFM_PSA_API
646 .psa_framework_version = 0x0100,
647#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800648 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100649 .partition_flags = SPM_PART_FLAG_IPC
650 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
651 ,
652 .partition_priority = TFM_PRIORITY(NORMAL),
653 .partition_init = tfm_its_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800654 .dependencies_num = 0,
655 .p_dependencies = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +0100656 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800657#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100658
Summer Qin423dbef2019-08-22 15:59:35 +0800659#ifdef TFM_PARTITION_AUDIT_LOG
660 {
Edison Aif0501702019-10-11 14:36:42 +0800661#ifdef TFM_PSA_API
662 .psa_framework_version = 0x0100,
663#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800664 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800665 .partition_flags = 0
666 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
667 ,
668 .partition_priority = TFM_PRIORITY(NORMAL),
669 .partition_init = audit_core_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800670 .dependencies_num = 0,
671 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800672 },
673#endif /* TFM_PARTITION_AUDIT_LOG */
674
Kevin Pengc73130f2019-10-22 17:27:18 +0800675#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800676 {
Edison Aif0501702019-10-11 14:36:42 +0800677#ifdef TFM_PSA_API
678 .psa_framework_version = 0x0100,
679#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800680 .partition_id = TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800681 .partition_flags = SPM_PART_FLAG_IPC
682 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
683 ,
684 .partition_priority = TFM_PRIORITY(NORMAL),
685 .partition_init = tfm_crypto_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800686 .dependencies_num = 0,
687 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800688 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800689#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800690
691#ifdef TFM_PARTITION_PLATFORM
692 {
Edison Aif0501702019-10-11 14:36:42 +0800693#ifdef TFM_PSA_API
694 .psa_framework_version = 0x0100,
695#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800696 .partition_id = TFM_SP_PLATFORM,
Mate Toth-Pal179a1562019-11-08 11:40:27 +0100697 .partition_flags = SPM_PART_FLAG_IPC
Summer Qin423dbef2019-08-22 15:59:35 +0800698 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
699 ,
700 .partition_priority = TFM_PRIORITY(NORMAL),
701 .partition_init = platform_sp_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800702 .dependencies_num = 0,
703 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800704 },
705#endif /* TFM_PARTITION_PLATFORM */
706
Kevin Pengc73130f2019-10-22 17:27:18 +0800707#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800708 {
Edison Aif0501702019-10-11 14:36:42 +0800709#ifdef TFM_PSA_API
710 .psa_framework_version = 0x0100,
711#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800712 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800713 .partition_flags = SPM_PART_FLAG_IPC
714 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
715 ,
716 .partition_priority = TFM_PRIORITY(NORMAL),
717 .partition_init = attest_partition_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800718 .dependencies_num = 1,
719 .p_dependencies = dependencies_TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800720 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800721#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800722
723#ifdef TFM_PARTITION_TEST_CORE
724 {
Edison Aif0501702019-10-11 14:36:42 +0800725#ifdef TFM_PSA_API
726 .psa_framework_version = 0x0100,
727#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800728 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800729 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200730 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800731 ,
732 .partition_priority = TFM_PRIORITY(NORMAL),
733 .partition_init = core_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800734 .dependencies_num = 3,
735 .p_dependencies = dependencies_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800736 },
737#endif /* TFM_PARTITION_TEST_CORE */
738
739#ifdef TFM_PARTITION_TEST_CORE
740 {
Edison Aif0501702019-10-11 14:36:42 +0800741#ifdef TFM_PSA_API
742 .psa_framework_version = 0x0100,
743#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800744 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800745 .partition_flags = SPM_PART_FLAG_IPC
746 | SPM_PART_FLAG_APP_ROT
747 ,
748 .partition_priority = TFM_PRIORITY(NORMAL),
749 .partition_init = core_test_2_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800750 .dependencies_num = 0,
751 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800752 },
753#endif /* TFM_PARTITION_TEST_CORE */
754
755#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
756 {
Edison Aif0501702019-10-11 14:36:42 +0800757#ifdef TFM_PSA_API
758 .psa_framework_version = 0x0100,
759#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800760 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800761 .partition_flags = SPM_PART_FLAG_IPC
762 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
763 ,
764 .partition_priority = TFM_PRIORITY(NORMAL),
765 .partition_init = tfm_secure_client_service_init,
Jamie Fox830ff762019-12-16 15:20:22 +0000766 .dependencies_num = 17,
Edison Aie728fbf2019-11-13 09:37:12 +0800767 .p_dependencies = dependencies_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800768 },
769#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
770
771#ifdef TFM_PARTITION_TEST_CORE_IPC
772 {
Edison Aif0501702019-10-11 14:36:42 +0800773#ifdef TFM_PSA_API
774 .psa_framework_version = 0x0100,
775#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800776 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800777 .partition_flags = SPM_PART_FLAG_IPC
778 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
779 ,
780 .partition_priority = TFM_PRIORITY(HIGH),
781 .partition_init = ipc_service_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800782 .dependencies_num = 0,
783 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800784 },
785#endif /* TFM_PARTITION_TEST_CORE_IPC */
786
787#ifdef TFM_PARTITION_TEST_CORE_IPC
788 {
Edison Aif0501702019-10-11 14:36:42 +0800789#ifdef TFM_PSA_API
790 .psa_framework_version = 0x0100,
791#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800792 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800793 .partition_flags = SPM_PART_FLAG_IPC
794 | SPM_PART_FLAG_APP_ROT
795 ,
796 .partition_priority = TFM_PRIORITY(NORMAL),
797 .partition_init = ipc_client_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800798 .dependencies_num = 4,
799 .p_dependencies = dependencies_TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800800 },
801#endif /* TFM_PARTITION_TEST_CORE_IPC */
802
803#ifdef TFM_ENABLE_IRQ_TEST
804 {
Edison Aif0501702019-10-11 14:36:42 +0800805#ifdef TFM_PSA_API
806 .psa_framework_version = 0x0100,
807#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800808 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800809 .partition_flags = SPM_PART_FLAG_IPC
810 | SPM_PART_FLAG_APP_ROT
811 ,
812 .partition_priority = TFM_PRIORITY(NORMAL),
813 .partition_init = tfm_irq_test_1_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800814 .dependencies_num = 0,
815 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800816 },
817#endif /* TFM_ENABLE_IRQ_TEST */
818
Jamie Fox0e823a02019-10-28 17:28:19 +0000819#ifdef TFM_PARTITION_TEST_SST
820 {
821#ifdef TFM_PSA_API
822 .psa_framework_version = 0x0100,
823#endif /* defined(TFM_PSA_API) */
824 .partition_id = TFM_SP_SST_TEST,
825 .partition_flags = SPM_PART_FLAG_IPC
826 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
827 ,
828 .partition_priority = TFM_PRIORITY(NORMAL),
829 .partition_init = tfm_sst_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800830 .dependencies_num = 1,
831 .p_dependencies = dependencies_TFM_SP_SST_TEST,
Jamie Fox0e823a02019-10-28 17:28:19 +0000832 },
833#endif /* TFM_PARTITION_TEST_SST */
834
Jamie Fox830ff762019-12-16 15:20:22 +0000835#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
836 {
837#ifdef TFM_PSA_API
838 .psa_framework_version = 0x0100,
839#endif /* defined(TFM_PSA_API) */
840 .partition_id = TFM_SP_SECURE_CLIENT_2,
841 .partition_flags = SPM_PART_FLAG_IPC
842 | SPM_PART_FLAG_APP_ROT
843 ,
844 .partition_priority = TFM_PRIORITY(NORMAL),
845 .partition_init = tfm_secure_client_2_init,
Jamie Foxfafeff72019-12-12 17:17:24 +0000846 .dependencies_num = 1,
847 .p_dependencies = dependencies_TFM_SP_SECURE_CLIENT_2,
Jamie Fox830ff762019-12-16 15:20:22 +0000848 },
849#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
850
Summer Qin423dbef2019-08-22 15:59:35 +0800851};
852
853/**************************************************************************/
854/** The platform data of the partition list */
855/**************************************************************************/
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100856#ifdef TFM_PARTITION_AUDIT_LOG
857const struct tfm_spm_partition_platform_data_t *
858 platform_data_list_TFM_SP_AUDIT_LOG[] =
859{
860#ifdef AUDIT_UART_REDIRECTION
861 TFM_PERIPHERAL_UART1,
862#endif /* AUDIT_UART_REDIRECTION */
863 NULL
864};
865#endif /* TFM_PARTITION_AUDIT_LOG */
866
867#ifdef TFM_PARTITION_TEST_CORE
868const struct tfm_spm_partition_platform_data_t *
869 platform_data_list_TFM_SP_CORE_TEST[] =
870{
871 TFM_PERIPHERAL_FPGA_IO,
872 NULL
873};
874#endif /* TFM_PARTITION_TEST_CORE */
875
876#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
877const struct tfm_spm_partition_platform_data_t *
878 platform_data_list_TFM_SP_SECURE_TEST_PARTITION[] =
879{
880 TFM_PERIPHERAL_STD_UART,
881 NULL
882};
883#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
884
885#ifdef TFM_ENABLE_IRQ_TEST
886const struct tfm_spm_partition_platform_data_t *
887 platform_data_list_TFM_IRQ_TEST_1[] =
888{
889 TFM_PERIPHERAL_TIMER0,
890 NULL
891};
892#endif /* TFM_ENABLE_IRQ_TEST */
893
894const struct tfm_spm_partition_platform_data_t **platform_data_list_list[] =
Summer Qin423dbef2019-08-22 15:59:35 +0800895{
896 NULL,
897
898#ifndef TFM_PSA_API
899 NULL,
900#endif
901
Kevin Pengc73130f2019-10-22 17:27:18 +0800902#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800903 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800904#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800905
Kevin Pengc73130f2019-10-22 17:27:18 +0800906#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100907 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800908#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100909
Summer Qin423dbef2019-08-22 15:59:35 +0800910#ifdef TFM_PARTITION_AUDIT_LOG
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100911 platform_data_list_TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800912#endif /* TFM_PARTITION_AUDIT_LOG */
913
Kevin Pengc73130f2019-10-22 17:27:18 +0800914#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800915 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800916#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800917
918#ifdef TFM_PARTITION_PLATFORM
919 NULL,
920#endif /* TFM_PARTITION_PLATFORM */
921
Kevin Pengc73130f2019-10-22 17:27:18 +0800922#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800923 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800924#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800925
926#ifdef TFM_PARTITION_TEST_CORE
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100927 platform_data_list_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800928#endif /* TFM_PARTITION_TEST_CORE */
929
930#ifdef TFM_PARTITION_TEST_CORE
931 NULL,
932#endif /* TFM_PARTITION_TEST_CORE */
933
934#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100935 platform_data_list_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800936#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
937
938#ifdef TFM_PARTITION_TEST_CORE_IPC
939 NULL,
940#endif /* TFM_PARTITION_TEST_CORE_IPC */
941
942#ifdef TFM_PARTITION_TEST_CORE_IPC
943 NULL,
944#endif /* TFM_PARTITION_TEST_CORE_IPC */
945
946#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100947 platform_data_list_TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800948#endif /* TFM_ENABLE_IRQ_TEST */
949
Jamie Fox0e823a02019-10-28 17:28:19 +0000950#ifdef TFM_PARTITION_TEST_SST
951 NULL,
952#endif /* TFM_PARTITION_TEST_SST */
953
Jamie Fox830ff762019-12-16 15:20:22 +0000954#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
955 NULL,
956#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
957
Summer Qin423dbef2019-08-22 15:59:35 +0800958};
959
960/**************************************************************************/
961/** The memory data of the partition list */
962/**************************************************************************/
963#ifdef TFM_PSA_API
964const struct tfm_spm_partition_memory_data_t memory_data_list[] =
965{
966 {
967 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
968 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
969 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
970 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800971#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800972 {
Edison Aib2134e62019-10-11 18:24:47 +0800973 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
974 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
975 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
976 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
977 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
978 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
979 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
980 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
981 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
982 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800983 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800984#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800985
Kevin Pengc73130f2019-10-22 17:27:18 +0800986#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100987 {
Edison Aib2134e62019-10-11 18:24:47 +0800988 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
989 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
990 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
991 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
992 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
993 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
994 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
995 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
996 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
997 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +0100998 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800999#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001000
Summer Qin423dbef2019-08-22 15:59:35 +08001001#ifdef TFM_PARTITION_AUDIT_LOG
1002 {
Edison Aib2134e62019-10-11 18:24:47 +08001003 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
1004 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
1005 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
1006 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
1007 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
1008 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
1009 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
1010 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
1011 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
1012 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001013 },
1014#endif /* TFM_PARTITION_AUDIT_LOG */
1015
Kevin Pengc73130f2019-10-22 17:27:18 +08001016#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +08001017 {
Edison Aib2134e62019-10-11 18:24:47 +08001018 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
1019 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
1020 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
1021 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
1022 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
1023 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
1024 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
1025 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
1026 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
1027 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001028 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001029#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +08001030
1031#ifdef TFM_PARTITION_PLATFORM
1032 {
Edison Aib2134e62019-10-11 18:24:47 +08001033 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
1034 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
1035 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
1036 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
1037 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
1038 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
1039 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
1040 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
1041 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
1042 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001043 },
1044#endif /* TFM_PARTITION_PLATFORM */
1045
Kevin Pengc73130f2019-10-22 17:27:18 +08001046#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +08001047 {
Edison Aib2134e62019-10-11 18:24:47 +08001048 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
1049 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
1050 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
1051 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
1052 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
1053 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
1054 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
1055 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
1056 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
1057 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001058 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001059#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +08001060
1061#ifdef TFM_PARTITION_TEST_CORE
1062 {
Edison Aib2134e62019-10-11 18:24:47 +08001063 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
1064 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
1065 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
1066 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
1067 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
1068 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1069 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1070 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1071 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1072 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001073 },
1074#endif /* TFM_PARTITION_TEST_CORE */
1075
1076#ifdef TFM_PARTITION_TEST_CORE
1077 {
Edison Aib2134e62019-10-11 18:24:47 +08001078 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
1079 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
1080 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
1081 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
1082 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
1083 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
1084 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
1085 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
1086 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
1087 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001088 },
1089#endif /* TFM_PARTITION_TEST_CORE */
1090
1091#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1092 {
Edison Aib2134e62019-10-11 18:24:47 +08001093 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
1094 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
1095 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
1096 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
1097 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
1098 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
1099 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
1100 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
1101 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
1102 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001103 },
1104#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1105
1106#ifdef TFM_PARTITION_TEST_CORE_IPC
1107 {
Edison Aib2134e62019-10-11 18:24:47 +08001108 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
1109 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
1110 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
1111 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
1112 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
1113 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
1114 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
1115 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
1116 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
1117 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001118 },
1119#endif /* TFM_PARTITION_TEST_CORE_IPC */
1120
1121#ifdef TFM_PARTITION_TEST_CORE_IPC
1122 {
Edison Aib2134e62019-10-11 18:24:47 +08001123 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
1124 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
1125 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
1126 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
1127 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
1128 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
1129 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
1130 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
1131 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
1132 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001133 },
1134#endif /* TFM_PARTITION_TEST_CORE_IPC */
1135
1136#ifdef TFM_ENABLE_IRQ_TEST
1137 {
Edison Aib2134e62019-10-11 18:24:47 +08001138 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
1139 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
1140 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
1141 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
1142 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
1143 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
1144 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
1145 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
1146 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
1147 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001148 },
1149#endif /* TFM_ENABLE_IRQ_TEST */
1150
Jamie Fox0e823a02019-10-28 17:28:19 +00001151#ifdef TFM_PARTITION_TEST_SST
1152 {
1153 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
1154 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
1155 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
1156 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
1157 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
1158 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
1159 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
1160 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
1161 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
1162 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
1163 },
1164#endif /* TFM_PARTITION_TEST_SST */
1165
Jamie Fox830ff762019-12-16 15:20:22 +00001166#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1167 {
1168 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Base),
1169 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit),
1170 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base),
1171 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit),
1172 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base),
1173 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit),
1174 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base),
1175 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit),
1176 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base),
1177 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit),
1178 },
1179#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1180
Summer Qin423dbef2019-08-22 15:59:35 +08001181};
1182#endif /* defined(TFM_PSA_API) */
1183
1184/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001185/** The partition list for the DB */
1186/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +08001187static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001188{
Summer Qin423dbef2019-08-22 15:59:35 +08001189 {{}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001190#ifndef TFM_PSA_API
Summer Qin423dbef2019-08-22 15:59:35 +08001191 {{}}, /* placeholder for TF-M Core internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001192#endif /* !ifndefined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001193
1194 /* -----------------------------------------------------------------------*/
1195 /* - Partition DB record for TFM_SP_STORAGE */
1196 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001197#ifdef TFM_PARTITION_SECURE_STORAGE
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001198 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001199 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001200 .runtime_data = {},
1201 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001202 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001203 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001204#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001205
1206 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +01001207 /* - Partition DB record for TFM_SP_ITS */
1208 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001209#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +01001210 {
1211 /* Runtime data */
1212 .runtime_data = {},
1213 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001214 .platform_data_list = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +01001215 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001216#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001217
1218 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001219 /* - Partition DB record for TFM_SP_AUDIT_LOG */
1220 /* -----------------------------------------------------------------------*/
1221#ifdef TFM_PARTITION_AUDIT_LOG
1222 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001223 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001224 .runtime_data = {},
1225 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001226 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001227 },
1228#endif /* TFM_PARTITION_AUDIT_LOG */
1229
1230 /* -----------------------------------------------------------------------*/
1231 /* - Partition DB record for TFM_SP_CRYPTO */
1232 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001233#ifdef TFM_PARTITION_CRYPTO
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001234 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001235 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001236 .runtime_data = {},
1237 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001238 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001239 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001240#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001241
1242 /* -----------------------------------------------------------------------*/
1243 /* - Partition DB record for TFM_SP_PLATFORM */
1244 /* -----------------------------------------------------------------------*/
1245#ifdef TFM_PARTITION_PLATFORM
1246 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001247 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001248 .runtime_data = {},
1249 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001250 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001251 },
1252#endif /* TFM_PARTITION_PLATFORM */
1253
1254 /* -----------------------------------------------------------------------*/
1255 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
1256 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001257#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001258 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001259 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001260 .runtime_data = {},
1261 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001262 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001263 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001264#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001265
1266 /* -----------------------------------------------------------------------*/
1267 /* - Partition DB record for TFM_SP_CORE_TEST */
1268 /* -----------------------------------------------------------------------*/
1269#ifdef TFM_PARTITION_TEST_CORE
1270 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001271 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001272 .runtime_data = {},
1273 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001274 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001275 },
1276#endif /* TFM_PARTITION_TEST_CORE */
1277
1278 /* -----------------------------------------------------------------------*/
1279 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1280 /* -----------------------------------------------------------------------*/
1281#ifdef TFM_PARTITION_TEST_CORE
1282 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001283 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001284 .runtime_data = {},
1285 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001286 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001287 },
1288#endif /* TFM_PARTITION_TEST_CORE */
1289
1290 /* -----------------------------------------------------------------------*/
1291 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1292 /* -----------------------------------------------------------------------*/
1293#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1294 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001295 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001296 .runtime_data = {},
1297 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001298 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001299 },
1300#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1301
1302 /* -----------------------------------------------------------------------*/
1303 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1304 /* -----------------------------------------------------------------------*/
1305#ifdef TFM_PARTITION_TEST_CORE_IPC
1306 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001307 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001308 .runtime_data = {},
1309 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001310 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001311 },
1312#endif /* TFM_PARTITION_TEST_CORE_IPC */
1313
1314 /* -----------------------------------------------------------------------*/
1315 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1316 /* -----------------------------------------------------------------------*/
1317#ifdef TFM_PARTITION_TEST_CORE_IPC
1318 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001319 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001320 .runtime_data = {},
1321 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001322 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001323 },
1324#endif /* TFM_PARTITION_TEST_CORE_IPC */
1325
1326 /* -----------------------------------------------------------------------*/
1327 /* - Partition DB record for TFM_IRQ_TEST_1 */
1328 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001329#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001330 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001331 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001332 .runtime_data = {},
1333 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001334 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001335 },
David Hu33f2fd22019-08-16 15:32:39 +08001336#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001337
Jamie Fox0e823a02019-10-28 17:28:19 +00001338 /* -----------------------------------------------------------------------*/
1339 /* - Partition DB record for TFM_SP_SST_TEST */
1340 /* -----------------------------------------------------------------------*/
1341#ifdef TFM_PARTITION_TEST_SST
1342 {
1343 /* Runtime data */
1344 .runtime_data = {},
1345 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001346 .platform_data_list = NULL,
Jamie Fox0e823a02019-10-28 17:28:19 +00001347 },
1348#endif /* TFM_PARTITION_TEST_SST */
1349
Jamie Fox830ff762019-12-16 15:20:22 +00001350 /* -----------------------------------------------------------------------*/
1351 /* - Partition DB record for TFM_SP_SECURE_CLIENT_2 */
1352 /* -----------------------------------------------------------------------*/
1353#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1354 {
1355 /* Runtime data */
1356 .runtime_data = {},
1357 .static_data = NULL,
1358 .platform_data_list = NULL,
1359 },
1360#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1361
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001362};
1363
1364struct spm_partition_db_t g_spm_partition_db = {
1365 .is_init = 0,
1366 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001367#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001368 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001369#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001370 .partitions = partition_list,
1371};
1372
1373#endif /* __TFM_SPM_DB_INC__ */