blob: e70586d894faf54b70a6808937c9c47a06930691 [file] [log] [blame]
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001/*
TTornblom83d96372019-11-19 12:53:16 +01002 * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02003 *
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
David Hu240f58e2019-10-10 10:55:07 +080075#ifdef TFM_MULTI_CORE_TEST
76#define TFM_PARTITION_TFM_SP_MULTI_CORE_TEST_IRQ_COUNT 0
77#endif /* TFM_MULTI_CORE_TEST */
78
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020079/**************************************************************************/
80/** Declarations of partition init functions */
81/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +080082#ifdef TFM_PSA_API
Edison Ai9c48d202019-10-12 16:57:21 +080083extern void tfm_nspm_thread_entry(void);
Summer Qin423dbef2019-08-22 15:59:35 +080084#endif
85
Kevin Pengc73130f2019-10-22 17:27:18 +080086#ifdef TFM_PARTITION_SECURE_STORAGE
Edison Ai9c48d202019-10-12 16:57:21 +080087extern void tfm_sst_req_mngr_init(void);
Kevin Pengc73130f2019-10-22 17:27:18 +080088#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020089
Kevin Pengc73130f2019-10-22 17:27:18 +080090#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Edison Ai9c48d202019-10-12 16:57:21 +080091extern void tfm_its_req_mngr_init(void);
Kevin Pengc73130f2019-10-22 17:27:18 +080092#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +010093
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020094#ifdef TFM_PARTITION_AUDIT_LOG
Edison Ai9c48d202019-10-12 16:57:21 +080095extern void audit_core_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020096#endif /* TFM_PARTITION_AUDIT_LOG */
97
Kevin Pengc73130f2019-10-22 17:27:18 +080098#ifdef TFM_PARTITION_CRYPTO
Edison Ai9c48d202019-10-12 16:57:21 +080099extern void tfm_crypto_init(void);
Kevin Pengc73130f2019-10-22 17:27:18 +0800100#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200101
102#ifdef TFM_PARTITION_PLATFORM
Edison Ai9c48d202019-10-12 16:57:21 +0800103extern void platform_sp_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200104#endif /* TFM_PARTITION_PLATFORM */
105
Kevin Pengc73130f2019-10-22 17:27:18 +0800106#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Edison Ai9c48d202019-10-12 16:57:21 +0800107extern void attest_partition_init(void);
Kevin Pengc73130f2019-10-22 17:27:18 +0800108#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200109
110#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +0800111extern void core_test_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200112#endif /* TFM_PARTITION_TEST_CORE */
113
114#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +0800115extern void core_test_2_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200116#endif /* TFM_PARTITION_TEST_CORE */
117
118#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Ai9c48d202019-10-12 16:57:21 +0800119extern void tfm_secure_client_service_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200120#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
121
122#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +0800123extern void ipc_service_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200124#endif /* TFM_PARTITION_TEST_CORE_IPC */
125
126#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +0800127extern void ipc_client_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200128#endif /* TFM_PARTITION_TEST_CORE_IPC */
129
David Hu33f2fd22019-08-16 15:32:39 +0800130#ifdef TFM_ENABLE_IRQ_TEST
Edison Ai9c48d202019-10-12 16:57:21 +0800131extern void tfm_irq_test_1_init(void);
David Hu33f2fd22019-08-16 15:32:39 +0800132#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200133
Jamie Fox0e823a02019-10-28 17:28:19 +0000134#ifdef TFM_PARTITION_TEST_SST
135extern void tfm_sst_test_init(void);
136#endif /* TFM_PARTITION_TEST_SST */
137
Jamie Fox830ff762019-12-16 15:20:22 +0000138#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
139extern void tfm_secure_client_2_init(void);
140#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
141
David Hu240f58e2019-10-10 10:55:07 +0800142#ifdef TFM_MULTI_CORE_TEST
143extern void multi_core_test_main(void);
144#endif /* TFM_MULTI_CORE_TEST */
145
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200146/**************************************************************************/
147/** Memory region declarations */
148/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800149#ifdef TFM_PSA_API
150REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Base);
151REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Limit);
152
Kevin Pengc73130f2019-10-22 17:27:18 +0800153#ifdef TFM_PARTITION_SECURE_STORAGE
Edison Aib2134e62019-10-11 18:24:47 +0800154REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Base);
155REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Limit);
156REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Base);
157REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Limit);
158REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base);
159REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit);
160REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base);
161REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit);
162REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base);
163REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit);
Kevin Pengc73130f2019-10-22 17:27:18 +0800164#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200165
Kevin Pengc73130f2019-10-22 17:27:18 +0800166#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Edison Aib2134e62019-10-11 18:24:47 +0800167REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Base);
168REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Limit);
169REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Base);
170REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Limit);
171REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Base);
172REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Limit);
173REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Base);
174REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit);
175REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Base);
176REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit);
Kevin Pengc73130f2019-10-22 17:27:18 +0800177#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100178
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200179#ifdef TFM_PARTITION_AUDIT_LOG
Edison Aib2134e62019-10-11 18:24:47 +0800180REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Base);
181REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Limit);
182REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base);
183REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit);
184REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base);
185REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit);
186REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base);
187REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit);
188REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base);
189REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200190#endif /* TFM_PARTITION_AUDIT_LOG */
191
Kevin Pengc73130f2019-10-22 17:27:18 +0800192#ifdef TFM_PARTITION_CRYPTO
Edison Aib2134e62019-10-11 18:24:47 +0800193REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Base);
194REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Limit);
195REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Base);
196REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Limit);
197REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base);
198REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit);
199REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base);
200REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit);
201REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base);
202REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit);
Kevin Pengc73130f2019-10-22 17:27:18 +0800203#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200204
205#ifdef TFM_PARTITION_PLATFORM
Edison Aib2134e62019-10-11 18:24:47 +0800206REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Base);
207REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Limit);
208REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Base);
209REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Limit);
210REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base);
211REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit);
212REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base);
213REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit);
214REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base);
215REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200216#endif /* TFM_PARTITION_PLATFORM */
217
Kevin Pengc73130f2019-10-22 17:27:18 +0800218#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Edison Aib2134e62019-10-11 18:24:47 +0800219REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base);
220REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit);
221REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base);
222REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit);
223REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base);
224REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit);
225REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base);
226REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit);
227REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base);
228REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit);
Kevin Pengc73130f2019-10-22 17:27:18 +0800229#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200230
231#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800232REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Base);
233REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Limit);
234REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Base);
235REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Limit);
236REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base);
237REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit);
238REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base);
239REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit);
240REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base);
241REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200242#endif /* TFM_PARTITION_TEST_CORE */
243
244#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800245REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Base);
246REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Limit);
247REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base);
248REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit);
249REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base);
250REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit);
251REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base);
252REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit);
253REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base);
254REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200255#endif /* TFM_PARTITION_TEST_CORE */
256
257#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Aib2134e62019-10-11 18:24:47 +0800258REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base);
259REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit);
260REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base);
261REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit);
262REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base);
263REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit);
264REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base);
265REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit);
266REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base);
267REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200268#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
269
270#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800271REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base);
272REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit);
273REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base);
274REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit);
275REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base);
276REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit);
277REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base);
278REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit);
279REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base);
280REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200281#endif /* TFM_PARTITION_TEST_CORE_IPC */
282
283#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800284REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base);
285REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit);
286REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base);
287REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit);
288REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base);
289REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit);
290REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base);
291REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit);
292REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base);
293REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200294#endif /* TFM_PARTITION_TEST_CORE_IPC */
295
David Hu33f2fd22019-08-16 15:32:39 +0800296#ifdef TFM_ENABLE_IRQ_TEST
Edison Aib2134e62019-10-11 18:24:47 +0800297REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Base);
298REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Limit);
299REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Base);
300REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Limit);
301REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base);
302REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit);
303REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base);
304REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit);
305REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base);
306REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit);
David Hu33f2fd22019-08-16 15:32:39 +0800307#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200308
Jamie Fox0e823a02019-10-28 17:28:19 +0000309#ifdef TFM_PARTITION_TEST_SST
310REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Base);
311REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Limit);
312REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Base);
313REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Limit);
314REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base);
315REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit);
316REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base);
317REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit);
318REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base);
319REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit);
320#endif /* TFM_PARTITION_TEST_SST */
321
Jamie Fox830ff762019-12-16 15:20:22 +0000322#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
323REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$Base);
324REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit);
325REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base);
326REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit);
327REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base);
328REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit);
329REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base);
330REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit);
331REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base);
332REGION_DECLARE(Image$$, TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit);
333#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
334
David Hu240f58e2019-10-10 10:55:07 +0800335#ifdef TFM_MULTI_CORE_TEST
336REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, $$Base);
337REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, $$Limit);
338REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, $$RO$$Base);
339REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, $$RO$$Limit);
340REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$RW$$Base);
341REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$RW$$Limit);
342REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$ZI$$Base);
343REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$ZI$$Limit);
344REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, _STACK$$ZI$$Base);
345REGION_DECLARE(Image$$, TFM_SP_MULTI_CORE_TEST_LINKER, _STACK$$ZI$$Limit);
346#endif /* TFM_MULTI_CORE_TEST */
347
Summer Qin423dbef2019-08-22 15:59:35 +0800348#endif /* defined(TFM_PSA_API) */
349
Edison Ai66fbdf12019-07-08 16:05:07 +0800350#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200351/**************************************************************************/
352/** Context stacks for IRQ handling */
353/**************************************************************************/
354/* The max size of the context stack can be calculated as a function of the IRQ
355 * count of the secure partition:
356 *
357 * max_stack_size = intr_ctx_size + (IRQ_CNT * (intr_ctx_size + hndl_ctx_size))
358 *
359 * where:
360 * intr_ctx: Frame pushed when the partition is interrupted
361 * hndl_ctx: Frame pushed when the partition is handling an interrupt
362 */
Summer Qin423dbef2019-08-22 15:59:35 +0800363static uint32_t ns_interrupt_ctx_stack[
364 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
365
366static uint32_t tfm_core_interrupt_ctx_stack[
367 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
368
Kevin Pengc73130f2019-10-22 17:27:18 +0800369#ifdef TFM_PARTITION_SECURE_STORAGE
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200370static uint32_t ctx_stack_TFM_SP_STORAGE[
371 (sizeof(struct interrupted_ctx_stack_frame_t) +
372 (TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT) * (
373 sizeof(struct interrupted_ctx_stack_frame_t) +
374 sizeof(struct handler_ctx_stack_frame_t)
375 )) / sizeof(uint32_t)];
Kevin Pengc73130f2019-10-22 17:27:18 +0800376#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200377
Kevin Pengc73130f2019-10-22 17:27:18 +0800378#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100379static uint32_t ctx_stack_TFM_SP_ITS[
380 (sizeof(struct interrupted_ctx_stack_frame_t) +
381 (TFM_PARTITION_TFM_SP_ITS_IRQ_COUNT) * (
382 sizeof(struct interrupted_ctx_stack_frame_t) +
383 sizeof(struct handler_ctx_stack_frame_t)
384 )) / sizeof(uint32_t)];
Kevin Pengc73130f2019-10-22 17:27:18 +0800385#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100386
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200387#ifdef TFM_PARTITION_AUDIT_LOG
388static uint32_t ctx_stack_TFM_SP_AUDIT_LOG[
389 (sizeof(struct interrupted_ctx_stack_frame_t) +
390 (TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT) * (
391 sizeof(struct interrupted_ctx_stack_frame_t) +
392 sizeof(struct handler_ctx_stack_frame_t)
393 )) / sizeof(uint32_t)];
394#endif /* TFM_PARTITION_AUDIT_LOG */
395
Kevin Pengc73130f2019-10-22 17:27:18 +0800396#ifdef TFM_PARTITION_CRYPTO
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200397static uint32_t ctx_stack_TFM_SP_CRYPTO[
398 (sizeof(struct interrupted_ctx_stack_frame_t) +
399 (TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT) * (
400 sizeof(struct interrupted_ctx_stack_frame_t) +
401 sizeof(struct handler_ctx_stack_frame_t)
402 )) / sizeof(uint32_t)];
Kevin Pengc73130f2019-10-22 17:27:18 +0800403#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200404
405#ifdef TFM_PARTITION_PLATFORM
406static uint32_t ctx_stack_TFM_SP_PLATFORM[
407 (sizeof(struct interrupted_ctx_stack_frame_t) +
408 (TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT) * (
409 sizeof(struct interrupted_ctx_stack_frame_t) +
410 sizeof(struct handler_ctx_stack_frame_t)
411 )) / sizeof(uint32_t)];
412#endif /* TFM_PARTITION_PLATFORM */
413
Kevin Pengc73130f2019-10-22 17:27:18 +0800414#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200415static uint32_t ctx_stack_TFM_SP_INITIAL_ATTESTATION[
416 (sizeof(struct interrupted_ctx_stack_frame_t) +
417 (TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT) * (
418 sizeof(struct interrupted_ctx_stack_frame_t) +
419 sizeof(struct handler_ctx_stack_frame_t)
420 )) / sizeof(uint32_t)];
Kevin Pengc73130f2019-10-22 17:27:18 +0800421#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200422
423#ifdef TFM_PARTITION_TEST_CORE
424static uint32_t ctx_stack_TFM_SP_CORE_TEST[
425 (sizeof(struct interrupted_ctx_stack_frame_t) +
426 (TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT) * (
427 sizeof(struct interrupted_ctx_stack_frame_t) +
428 sizeof(struct handler_ctx_stack_frame_t)
429 )) / sizeof(uint32_t)];
430#endif /* TFM_PARTITION_TEST_CORE */
431
432#ifdef TFM_PARTITION_TEST_CORE
433static uint32_t ctx_stack_TFM_SP_CORE_TEST_2[
434 (sizeof(struct interrupted_ctx_stack_frame_t) +
435 (TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT) * (
436 sizeof(struct interrupted_ctx_stack_frame_t) +
437 sizeof(struct handler_ctx_stack_frame_t)
438 )) / sizeof(uint32_t)];
439#endif /* TFM_PARTITION_TEST_CORE */
440
441#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
442static uint32_t ctx_stack_TFM_SP_SECURE_TEST_PARTITION[
443 (sizeof(struct interrupted_ctx_stack_frame_t) +
444 (TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT) * (
445 sizeof(struct interrupted_ctx_stack_frame_t) +
446 sizeof(struct handler_ctx_stack_frame_t)
447 )) / sizeof(uint32_t)];
448#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
449
450#ifdef TFM_PARTITION_TEST_CORE_IPC
451static uint32_t ctx_stack_TFM_SP_IPC_SERVICE_TEST[
452 (sizeof(struct interrupted_ctx_stack_frame_t) +
453 (TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT) * (
454 sizeof(struct interrupted_ctx_stack_frame_t) +
455 sizeof(struct handler_ctx_stack_frame_t)
456 )) / sizeof(uint32_t)];
457#endif /* TFM_PARTITION_TEST_CORE_IPC */
458
459#ifdef TFM_PARTITION_TEST_CORE_IPC
460static uint32_t ctx_stack_TFM_SP_IPC_CLIENT_TEST[
461 (sizeof(struct interrupted_ctx_stack_frame_t) +
462 (TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT) * (
463 sizeof(struct interrupted_ctx_stack_frame_t) +
464 sizeof(struct handler_ctx_stack_frame_t)
465 )) / sizeof(uint32_t)];
466#endif /* TFM_PARTITION_TEST_CORE_IPC */
467
David Hu33f2fd22019-08-16 15:32:39 +0800468#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200469static uint32_t ctx_stack_TFM_IRQ_TEST_1[
470 (sizeof(struct interrupted_ctx_stack_frame_t) +
471 (TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT) * (
472 sizeof(struct interrupted_ctx_stack_frame_t) +
473 sizeof(struct handler_ctx_stack_frame_t)
474 )) / sizeof(uint32_t)];
David Hu33f2fd22019-08-16 15:32:39 +0800475#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200476
Jamie Fox0e823a02019-10-28 17:28:19 +0000477#ifdef TFM_PARTITION_TEST_SST
478static uint32_t ctx_stack_TFM_SP_SST_TEST[
479 (sizeof(struct interrupted_ctx_stack_frame_t) +
480 (TFM_PARTITION_TFM_SP_SST_TEST_IRQ_COUNT) * (
481 sizeof(struct interrupted_ctx_stack_frame_t) +
482 sizeof(struct handler_ctx_stack_frame_t)
483 )) / sizeof(uint32_t)];
484#endif /* TFM_PARTITION_TEST_SST */
485
Jamie Fox830ff762019-12-16 15:20:22 +0000486#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
487static uint32_t ctx_stack_TFM_SP_SECURE_CLIENT_2[
488 (sizeof(struct interrupted_ctx_stack_frame_t) +
489 (TFM_PARTITION_TFM_SP_SECURE_CLIENT_2_IRQ_COUNT) * (
490 sizeof(struct interrupted_ctx_stack_frame_t) +
491 sizeof(struct handler_ctx_stack_frame_t)
492 )) / sizeof(uint32_t)];
493#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
494
David Hu240f58e2019-10-10 10:55:07 +0800495#ifdef TFM_MULTI_CORE_TEST
496static uint32_t ctx_stack_TFM_SP_MULTI_CORE_TEST[
497 (sizeof(struct interrupted_ctx_stack_frame_t) +
498 (TFM_PARTITION_TFM_SP_MULTI_CORE_TEST_IRQ_COUNT) * (
499 sizeof(struct interrupted_ctx_stack_frame_t) +
500 sizeof(struct handler_ctx_stack_frame_t)
501 )) / sizeof(uint32_t)];
502#endif /* TFM_MULTI_CORE_TEST */
503
Summer Qin423dbef2019-08-22 15:59:35 +0800504
505uint32_t *ctx_stack_list[] =
506{
507 ns_interrupt_ctx_stack,
508 tfm_core_interrupt_ctx_stack,
Kevin Pengc73130f2019-10-22 17:27:18 +0800509#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800510 ctx_stack_TFM_SP_STORAGE,
Kevin Pengc73130f2019-10-22 17:27:18 +0800511#endif /* TFM_PARTITION_SECURE_STORAGE */
512#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100513 ctx_stack_TFM_SP_ITS,
Kevin Pengc73130f2019-10-22 17:27:18 +0800514#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800515#ifdef TFM_PARTITION_AUDIT_LOG
516 ctx_stack_TFM_SP_AUDIT_LOG,
517#endif /* TFM_PARTITION_AUDIT_LOG */
Kevin Pengc73130f2019-10-22 17:27:18 +0800518#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800519 ctx_stack_TFM_SP_CRYPTO,
Kevin Pengc73130f2019-10-22 17:27:18 +0800520#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800521#ifdef TFM_PARTITION_PLATFORM
522 ctx_stack_TFM_SP_PLATFORM,
523#endif /* TFM_PARTITION_PLATFORM */
Kevin Pengc73130f2019-10-22 17:27:18 +0800524#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800525 ctx_stack_TFM_SP_INITIAL_ATTESTATION,
Kevin Pengc73130f2019-10-22 17:27:18 +0800526#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800527#ifdef TFM_PARTITION_TEST_CORE
528 ctx_stack_TFM_SP_CORE_TEST,
529#endif /* TFM_PARTITION_TEST_CORE */
530#ifdef TFM_PARTITION_TEST_CORE
531 ctx_stack_TFM_SP_CORE_TEST_2,
532#endif /* TFM_PARTITION_TEST_CORE */
533#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
534 ctx_stack_TFM_SP_SECURE_TEST_PARTITION,
535#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
536#ifdef TFM_PARTITION_TEST_CORE_IPC
537 ctx_stack_TFM_SP_IPC_SERVICE_TEST,
538#endif /* TFM_PARTITION_TEST_CORE_IPC */
539#ifdef TFM_PARTITION_TEST_CORE_IPC
540 ctx_stack_TFM_SP_IPC_CLIENT_TEST,
541#endif /* TFM_PARTITION_TEST_CORE_IPC */
542#ifdef TFM_ENABLE_IRQ_TEST
543 ctx_stack_TFM_IRQ_TEST_1,
544#endif /* TFM_ENABLE_IRQ_TEST */
Jamie Fox0e823a02019-10-28 17:28:19 +0000545#ifdef TFM_PARTITION_TEST_SST
546 ctx_stack_TFM_SP_SST_TEST,
547#endif /* TFM_PARTITION_TEST_SST */
Jamie Fox830ff762019-12-16 15:20:22 +0000548#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
549 ctx_stack_TFM_SP_SECURE_CLIENT_2,
550#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
David Hu240f58e2019-10-10 10:55:07 +0800551#ifdef TFM_MULTI_CORE_TEST
552 ctx_stack_TFM_SP_MULTI_CORE_TEST,
553#endif /* TFM_MULTI_CORE_TEST */
Summer Qin423dbef2019-08-22 15:59:35 +0800554};
Edison Ai66fbdf12019-07-08 16:05:07 +0800555#endif /* !defined(TFM_PSA_API) */
556
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200557/**************************************************************************/
Edison Aie728fbf2019-11-13 09:37:12 +0800558/** Dependencies array for Secure Partition */
559/**************************************************************************/
Kevin Pengc73130f2019-10-22 17:27:18 +0800560#ifdef TFM_PARTITION_SECURE_STORAGE
Edison Aie728fbf2019-11-13 09:37:12 +0800561static int32_t dependencies_TFM_SP_STORAGE[] =
562{
563 TFM_CRYPTO_SID,
TudorCretu1ad09372019-08-09 15:35:12 +0100564 TFM_ITS_SET_SID,
565 TFM_ITS_GET_SID,
566 TFM_ITS_GET_INFO_SID,
567 TFM_ITS_REMOVE_SID,
Galanakis, Minosef5118b2020-01-21 15:27:14 +0000568 TFM_SP_PLATFORM_NV_COUNTER_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800569};
Kevin Pengc73130f2019-10-22 17:27:18 +0800570#endif /* TFM_PARTITION_SECURE_STORAGE */
Edison Aie728fbf2019-11-13 09:37:12 +0800571
Jamie Fox98ab4412020-01-17 17:12:30 +0000572#ifdef TFM_PARTITION_CRYPTO
573static int32_t dependencies_TFM_SP_CRYPTO[] =
574{
575 TFM_ITS_SET_SID,
576 TFM_ITS_GET_SID,
577 TFM_ITS_GET_INFO_SID,
578 TFM_ITS_REMOVE_SID,
579};
580#endif /* TFM_PARTITION_CRYPTO */
581
Kevin Pengc73130f2019-10-22 17:27:18 +0800582#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Edison Aie728fbf2019-11-13 09:37:12 +0800583static int32_t dependencies_TFM_SP_INITIAL_ATTESTATION[] =
584{
585 TFM_CRYPTO_SID,
586};
Kevin Pengc73130f2019-10-22 17:27:18 +0800587#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Edison Aie728fbf2019-11-13 09:37:12 +0800588
589#ifdef TFM_PARTITION_TEST_CORE
590static int32_t dependencies_TFM_SP_CORE_TEST[] =
591{
592 SPM_CORE_TEST_2_INVERT_SID,
593 SPM_CORE_TEST_2_GET_EVERY_SECOND_BYTE_SID,
594 SPM_CORE_TEST_2_SLAVE_SERVICE_SID,
595};
596#endif /* TFM_PARTITION_TEST_CORE */
597
598#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
599static int32_t dependencies_TFM_SP_SECURE_TEST_PARTITION[] =
600{
Jamie Fox830ff762019-12-16 15:20:22 +0000601 TFM_SECURE_CLIENT_2_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800602 TFM_CRYPTO_SID,
603 TFM_SST_SET_SID,
604 TFM_SST_GET_SID,
605 TFM_SST_GET_INFO_SID,
606 TFM_SST_REMOVE_SID,
607 TFM_SST_GET_SUPPORT_SID,
608 TFM_ITS_SET_SID,
609 TFM_ITS_GET_SID,
610 TFM_ITS_GET_INFO_SID,
611 TFM_ITS_REMOVE_SID,
612 TFM_ATTEST_GET_TOKEN_SID,
613 TFM_ATTEST_GET_TOKEN_SIZE_SID,
614 TFM_ATTEST_GET_PUBLIC_KEY_SID,
615 TFM_SST_TEST_PREPARE_SID,
Edison Aia765f232019-12-06 15:41:38 +0800616 TFM_SP_PLATFORM_SYSTEM_RESET_SID,
617 TFM_SP_PLATFORM_IOCTL_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800618};
619#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
620
621#ifdef TFM_PARTITION_TEST_CORE_IPC
622static int32_t dependencies_TFM_SP_IPC_CLIENT_TEST[] =
623{
624 IPC_SERVICE_TEST_PSA_ACCESS_APP_READ_ONLY_MEM_SID,
625 IPC_SERVICE_TEST_PSA_ACCESS_APP_MEM_SID,
626 IPC_SERVICE_TEST_BASIC_SID,
627 IPC_SERVICE_TEST_APP_ACCESS_PSA_MEM_SID,
628};
629#endif /* TFM_PARTITION_TEST_CORE_IPC */
630
631#ifdef TFM_PARTITION_TEST_SST
632static int32_t dependencies_TFM_SP_SST_TEST[] =
633{
634 TFM_CRYPTO_SID,
TudorCretu1ad09372019-08-09 15:35:12 +0100635 TFM_ITS_GET_SID,
636 TFM_ITS_REMOVE_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800637};
638#endif /* TFM_PARTITION_TEST_SST */
639
Jamie Foxfafeff72019-12-12 17:17:24 +0000640#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
641static int32_t dependencies_TFM_SP_SECURE_CLIENT_2[] =
642{
643 TFM_ITS_GET_SID,
Jamie Foxc0b66852019-12-19 16:40:41 +0000644 TFM_CRYPTO_SID,
Jamie Foxfafeff72019-12-12 17:17:24 +0000645};
646#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
647
Edison Aie728fbf2019-11-13 09:37:12 +0800648/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800649/** The static data of the partition list */
650/**************************************************************************/
651const struct spm_partition_static_data_t static_data_list[] =
652{
653 {
Edison Aif0501702019-10-11 14:36:42 +0800654#ifdef TFM_PSA_API
655 .psa_framework_version = 0x0100,
656#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800657 .partition_id = TFM_SP_NON_SECURE_ID,
658#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800659#if TFM_MULTI_CORE_TOPOLOGY
660 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
661#else
Summer Qin423dbef2019-08-22 15:59:35 +0800662 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800663#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800664 .partition_priority = TFM_PRIORITY_LOW,
665 .partition_init = tfm_nspm_thread_entry,
666#else
667 .partition_flags = 0,
668#endif
669 },
670
671#ifndef TFM_PSA_API
672 {
673 .partition_id = TFM_SP_CORE_ID,
674 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
675 },
676#endif
677
Kevin Pengc73130f2019-10-22 17:27:18 +0800678#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800679 {
Edison Aif0501702019-10-11 14:36:42 +0800680#ifdef TFM_PSA_API
681 .psa_framework_version = 0x0100,
682#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800683 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800684 .partition_flags = SPM_PART_FLAG_IPC
Galanakis, Minos68eb4062020-02-04 11:12:38 +0000685 | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800686 ,
687 .partition_priority = TFM_PRIORITY(NORMAL),
688 .partition_init = tfm_sst_req_mngr_init,
Galanakis, Minosef5118b2020-01-21 15:27:14 +0000689 .dependencies_num = 6,
Edison Aie728fbf2019-11-13 09:37:12 +0800690 .p_dependencies = dependencies_TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800691 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800692#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800693
Kevin Pengc73130f2019-10-22 17:27:18 +0800694#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100695 {
Edison Aif0501702019-10-11 14:36:42 +0800696#ifdef TFM_PSA_API
697 .psa_framework_version = 0x0100,
698#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800699 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100700 .partition_flags = SPM_PART_FLAG_IPC
701 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
702 ,
703 .partition_priority = TFM_PRIORITY(NORMAL),
704 .partition_init = tfm_its_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800705 .dependencies_num = 0,
706 .p_dependencies = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +0100707 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800708#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100709
Summer Qin423dbef2019-08-22 15:59:35 +0800710#ifdef TFM_PARTITION_AUDIT_LOG
711 {
Edison Aif0501702019-10-11 14:36:42 +0800712#ifdef TFM_PSA_API
713 .psa_framework_version = 0x0100,
714#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800715 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800716 .partition_flags = 0
717 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
718 ,
719 .partition_priority = TFM_PRIORITY(NORMAL),
720 .partition_init = audit_core_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800721 .dependencies_num = 0,
722 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800723 },
724#endif /* TFM_PARTITION_AUDIT_LOG */
725
Kevin Pengc73130f2019-10-22 17:27:18 +0800726#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800727 {
Edison Aif0501702019-10-11 14:36:42 +0800728#ifdef TFM_PSA_API
729 .psa_framework_version = 0x0100,
730#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800731 .partition_id = TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800732 .partition_flags = SPM_PART_FLAG_IPC
733 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
734 ,
735 .partition_priority = TFM_PRIORITY(NORMAL),
736 .partition_init = tfm_crypto_init,
Jamie Fox98ab4412020-01-17 17:12:30 +0000737 .dependencies_num = 4,
738 .p_dependencies = dependencies_TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800739 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800740#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800741
742#ifdef TFM_PARTITION_PLATFORM
743 {
Edison Aif0501702019-10-11 14:36:42 +0800744#ifdef TFM_PSA_API
745 .psa_framework_version = 0x0100,
746#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800747 .partition_id = TFM_SP_PLATFORM,
Mate Toth-Pal179a1562019-11-08 11:40:27 +0100748 .partition_flags = SPM_PART_FLAG_IPC
Summer Qin423dbef2019-08-22 15:59:35 +0800749 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
750 ,
751 .partition_priority = TFM_PRIORITY(NORMAL),
752 .partition_init = platform_sp_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800753 .dependencies_num = 0,
754 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800755 },
756#endif /* TFM_PARTITION_PLATFORM */
757
Kevin Pengc73130f2019-10-22 17:27:18 +0800758#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800759 {
Edison Aif0501702019-10-11 14:36:42 +0800760#ifdef TFM_PSA_API
761 .psa_framework_version = 0x0100,
762#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800763 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800764 .partition_flags = SPM_PART_FLAG_IPC
765 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
766 ,
767 .partition_priority = TFM_PRIORITY(NORMAL),
768 .partition_init = attest_partition_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800769 .dependencies_num = 1,
770 .p_dependencies = dependencies_TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800771 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800772#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800773
774#ifdef TFM_PARTITION_TEST_CORE
775 {
Edison Aif0501702019-10-11 14:36:42 +0800776#ifdef TFM_PSA_API
777 .psa_framework_version = 0x0100,
778#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800779 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800780 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200781 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800782 ,
783 .partition_priority = TFM_PRIORITY(NORMAL),
784 .partition_init = core_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800785 .dependencies_num = 3,
786 .p_dependencies = dependencies_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800787 },
788#endif /* TFM_PARTITION_TEST_CORE */
789
790#ifdef TFM_PARTITION_TEST_CORE
791 {
Edison Aif0501702019-10-11 14:36:42 +0800792#ifdef TFM_PSA_API
793 .psa_framework_version = 0x0100,
794#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800795 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800796 .partition_flags = SPM_PART_FLAG_IPC
797 | SPM_PART_FLAG_APP_ROT
798 ,
799 .partition_priority = TFM_PRIORITY(NORMAL),
800 .partition_init = core_test_2_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800801 .dependencies_num = 0,
802 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800803 },
804#endif /* TFM_PARTITION_TEST_CORE */
805
806#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
807 {
Edison Aif0501702019-10-11 14:36:42 +0800808#ifdef TFM_PSA_API
809 .psa_framework_version = 0x0100,
810#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800811 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800812 .partition_flags = SPM_PART_FLAG_IPC
813 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
814 ,
815 .partition_priority = TFM_PRIORITY(NORMAL),
816 .partition_init = tfm_secure_client_service_init,
Jamie Fox830ff762019-12-16 15:20:22 +0000817 .dependencies_num = 17,
Edison Aie728fbf2019-11-13 09:37:12 +0800818 .p_dependencies = dependencies_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800819 },
820#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
821
822#ifdef TFM_PARTITION_TEST_CORE_IPC
823 {
Edison Aif0501702019-10-11 14:36:42 +0800824#ifdef TFM_PSA_API
825 .psa_framework_version = 0x0100,
826#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800827 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800828 .partition_flags = SPM_PART_FLAG_IPC
829 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
830 ,
831 .partition_priority = TFM_PRIORITY(HIGH),
832 .partition_init = ipc_service_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800833 .dependencies_num = 0,
834 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800835 },
836#endif /* TFM_PARTITION_TEST_CORE_IPC */
837
838#ifdef TFM_PARTITION_TEST_CORE_IPC
839 {
Edison Aif0501702019-10-11 14:36:42 +0800840#ifdef TFM_PSA_API
841 .psa_framework_version = 0x0100,
842#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800843 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800844 .partition_flags = SPM_PART_FLAG_IPC
845 | SPM_PART_FLAG_APP_ROT
846 ,
847 .partition_priority = TFM_PRIORITY(NORMAL),
848 .partition_init = ipc_client_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800849 .dependencies_num = 4,
850 .p_dependencies = dependencies_TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800851 },
852#endif /* TFM_PARTITION_TEST_CORE_IPC */
853
854#ifdef TFM_ENABLE_IRQ_TEST
855 {
Edison Aif0501702019-10-11 14:36:42 +0800856#ifdef TFM_PSA_API
857 .psa_framework_version = 0x0100,
858#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800859 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800860 .partition_flags = SPM_PART_FLAG_IPC
861 | SPM_PART_FLAG_APP_ROT
862 ,
863 .partition_priority = TFM_PRIORITY(NORMAL),
864 .partition_init = tfm_irq_test_1_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800865 .dependencies_num = 0,
866 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800867 },
868#endif /* TFM_ENABLE_IRQ_TEST */
869
Jamie Fox0e823a02019-10-28 17:28:19 +0000870#ifdef TFM_PARTITION_TEST_SST
871 {
872#ifdef TFM_PSA_API
873 .psa_framework_version = 0x0100,
874#endif /* defined(TFM_PSA_API) */
875 .partition_id = TFM_SP_SST_TEST,
876 .partition_flags = SPM_PART_FLAG_IPC
877 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
878 ,
879 .partition_priority = TFM_PRIORITY(NORMAL),
880 .partition_init = tfm_sst_test_init,
TudorCretu1ad09372019-08-09 15:35:12 +0100881 .dependencies_num = 3,
Edison Aie728fbf2019-11-13 09:37:12 +0800882 .p_dependencies = dependencies_TFM_SP_SST_TEST,
Jamie Fox0e823a02019-10-28 17:28:19 +0000883 },
884#endif /* TFM_PARTITION_TEST_SST */
885
Jamie Fox830ff762019-12-16 15:20:22 +0000886#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
887 {
888#ifdef TFM_PSA_API
889 .psa_framework_version = 0x0100,
890#endif /* defined(TFM_PSA_API) */
891 .partition_id = TFM_SP_SECURE_CLIENT_2,
892 .partition_flags = SPM_PART_FLAG_IPC
893 | SPM_PART_FLAG_APP_ROT
894 ,
895 .partition_priority = TFM_PRIORITY(NORMAL),
896 .partition_init = tfm_secure_client_2_init,
Jamie Foxc0b66852019-12-19 16:40:41 +0000897 .dependencies_num = 2,
Jamie Foxfafeff72019-12-12 17:17:24 +0000898 .p_dependencies = dependencies_TFM_SP_SECURE_CLIENT_2,
Jamie Fox830ff762019-12-16 15:20:22 +0000899 },
900#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
901
David Hu240f58e2019-10-10 10:55:07 +0800902#ifdef TFM_MULTI_CORE_TEST
903 {
904#ifdef TFM_PSA_API
905 .psa_framework_version = 0x0100,
906#endif /* defined(TFM_PSA_API) */
907 .partition_id = TFM_SP_MULTI_CORE_TEST,
908 .partition_flags = SPM_PART_FLAG_IPC
909 | SPM_PART_FLAG_APP_ROT
910 ,
911 .partition_priority = TFM_PRIORITY(NORMAL),
912 .partition_init = multi_core_test_main,
913 .dependencies_num = 0,
914 .p_dependencies = NULL,
915 },
916#endif /* TFM_MULTI_CORE_TEST */
917
Summer Qin423dbef2019-08-22 15:59:35 +0800918};
919
920/**************************************************************************/
921/** The platform data of the partition list */
922/**************************************************************************/
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100923#ifdef TFM_PARTITION_AUDIT_LOG
924const struct tfm_spm_partition_platform_data_t *
925 platform_data_list_TFM_SP_AUDIT_LOG[] =
926{
927#ifdef AUDIT_UART_REDIRECTION
928 TFM_PERIPHERAL_UART1,
929#endif /* AUDIT_UART_REDIRECTION */
930 NULL
931};
932#endif /* TFM_PARTITION_AUDIT_LOG */
933
934#ifdef TFM_PARTITION_TEST_CORE
935const struct tfm_spm_partition_platform_data_t *
936 platform_data_list_TFM_SP_CORE_TEST[] =
937{
938 TFM_PERIPHERAL_FPGA_IO,
939 NULL
940};
941#endif /* TFM_PARTITION_TEST_CORE */
942
943#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
944const struct tfm_spm_partition_platform_data_t *
945 platform_data_list_TFM_SP_SECURE_TEST_PARTITION[] =
946{
947 TFM_PERIPHERAL_STD_UART,
948 NULL
949};
950#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
951
952#ifdef TFM_ENABLE_IRQ_TEST
953const struct tfm_spm_partition_platform_data_t *
954 platform_data_list_TFM_IRQ_TEST_1[] =
955{
956 TFM_PERIPHERAL_TIMER0,
957 NULL
958};
959#endif /* TFM_ENABLE_IRQ_TEST */
960
961const struct tfm_spm_partition_platform_data_t **platform_data_list_list[] =
Summer Qin423dbef2019-08-22 15:59:35 +0800962{
963 NULL,
964
965#ifndef TFM_PSA_API
966 NULL,
967#endif
968
Kevin Pengc73130f2019-10-22 17:27:18 +0800969#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800970 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800971#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800972
Kevin Pengc73130f2019-10-22 17:27:18 +0800973#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100974 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800975#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100976
Summer Qin423dbef2019-08-22 15:59:35 +0800977#ifdef TFM_PARTITION_AUDIT_LOG
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100978 platform_data_list_TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800979#endif /* TFM_PARTITION_AUDIT_LOG */
980
Kevin Pengc73130f2019-10-22 17:27:18 +0800981#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800982 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800983#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800984
985#ifdef TFM_PARTITION_PLATFORM
986 NULL,
987#endif /* TFM_PARTITION_PLATFORM */
988
Kevin Pengc73130f2019-10-22 17:27:18 +0800989#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800990 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800991#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800992
993#ifdef TFM_PARTITION_TEST_CORE
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100994 platform_data_list_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800995#endif /* TFM_PARTITION_TEST_CORE */
996
997#ifdef TFM_PARTITION_TEST_CORE
998 NULL,
999#endif /* TFM_PARTITION_TEST_CORE */
1000
1001#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001002 platform_data_list_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +08001003#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1004
1005#ifdef TFM_PARTITION_TEST_CORE_IPC
1006 NULL,
1007#endif /* TFM_PARTITION_TEST_CORE_IPC */
1008
1009#ifdef TFM_PARTITION_TEST_CORE_IPC
1010 NULL,
1011#endif /* TFM_PARTITION_TEST_CORE_IPC */
1012
1013#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001014 platform_data_list_TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +08001015#endif /* TFM_ENABLE_IRQ_TEST */
1016
Jamie Fox0e823a02019-10-28 17:28:19 +00001017#ifdef TFM_PARTITION_TEST_SST
1018 NULL,
1019#endif /* TFM_PARTITION_TEST_SST */
1020
Jamie Fox830ff762019-12-16 15:20:22 +00001021#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1022 NULL,
1023#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1024
David Hu240f58e2019-10-10 10:55:07 +08001025#ifdef TFM_MULTI_CORE_TEST
1026 NULL,
1027#endif /* TFM_MULTI_CORE_TEST */
1028
Summer Qin423dbef2019-08-22 15:59:35 +08001029};
1030
1031/**************************************************************************/
1032/** The memory data of the partition list */
1033/**************************************************************************/
1034#ifdef TFM_PSA_API
1035const struct tfm_spm_partition_memory_data_t memory_data_list[] =
1036{
1037 {
1038 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
1039 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
1040 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
1041 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001042#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +08001043 {
Edison Aib2134e62019-10-11 18:24:47 +08001044 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
1045 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
1046 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
1047 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
1048 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
1049 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
1050 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
1051 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
1052 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
1053 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001054 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001055#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +08001056
Kevin Pengc73130f2019-10-22 17:27:18 +08001057#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +01001058 {
Edison Aib2134e62019-10-11 18:24:47 +08001059 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
1060 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
1061 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
1062 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
1063 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
1064 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
1065 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
1066 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
1067 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
1068 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +01001069 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001070#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001071
Summer Qin423dbef2019-08-22 15:59:35 +08001072#ifdef TFM_PARTITION_AUDIT_LOG
1073 {
Edison Aib2134e62019-10-11 18:24:47 +08001074 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
1075 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
1076 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
1077 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
1078 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
1079 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
1080 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
1081 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
1082 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
1083 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001084 },
1085#endif /* TFM_PARTITION_AUDIT_LOG */
1086
Kevin Pengc73130f2019-10-22 17:27:18 +08001087#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +08001088 {
Edison Aib2134e62019-10-11 18:24:47 +08001089 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
1090 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
1091 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
1092 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
1093 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
1094 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
1095 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
1096 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
1097 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
1098 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001099 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001100#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +08001101
1102#ifdef TFM_PARTITION_PLATFORM
1103 {
Edison Aib2134e62019-10-11 18:24:47 +08001104 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
1105 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
1106 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
1107 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
1108 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
1109 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
1110 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
1111 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
1112 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
1113 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001114 },
1115#endif /* TFM_PARTITION_PLATFORM */
1116
Kevin Pengc73130f2019-10-22 17:27:18 +08001117#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +08001118 {
Edison Aib2134e62019-10-11 18:24:47 +08001119 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
1120 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
1121 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
1122 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
1123 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
1124 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
1125 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
1126 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
1127 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
1128 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001129 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001130#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +08001131
1132#ifdef TFM_PARTITION_TEST_CORE
1133 {
Edison Aib2134e62019-10-11 18:24:47 +08001134 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
1135 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
1136 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
1137 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
1138 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
1139 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1140 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1141 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1142 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1143 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001144 },
1145#endif /* TFM_PARTITION_TEST_CORE */
1146
1147#ifdef TFM_PARTITION_TEST_CORE
1148 {
Edison Aib2134e62019-10-11 18:24:47 +08001149 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
1150 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
1151 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
1152 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
1153 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
1154 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
1155 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
1156 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
1157 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
1158 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001159 },
1160#endif /* TFM_PARTITION_TEST_CORE */
1161
1162#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1163 {
Edison Aib2134e62019-10-11 18:24:47 +08001164 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
1165 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
1166 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
1167 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
1168 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
1169 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
1170 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
1171 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
1172 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
1173 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001174 },
1175#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1176
1177#ifdef TFM_PARTITION_TEST_CORE_IPC
1178 {
Edison Aib2134e62019-10-11 18:24:47 +08001179 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
1180 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
1181 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
1182 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
1183 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
1184 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
1185 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
1186 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
1187 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
1188 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001189 },
1190#endif /* TFM_PARTITION_TEST_CORE_IPC */
1191
1192#ifdef TFM_PARTITION_TEST_CORE_IPC
1193 {
Edison Aib2134e62019-10-11 18:24:47 +08001194 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
1195 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
1196 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
1197 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
1198 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
1199 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
1200 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
1201 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
1202 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
1203 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001204 },
1205#endif /* TFM_PARTITION_TEST_CORE_IPC */
1206
1207#ifdef TFM_ENABLE_IRQ_TEST
1208 {
Edison Aib2134e62019-10-11 18:24:47 +08001209 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
1210 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
1211 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
1212 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
1213 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
1214 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
1215 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
1216 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
1217 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
1218 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001219 },
1220#endif /* TFM_ENABLE_IRQ_TEST */
1221
Jamie Fox0e823a02019-10-28 17:28:19 +00001222#ifdef TFM_PARTITION_TEST_SST
1223 {
1224 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
1225 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
1226 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
1227 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
1228 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
1229 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
1230 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
1231 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
1232 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
1233 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
1234 },
1235#endif /* TFM_PARTITION_TEST_SST */
1236
Jamie Fox830ff762019-12-16 15:20:22 +00001237#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1238 {
1239 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Base),
1240 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit),
1241 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base),
1242 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit),
1243 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base),
1244 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit),
1245 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base),
1246 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit),
1247 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base),
1248 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit),
1249 },
1250#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1251
David Hu240f58e2019-10-10 10:55:07 +08001252#ifdef TFM_MULTI_CORE_TEST
1253 {
1254 .code_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$Base),
1255 .code_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$Limit),
1256 .ro_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$RO$$Base),
1257 .ro_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$RO$$Limit),
1258 .rw_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$RW$$Base),
1259 .rw_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1260 .zi_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1261 .zi_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1262 .stack_bottom = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1263 .stack_top = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
1264 },
1265#endif /* TFM_MULTI_CORE_TEST */
1266
Summer Qin423dbef2019-08-22 15:59:35 +08001267};
1268#endif /* defined(TFM_PSA_API) */
1269
1270/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001271/** The partition list for the DB */
1272/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +08001273static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001274{
TTornblom83d96372019-11-19 12:53:16 +01001275 {{0}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001276#ifndef TFM_PSA_API
TTornblom83d96372019-11-19 12:53:16 +01001277 {{0}}, /* placeholder for TF-M Core internal partition */
1278#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001279
1280 /* -----------------------------------------------------------------------*/
1281 /* - Partition DB record for TFM_SP_STORAGE */
1282 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001283#ifdef TFM_PARTITION_SECURE_STORAGE
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001284 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001285 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001286 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001287 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001288 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001289 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001290#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001291
1292 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +01001293 /* - Partition DB record for TFM_SP_ITS */
1294 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001295#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +01001296 {
1297 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001298 .runtime_data = {0},
TudorCretufb182bc2019-07-05 17:34:12 +01001299 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001300 .platform_data_list = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +01001301 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001302#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001303
1304 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001305 /* - Partition DB record for TFM_SP_AUDIT_LOG */
1306 /* -----------------------------------------------------------------------*/
1307#ifdef TFM_PARTITION_AUDIT_LOG
1308 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001309 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001310 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001311 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001312 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001313 },
1314#endif /* TFM_PARTITION_AUDIT_LOG */
1315
1316 /* -----------------------------------------------------------------------*/
1317 /* - Partition DB record for TFM_SP_CRYPTO */
1318 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001319#ifdef TFM_PARTITION_CRYPTO
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001320 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001321 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001322 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001323 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001324 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001325 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001326#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001327
1328 /* -----------------------------------------------------------------------*/
1329 /* - Partition DB record for TFM_SP_PLATFORM */
1330 /* -----------------------------------------------------------------------*/
1331#ifdef TFM_PARTITION_PLATFORM
1332 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001333 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001334 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001335 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001336 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001337 },
1338#endif /* TFM_PARTITION_PLATFORM */
1339
1340 /* -----------------------------------------------------------------------*/
1341 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
1342 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001343#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001344 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001345 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001346 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001347 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001348 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001349 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001350#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001351
1352 /* -----------------------------------------------------------------------*/
1353 /* - Partition DB record for TFM_SP_CORE_TEST */
1354 /* -----------------------------------------------------------------------*/
1355#ifdef TFM_PARTITION_TEST_CORE
1356 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001357 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001358 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001359 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001360 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001361 },
1362#endif /* TFM_PARTITION_TEST_CORE */
1363
1364 /* -----------------------------------------------------------------------*/
1365 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1366 /* -----------------------------------------------------------------------*/
1367#ifdef TFM_PARTITION_TEST_CORE
1368 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001369 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001370 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001371 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001372 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001373 },
1374#endif /* TFM_PARTITION_TEST_CORE */
1375
1376 /* -----------------------------------------------------------------------*/
1377 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1378 /* -----------------------------------------------------------------------*/
1379#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1380 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001381 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001382 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001383 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001384 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001385 },
1386#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1387
1388 /* -----------------------------------------------------------------------*/
1389 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1390 /* -----------------------------------------------------------------------*/
1391#ifdef TFM_PARTITION_TEST_CORE_IPC
1392 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001393 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001394 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001395 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001396 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001397 },
1398#endif /* TFM_PARTITION_TEST_CORE_IPC */
1399
1400 /* -----------------------------------------------------------------------*/
1401 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1402 /* -----------------------------------------------------------------------*/
1403#ifdef TFM_PARTITION_TEST_CORE_IPC
1404 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001405 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001406 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001407 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001408 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001409 },
1410#endif /* TFM_PARTITION_TEST_CORE_IPC */
1411
1412 /* -----------------------------------------------------------------------*/
1413 /* - Partition DB record for TFM_IRQ_TEST_1 */
1414 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001415#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001416 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001417 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001418 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001419 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001420 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001421 },
David Hu33f2fd22019-08-16 15:32:39 +08001422#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001423
Jamie Fox0e823a02019-10-28 17:28:19 +00001424 /* -----------------------------------------------------------------------*/
1425 /* - Partition DB record for TFM_SP_SST_TEST */
1426 /* -----------------------------------------------------------------------*/
1427#ifdef TFM_PARTITION_TEST_SST
1428 {
1429 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001430 .runtime_data = {0},
Jamie Fox0e823a02019-10-28 17:28:19 +00001431 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001432 .platform_data_list = NULL,
Jamie Fox0e823a02019-10-28 17:28:19 +00001433 },
1434#endif /* TFM_PARTITION_TEST_SST */
1435
Jamie Fox830ff762019-12-16 15:20:22 +00001436 /* -----------------------------------------------------------------------*/
1437 /* - Partition DB record for TFM_SP_SECURE_CLIENT_2 */
1438 /* -----------------------------------------------------------------------*/
1439#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1440 {
1441 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001442 .runtime_data = {0},
Jamie Fox830ff762019-12-16 15:20:22 +00001443 .static_data = NULL,
1444 .platform_data_list = NULL,
1445 },
1446#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1447
David Hu240f58e2019-10-10 10:55:07 +08001448 /* -----------------------------------------------------------------------*/
1449 /* - Partition DB record for TFM_SP_MULTI_CORE_TEST */
1450 /* -----------------------------------------------------------------------*/
1451#ifdef TFM_MULTI_CORE_TEST
1452 {
1453 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001454 .runtime_data = {0},
David Hu240f58e2019-10-10 10:55:07 +08001455 .static_data = NULL,
1456 .platform_data_list = NULL,
1457 },
1458#endif /* TFM_MULTI_CORE_TEST */
1459
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001460};
1461
1462struct spm_partition_db_t g_spm_partition_db = {
1463 .is_init = 0,
1464 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001465#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001466 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001467#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001468 .partitions = partition_list,
1469};
1470
1471#endif /* __TFM_SPM_DB_INC__ */