blob: 59f7f0e1ff481a8bf62e4bf60721a8a049c88459 [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,
TudorCretu1ad09372019-08-09 15:35:12 +0100531 TFM_ITS_SET_SID,
532 TFM_ITS_GET_SID,
533 TFM_ITS_GET_INFO_SID,
534 TFM_ITS_REMOVE_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800535};
Kevin Pengc73130f2019-10-22 17:27:18 +0800536#endif /* TFM_PARTITION_SECURE_STORAGE */
Edison Aie728fbf2019-11-13 09:37:12 +0800537
Kevin Pengc73130f2019-10-22 17:27:18 +0800538#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Edison Aie728fbf2019-11-13 09:37:12 +0800539static int32_t dependencies_TFM_SP_INITIAL_ATTESTATION[] =
540{
541 TFM_CRYPTO_SID,
542};
Kevin Pengc73130f2019-10-22 17:27:18 +0800543#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Edison Aie728fbf2019-11-13 09:37:12 +0800544
545#ifdef TFM_PARTITION_TEST_CORE
546static int32_t dependencies_TFM_SP_CORE_TEST[] =
547{
548 SPM_CORE_TEST_2_INVERT_SID,
549 SPM_CORE_TEST_2_GET_EVERY_SECOND_BYTE_SID,
550 SPM_CORE_TEST_2_SLAVE_SERVICE_SID,
551};
552#endif /* TFM_PARTITION_TEST_CORE */
553
554#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
555static int32_t dependencies_TFM_SP_SECURE_TEST_PARTITION[] =
556{
Jamie Fox830ff762019-12-16 15:20:22 +0000557 TFM_SECURE_CLIENT_2_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800558 TFM_CRYPTO_SID,
559 TFM_SST_SET_SID,
560 TFM_SST_GET_SID,
561 TFM_SST_GET_INFO_SID,
562 TFM_SST_REMOVE_SID,
563 TFM_SST_GET_SUPPORT_SID,
564 TFM_ITS_SET_SID,
565 TFM_ITS_GET_SID,
566 TFM_ITS_GET_INFO_SID,
567 TFM_ITS_REMOVE_SID,
568 TFM_ATTEST_GET_TOKEN_SID,
569 TFM_ATTEST_GET_TOKEN_SIZE_SID,
570 TFM_ATTEST_GET_PUBLIC_KEY_SID,
571 TFM_SST_TEST_PREPARE_SID,
Edison Aia765f232019-12-06 15:41:38 +0800572 TFM_SP_PLATFORM_SYSTEM_RESET_SID,
573 TFM_SP_PLATFORM_IOCTL_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800574};
575#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
576
577#ifdef TFM_PARTITION_TEST_CORE_IPC
578static int32_t dependencies_TFM_SP_IPC_CLIENT_TEST[] =
579{
580 IPC_SERVICE_TEST_PSA_ACCESS_APP_READ_ONLY_MEM_SID,
581 IPC_SERVICE_TEST_PSA_ACCESS_APP_MEM_SID,
582 IPC_SERVICE_TEST_BASIC_SID,
583 IPC_SERVICE_TEST_APP_ACCESS_PSA_MEM_SID,
584};
585#endif /* TFM_PARTITION_TEST_CORE_IPC */
586
587#ifdef TFM_PARTITION_TEST_SST
588static int32_t dependencies_TFM_SP_SST_TEST[] =
589{
590 TFM_CRYPTO_SID,
TudorCretu1ad09372019-08-09 15:35:12 +0100591 TFM_ITS_GET_SID,
592 TFM_ITS_REMOVE_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800593};
594#endif /* TFM_PARTITION_TEST_SST */
595
Jamie Foxfafeff72019-12-12 17:17:24 +0000596#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
597static int32_t dependencies_TFM_SP_SECURE_CLIENT_2[] =
598{
599 TFM_ITS_GET_SID,
Jamie Foxc0b66852019-12-19 16:40:41 +0000600 TFM_CRYPTO_SID,
Jamie Foxfafeff72019-12-12 17:17:24 +0000601};
602#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
603
Edison Aie728fbf2019-11-13 09:37:12 +0800604/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800605/** The static data of the partition list */
606/**************************************************************************/
607const struct spm_partition_static_data_t static_data_list[] =
608{
609 {
Edison Aif0501702019-10-11 14:36:42 +0800610#ifdef TFM_PSA_API
611 .psa_framework_version = 0x0100,
612#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800613 .partition_id = TFM_SP_NON_SECURE_ID,
614#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800615#if TFM_MULTI_CORE_TOPOLOGY
616 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
617#else
Summer Qin423dbef2019-08-22 15:59:35 +0800618 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800619#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800620 .partition_priority = TFM_PRIORITY_LOW,
621 .partition_init = tfm_nspm_thread_entry,
622#else
623 .partition_flags = 0,
624#endif
625 },
626
627#ifndef TFM_PSA_API
628 {
629 .partition_id = TFM_SP_CORE_ID,
630 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
631 },
632#endif
633
Kevin Pengc73130f2019-10-22 17:27:18 +0800634#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800635 {
Edison Aif0501702019-10-11 14:36:42 +0800636#ifdef TFM_PSA_API
637 .psa_framework_version = 0x0100,
638#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800639 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800640 .partition_flags = SPM_PART_FLAG_IPC
641 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
642 ,
643 .partition_priority = TFM_PRIORITY(NORMAL),
644 .partition_init = tfm_sst_req_mngr_init,
TudorCretu1ad09372019-08-09 15:35:12 +0100645 .dependencies_num = 5,
Edison Aie728fbf2019-11-13 09:37:12 +0800646 .p_dependencies = dependencies_TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800647 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800648#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800649
Kevin Pengc73130f2019-10-22 17:27:18 +0800650#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100651 {
Edison Aif0501702019-10-11 14:36:42 +0800652#ifdef TFM_PSA_API
653 .psa_framework_version = 0x0100,
654#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800655 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100656 .partition_flags = SPM_PART_FLAG_IPC
657 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
658 ,
659 .partition_priority = TFM_PRIORITY(NORMAL),
660 .partition_init = tfm_its_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800661 .dependencies_num = 0,
662 .p_dependencies = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +0100663 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800664#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100665
Summer Qin423dbef2019-08-22 15:59:35 +0800666#ifdef TFM_PARTITION_AUDIT_LOG
667 {
Edison Aif0501702019-10-11 14:36:42 +0800668#ifdef TFM_PSA_API
669 .psa_framework_version = 0x0100,
670#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800671 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800672 .partition_flags = 0
673 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
674 ,
675 .partition_priority = TFM_PRIORITY(NORMAL),
676 .partition_init = audit_core_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800677 .dependencies_num = 0,
678 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800679 },
680#endif /* TFM_PARTITION_AUDIT_LOG */
681
Kevin Pengc73130f2019-10-22 17:27:18 +0800682#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800683 {
Edison Aif0501702019-10-11 14:36:42 +0800684#ifdef TFM_PSA_API
685 .psa_framework_version = 0x0100,
686#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800687 .partition_id = TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800688 .partition_flags = SPM_PART_FLAG_IPC
689 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
690 ,
691 .partition_priority = TFM_PRIORITY(NORMAL),
692 .partition_init = tfm_crypto_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800693 .dependencies_num = 0,
694 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800695 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800696#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800697
698#ifdef TFM_PARTITION_PLATFORM
699 {
Edison Aif0501702019-10-11 14:36:42 +0800700#ifdef TFM_PSA_API
701 .psa_framework_version = 0x0100,
702#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800703 .partition_id = TFM_SP_PLATFORM,
Mate Toth-Pal179a1562019-11-08 11:40:27 +0100704 .partition_flags = SPM_PART_FLAG_IPC
Summer Qin423dbef2019-08-22 15:59:35 +0800705 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
706 ,
707 .partition_priority = TFM_PRIORITY(NORMAL),
708 .partition_init = platform_sp_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800709 .dependencies_num = 0,
710 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800711 },
712#endif /* TFM_PARTITION_PLATFORM */
713
Kevin Pengc73130f2019-10-22 17:27:18 +0800714#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800715 {
Edison Aif0501702019-10-11 14:36:42 +0800716#ifdef TFM_PSA_API
717 .psa_framework_version = 0x0100,
718#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800719 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800720 .partition_flags = SPM_PART_FLAG_IPC
721 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
722 ,
723 .partition_priority = TFM_PRIORITY(NORMAL),
724 .partition_init = attest_partition_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800725 .dependencies_num = 1,
726 .p_dependencies = dependencies_TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800727 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800728#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800729
730#ifdef TFM_PARTITION_TEST_CORE
731 {
Edison Aif0501702019-10-11 14:36:42 +0800732#ifdef TFM_PSA_API
733 .psa_framework_version = 0x0100,
734#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800735 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800736 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200737 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800738 ,
739 .partition_priority = TFM_PRIORITY(NORMAL),
740 .partition_init = core_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800741 .dependencies_num = 3,
742 .p_dependencies = dependencies_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800743 },
744#endif /* TFM_PARTITION_TEST_CORE */
745
746#ifdef TFM_PARTITION_TEST_CORE
747 {
Edison Aif0501702019-10-11 14:36:42 +0800748#ifdef TFM_PSA_API
749 .psa_framework_version = 0x0100,
750#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800751 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800752 .partition_flags = SPM_PART_FLAG_IPC
753 | SPM_PART_FLAG_APP_ROT
754 ,
755 .partition_priority = TFM_PRIORITY(NORMAL),
756 .partition_init = core_test_2_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800757 .dependencies_num = 0,
758 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800759 },
760#endif /* TFM_PARTITION_TEST_CORE */
761
762#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
763 {
Edison Aif0501702019-10-11 14:36:42 +0800764#ifdef TFM_PSA_API
765 .psa_framework_version = 0x0100,
766#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800767 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800768 .partition_flags = SPM_PART_FLAG_IPC
769 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
770 ,
771 .partition_priority = TFM_PRIORITY(NORMAL),
772 .partition_init = tfm_secure_client_service_init,
Jamie Fox830ff762019-12-16 15:20:22 +0000773 .dependencies_num = 17,
Edison Aie728fbf2019-11-13 09:37:12 +0800774 .p_dependencies = dependencies_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800775 },
776#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
777
778#ifdef TFM_PARTITION_TEST_CORE_IPC
779 {
Edison Aif0501702019-10-11 14:36:42 +0800780#ifdef TFM_PSA_API
781 .psa_framework_version = 0x0100,
782#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800783 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800784 .partition_flags = SPM_PART_FLAG_IPC
785 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
786 ,
787 .partition_priority = TFM_PRIORITY(HIGH),
788 .partition_init = ipc_service_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800789 .dependencies_num = 0,
790 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800791 },
792#endif /* TFM_PARTITION_TEST_CORE_IPC */
793
794#ifdef TFM_PARTITION_TEST_CORE_IPC
795 {
Edison Aif0501702019-10-11 14:36:42 +0800796#ifdef TFM_PSA_API
797 .psa_framework_version = 0x0100,
798#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800799 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800800 .partition_flags = SPM_PART_FLAG_IPC
801 | SPM_PART_FLAG_APP_ROT
802 ,
803 .partition_priority = TFM_PRIORITY(NORMAL),
804 .partition_init = ipc_client_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800805 .dependencies_num = 4,
806 .p_dependencies = dependencies_TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800807 },
808#endif /* TFM_PARTITION_TEST_CORE_IPC */
809
810#ifdef TFM_ENABLE_IRQ_TEST
811 {
Edison Aif0501702019-10-11 14:36:42 +0800812#ifdef TFM_PSA_API
813 .psa_framework_version = 0x0100,
814#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800815 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800816 .partition_flags = SPM_PART_FLAG_IPC
817 | SPM_PART_FLAG_APP_ROT
818 ,
819 .partition_priority = TFM_PRIORITY(NORMAL),
820 .partition_init = tfm_irq_test_1_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800821 .dependencies_num = 0,
822 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800823 },
824#endif /* TFM_ENABLE_IRQ_TEST */
825
Jamie Fox0e823a02019-10-28 17:28:19 +0000826#ifdef TFM_PARTITION_TEST_SST
827 {
828#ifdef TFM_PSA_API
829 .psa_framework_version = 0x0100,
830#endif /* defined(TFM_PSA_API) */
831 .partition_id = TFM_SP_SST_TEST,
832 .partition_flags = SPM_PART_FLAG_IPC
833 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
834 ,
835 .partition_priority = TFM_PRIORITY(NORMAL),
836 .partition_init = tfm_sst_test_init,
TudorCretu1ad09372019-08-09 15:35:12 +0100837 .dependencies_num = 3,
Edison Aie728fbf2019-11-13 09:37:12 +0800838 .p_dependencies = dependencies_TFM_SP_SST_TEST,
Jamie Fox0e823a02019-10-28 17:28:19 +0000839 },
840#endif /* TFM_PARTITION_TEST_SST */
841
Jamie Fox830ff762019-12-16 15:20:22 +0000842#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
843 {
844#ifdef TFM_PSA_API
845 .psa_framework_version = 0x0100,
846#endif /* defined(TFM_PSA_API) */
847 .partition_id = TFM_SP_SECURE_CLIENT_2,
848 .partition_flags = SPM_PART_FLAG_IPC
849 | SPM_PART_FLAG_APP_ROT
850 ,
851 .partition_priority = TFM_PRIORITY(NORMAL),
852 .partition_init = tfm_secure_client_2_init,
Jamie Foxc0b66852019-12-19 16:40:41 +0000853 .dependencies_num = 2,
Jamie Foxfafeff72019-12-12 17:17:24 +0000854 .p_dependencies = dependencies_TFM_SP_SECURE_CLIENT_2,
Jamie Fox830ff762019-12-16 15:20:22 +0000855 },
856#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
857
Summer Qin423dbef2019-08-22 15:59:35 +0800858};
859
860/**************************************************************************/
861/** The platform data of the partition list */
862/**************************************************************************/
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100863#ifdef TFM_PARTITION_AUDIT_LOG
864const struct tfm_spm_partition_platform_data_t *
865 platform_data_list_TFM_SP_AUDIT_LOG[] =
866{
867#ifdef AUDIT_UART_REDIRECTION
868 TFM_PERIPHERAL_UART1,
869#endif /* AUDIT_UART_REDIRECTION */
870 NULL
871};
872#endif /* TFM_PARTITION_AUDIT_LOG */
873
874#ifdef TFM_PARTITION_TEST_CORE
875const struct tfm_spm_partition_platform_data_t *
876 platform_data_list_TFM_SP_CORE_TEST[] =
877{
878 TFM_PERIPHERAL_FPGA_IO,
879 NULL
880};
881#endif /* TFM_PARTITION_TEST_CORE */
882
883#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
884const struct tfm_spm_partition_platform_data_t *
885 platform_data_list_TFM_SP_SECURE_TEST_PARTITION[] =
886{
887 TFM_PERIPHERAL_STD_UART,
888 NULL
889};
890#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
891
892#ifdef TFM_ENABLE_IRQ_TEST
893const struct tfm_spm_partition_platform_data_t *
894 platform_data_list_TFM_IRQ_TEST_1[] =
895{
896 TFM_PERIPHERAL_TIMER0,
897 NULL
898};
899#endif /* TFM_ENABLE_IRQ_TEST */
900
901const struct tfm_spm_partition_platform_data_t **platform_data_list_list[] =
Summer Qin423dbef2019-08-22 15:59:35 +0800902{
903 NULL,
904
905#ifndef TFM_PSA_API
906 NULL,
907#endif
908
Kevin Pengc73130f2019-10-22 17:27:18 +0800909#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800910 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800911#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800912
Kevin Pengc73130f2019-10-22 17:27:18 +0800913#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100914 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800915#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100916
Summer Qin423dbef2019-08-22 15:59:35 +0800917#ifdef TFM_PARTITION_AUDIT_LOG
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100918 platform_data_list_TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800919#endif /* TFM_PARTITION_AUDIT_LOG */
920
Kevin Pengc73130f2019-10-22 17:27:18 +0800921#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800922 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800923#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800924
925#ifdef TFM_PARTITION_PLATFORM
926 NULL,
927#endif /* TFM_PARTITION_PLATFORM */
928
Kevin Pengc73130f2019-10-22 17:27:18 +0800929#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800930 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800931#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800932
933#ifdef TFM_PARTITION_TEST_CORE
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100934 platform_data_list_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800935#endif /* TFM_PARTITION_TEST_CORE */
936
937#ifdef TFM_PARTITION_TEST_CORE
938 NULL,
939#endif /* TFM_PARTITION_TEST_CORE */
940
941#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100942 platform_data_list_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800943#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
944
945#ifdef TFM_PARTITION_TEST_CORE_IPC
946 NULL,
947#endif /* TFM_PARTITION_TEST_CORE_IPC */
948
949#ifdef TFM_PARTITION_TEST_CORE_IPC
950 NULL,
951#endif /* TFM_PARTITION_TEST_CORE_IPC */
952
953#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100954 platform_data_list_TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800955#endif /* TFM_ENABLE_IRQ_TEST */
956
Jamie Fox0e823a02019-10-28 17:28:19 +0000957#ifdef TFM_PARTITION_TEST_SST
958 NULL,
959#endif /* TFM_PARTITION_TEST_SST */
960
Jamie Fox830ff762019-12-16 15:20:22 +0000961#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
962 NULL,
963#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
964
Summer Qin423dbef2019-08-22 15:59:35 +0800965};
966
967/**************************************************************************/
968/** The memory data of the partition list */
969/**************************************************************************/
970#ifdef TFM_PSA_API
971const struct tfm_spm_partition_memory_data_t memory_data_list[] =
972{
973 {
974 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
975 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
976 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
977 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800978#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800979 {
Edison Aib2134e62019-10-11 18:24:47 +0800980 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
981 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
982 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
983 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
984 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
985 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
986 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
987 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
988 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
989 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800990 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800991#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800992
Kevin Pengc73130f2019-10-22 17:27:18 +0800993#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100994 {
Edison Aib2134e62019-10-11 18:24:47 +0800995 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
996 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
997 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
998 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
999 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
1000 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
1001 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
1002 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
1003 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
1004 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +01001005 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001006#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001007
Summer Qin423dbef2019-08-22 15:59:35 +08001008#ifdef TFM_PARTITION_AUDIT_LOG
1009 {
Edison Aib2134e62019-10-11 18:24:47 +08001010 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
1011 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
1012 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
1013 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
1014 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
1015 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
1016 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
1017 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
1018 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
1019 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001020 },
1021#endif /* TFM_PARTITION_AUDIT_LOG */
1022
Kevin Pengc73130f2019-10-22 17:27:18 +08001023#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +08001024 {
Edison Aib2134e62019-10-11 18:24:47 +08001025 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
1026 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
1027 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
1028 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
1029 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
1030 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
1031 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
1032 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
1033 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
1034 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001035 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001036#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +08001037
1038#ifdef TFM_PARTITION_PLATFORM
1039 {
Edison Aib2134e62019-10-11 18:24:47 +08001040 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
1041 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
1042 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
1043 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
1044 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
1045 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
1046 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
1047 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
1048 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
1049 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001050 },
1051#endif /* TFM_PARTITION_PLATFORM */
1052
Kevin Pengc73130f2019-10-22 17:27:18 +08001053#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +08001054 {
Edison Aib2134e62019-10-11 18:24:47 +08001055 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
1056 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
1057 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
1058 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
1059 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
1060 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
1061 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
1062 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
1063 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
1064 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001065 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001066#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +08001067
1068#ifdef TFM_PARTITION_TEST_CORE
1069 {
Edison Aib2134e62019-10-11 18:24:47 +08001070 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
1071 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
1072 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
1073 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
1074 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
1075 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1076 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1077 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1078 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1079 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001080 },
1081#endif /* TFM_PARTITION_TEST_CORE */
1082
1083#ifdef TFM_PARTITION_TEST_CORE
1084 {
Edison Aib2134e62019-10-11 18:24:47 +08001085 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
1086 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
1087 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
1088 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
1089 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
1090 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
1091 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
1092 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
1093 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
1094 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001095 },
1096#endif /* TFM_PARTITION_TEST_CORE */
1097
1098#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1099 {
Edison Aib2134e62019-10-11 18:24:47 +08001100 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
1101 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
1102 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
1103 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
1104 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
1105 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
1106 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
1107 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
1108 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
1109 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001110 },
1111#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1112
1113#ifdef TFM_PARTITION_TEST_CORE_IPC
1114 {
Edison Aib2134e62019-10-11 18:24:47 +08001115 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
1116 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
1117 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
1118 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
1119 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
1120 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
1121 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
1122 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
1123 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
1124 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001125 },
1126#endif /* TFM_PARTITION_TEST_CORE_IPC */
1127
1128#ifdef TFM_PARTITION_TEST_CORE_IPC
1129 {
Edison Aib2134e62019-10-11 18:24:47 +08001130 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
1131 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
1132 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
1133 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
1134 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
1135 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
1136 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
1137 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
1138 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
1139 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001140 },
1141#endif /* TFM_PARTITION_TEST_CORE_IPC */
1142
1143#ifdef TFM_ENABLE_IRQ_TEST
1144 {
Edison Aib2134e62019-10-11 18:24:47 +08001145 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
1146 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
1147 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
1148 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
1149 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
1150 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
1151 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
1152 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
1153 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
1154 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001155 },
1156#endif /* TFM_ENABLE_IRQ_TEST */
1157
Jamie Fox0e823a02019-10-28 17:28:19 +00001158#ifdef TFM_PARTITION_TEST_SST
1159 {
1160 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
1161 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
1162 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
1163 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
1164 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
1165 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
1166 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
1167 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
1168 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
1169 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
1170 },
1171#endif /* TFM_PARTITION_TEST_SST */
1172
Jamie Fox830ff762019-12-16 15:20:22 +00001173#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1174 {
1175 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Base),
1176 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit),
1177 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base),
1178 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit),
1179 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base),
1180 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit),
1181 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base),
1182 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit),
1183 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base),
1184 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit),
1185 },
1186#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1187
Summer Qin423dbef2019-08-22 15:59:35 +08001188};
1189#endif /* defined(TFM_PSA_API) */
1190
1191/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001192/** The partition list for the DB */
1193/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +08001194static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001195{
Summer Qin423dbef2019-08-22 15:59:35 +08001196 {{}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001197#ifndef TFM_PSA_API
Summer Qin423dbef2019-08-22 15:59:35 +08001198 {{}}, /* placeholder for TF-M Core internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001199#endif /* !ifndefined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001200
1201 /* -----------------------------------------------------------------------*/
1202 /* - Partition DB record for TFM_SP_STORAGE */
1203 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001204#ifdef TFM_PARTITION_SECURE_STORAGE
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001205 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001206 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001207 .runtime_data = {},
1208 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001209 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001210 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001211#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001212
1213 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +01001214 /* - Partition DB record for TFM_SP_ITS */
1215 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001216#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +01001217 {
1218 /* Runtime data */
1219 .runtime_data = {},
1220 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001221 .platform_data_list = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +01001222 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001223#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001224
1225 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001226 /* - Partition DB record for TFM_SP_AUDIT_LOG */
1227 /* -----------------------------------------------------------------------*/
1228#ifdef TFM_PARTITION_AUDIT_LOG
1229 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001230 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001231 .runtime_data = {},
1232 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001233 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001234 },
1235#endif /* TFM_PARTITION_AUDIT_LOG */
1236
1237 /* -----------------------------------------------------------------------*/
1238 /* - Partition DB record for TFM_SP_CRYPTO */
1239 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001240#ifdef TFM_PARTITION_CRYPTO
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001241 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001242 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001243 .runtime_data = {},
1244 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001245 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001246 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001247#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001248
1249 /* -----------------------------------------------------------------------*/
1250 /* - Partition DB record for TFM_SP_PLATFORM */
1251 /* -----------------------------------------------------------------------*/
1252#ifdef TFM_PARTITION_PLATFORM
1253 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001254 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001255 .runtime_data = {},
1256 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001257 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001258 },
1259#endif /* TFM_PARTITION_PLATFORM */
1260
1261 /* -----------------------------------------------------------------------*/
1262 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
1263 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001264#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001265 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001266 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001267 .runtime_data = {},
1268 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001269 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001270 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001271#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001272
1273 /* -----------------------------------------------------------------------*/
1274 /* - Partition DB record for TFM_SP_CORE_TEST */
1275 /* -----------------------------------------------------------------------*/
1276#ifdef TFM_PARTITION_TEST_CORE
1277 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001278 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001279 .runtime_data = {},
1280 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001281 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001282 },
1283#endif /* TFM_PARTITION_TEST_CORE */
1284
1285 /* -----------------------------------------------------------------------*/
1286 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1287 /* -----------------------------------------------------------------------*/
1288#ifdef TFM_PARTITION_TEST_CORE
1289 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001290 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001291 .runtime_data = {},
1292 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001293 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001294 },
1295#endif /* TFM_PARTITION_TEST_CORE */
1296
1297 /* -----------------------------------------------------------------------*/
1298 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1299 /* -----------------------------------------------------------------------*/
1300#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1301 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001302 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001303 .runtime_data = {},
1304 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001305 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001306 },
1307#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1308
1309 /* -----------------------------------------------------------------------*/
1310 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1311 /* -----------------------------------------------------------------------*/
1312#ifdef TFM_PARTITION_TEST_CORE_IPC
1313 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001314 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001315 .runtime_data = {},
1316 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001317 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001318 },
1319#endif /* TFM_PARTITION_TEST_CORE_IPC */
1320
1321 /* -----------------------------------------------------------------------*/
1322 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1323 /* -----------------------------------------------------------------------*/
1324#ifdef TFM_PARTITION_TEST_CORE_IPC
1325 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001326 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001327 .runtime_data = {},
1328 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001329 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001330 },
1331#endif /* TFM_PARTITION_TEST_CORE_IPC */
1332
1333 /* -----------------------------------------------------------------------*/
1334 /* - Partition DB record for TFM_IRQ_TEST_1 */
1335 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001336#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001337 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001338 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001339 .runtime_data = {},
1340 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001341 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001342 },
David Hu33f2fd22019-08-16 15:32:39 +08001343#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001344
Jamie Fox0e823a02019-10-28 17:28:19 +00001345 /* -----------------------------------------------------------------------*/
1346 /* - Partition DB record for TFM_SP_SST_TEST */
1347 /* -----------------------------------------------------------------------*/
1348#ifdef TFM_PARTITION_TEST_SST
1349 {
1350 /* Runtime data */
1351 .runtime_data = {},
1352 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001353 .platform_data_list = NULL,
Jamie Fox0e823a02019-10-28 17:28:19 +00001354 },
1355#endif /* TFM_PARTITION_TEST_SST */
1356
Jamie Fox830ff762019-12-16 15:20:22 +00001357 /* -----------------------------------------------------------------------*/
1358 /* - Partition DB record for TFM_SP_SECURE_CLIENT_2 */
1359 /* -----------------------------------------------------------------------*/
1360#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1361 {
1362 /* Runtime data */
1363 .runtime_data = {},
1364 .static_data = NULL,
1365 .platform_data_list = NULL,
1366 },
1367#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1368
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001369};
1370
1371struct spm_partition_db_t g_spm_partition_db = {
1372 .is_init = 0,
1373 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001374#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001375 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001376#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001377 .partitions = partition_list,
1378};
1379
1380#endif /* __TFM_SPM_DB_INC__ */