blob: d4c85d5f90bd74adb112c4905a0f0112c4db43ad [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,
Edison Aie728fbf2019-11-13 09:37:12 +0800568};
Kevin Pengc73130f2019-10-22 17:27:18 +0800569#endif /* TFM_PARTITION_SECURE_STORAGE */
Edison Aie728fbf2019-11-13 09:37:12 +0800570
Jamie Fox98ab4412020-01-17 17:12:30 +0000571#ifdef TFM_PARTITION_CRYPTO
572static int32_t dependencies_TFM_SP_CRYPTO[] =
573{
574 TFM_ITS_SET_SID,
575 TFM_ITS_GET_SID,
576 TFM_ITS_GET_INFO_SID,
577 TFM_ITS_REMOVE_SID,
578};
579#endif /* TFM_PARTITION_CRYPTO */
580
Kevin Pengc73130f2019-10-22 17:27:18 +0800581#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Edison Aie728fbf2019-11-13 09:37:12 +0800582static int32_t dependencies_TFM_SP_INITIAL_ATTESTATION[] =
583{
584 TFM_CRYPTO_SID,
585};
Kevin Pengc73130f2019-10-22 17:27:18 +0800586#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Edison Aie728fbf2019-11-13 09:37:12 +0800587
588#ifdef TFM_PARTITION_TEST_CORE
589static int32_t dependencies_TFM_SP_CORE_TEST[] =
590{
591 SPM_CORE_TEST_2_INVERT_SID,
592 SPM_CORE_TEST_2_GET_EVERY_SECOND_BYTE_SID,
593 SPM_CORE_TEST_2_SLAVE_SERVICE_SID,
594};
595#endif /* TFM_PARTITION_TEST_CORE */
596
597#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
598static int32_t dependencies_TFM_SP_SECURE_TEST_PARTITION[] =
599{
Jamie Fox830ff762019-12-16 15:20:22 +0000600 TFM_SECURE_CLIENT_2_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800601 TFM_CRYPTO_SID,
602 TFM_SST_SET_SID,
603 TFM_SST_GET_SID,
604 TFM_SST_GET_INFO_SID,
605 TFM_SST_REMOVE_SID,
606 TFM_SST_GET_SUPPORT_SID,
607 TFM_ITS_SET_SID,
608 TFM_ITS_GET_SID,
609 TFM_ITS_GET_INFO_SID,
610 TFM_ITS_REMOVE_SID,
611 TFM_ATTEST_GET_TOKEN_SID,
612 TFM_ATTEST_GET_TOKEN_SIZE_SID,
613 TFM_ATTEST_GET_PUBLIC_KEY_SID,
614 TFM_SST_TEST_PREPARE_SID,
Edison Aia765f232019-12-06 15:41:38 +0800615 TFM_SP_PLATFORM_SYSTEM_RESET_SID,
616 TFM_SP_PLATFORM_IOCTL_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800617};
618#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
619
620#ifdef TFM_PARTITION_TEST_CORE_IPC
621static int32_t dependencies_TFM_SP_IPC_CLIENT_TEST[] =
622{
623 IPC_SERVICE_TEST_PSA_ACCESS_APP_READ_ONLY_MEM_SID,
624 IPC_SERVICE_TEST_PSA_ACCESS_APP_MEM_SID,
625 IPC_SERVICE_TEST_BASIC_SID,
626 IPC_SERVICE_TEST_APP_ACCESS_PSA_MEM_SID,
627};
628#endif /* TFM_PARTITION_TEST_CORE_IPC */
629
630#ifdef TFM_PARTITION_TEST_SST
631static int32_t dependencies_TFM_SP_SST_TEST[] =
632{
633 TFM_CRYPTO_SID,
TudorCretu1ad09372019-08-09 15:35:12 +0100634 TFM_ITS_GET_SID,
635 TFM_ITS_REMOVE_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800636};
637#endif /* TFM_PARTITION_TEST_SST */
638
Jamie Foxfafeff72019-12-12 17:17:24 +0000639#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
640static int32_t dependencies_TFM_SP_SECURE_CLIENT_2[] =
641{
642 TFM_ITS_GET_SID,
Jamie Foxc0b66852019-12-19 16:40:41 +0000643 TFM_CRYPTO_SID,
Jamie Foxfafeff72019-12-12 17:17:24 +0000644};
645#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
646
Edison Aie728fbf2019-11-13 09:37:12 +0800647/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800648/** The static data of the partition list */
649/**************************************************************************/
650const struct spm_partition_static_data_t static_data_list[] =
651{
652 {
Edison Aif0501702019-10-11 14:36:42 +0800653#ifdef TFM_PSA_API
654 .psa_framework_version = 0x0100,
655#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800656 .partition_id = TFM_SP_NON_SECURE_ID,
657#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800658#if TFM_MULTI_CORE_TOPOLOGY
659 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
660#else
Summer Qin423dbef2019-08-22 15:59:35 +0800661 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800662#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800663 .partition_priority = TFM_PRIORITY_LOW,
664 .partition_init = tfm_nspm_thread_entry,
665#else
666 .partition_flags = 0,
667#endif
668 },
669
670#ifndef TFM_PSA_API
671 {
672 .partition_id = TFM_SP_CORE_ID,
673 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
674 },
675#endif
676
Kevin Pengc73130f2019-10-22 17:27:18 +0800677#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800678 {
Edison Aif0501702019-10-11 14:36:42 +0800679#ifdef TFM_PSA_API
680 .psa_framework_version = 0x0100,
681#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800682 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800683 .partition_flags = SPM_PART_FLAG_IPC
684 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
685 ,
686 .partition_priority = TFM_PRIORITY(NORMAL),
687 .partition_init = tfm_sst_req_mngr_init,
TudorCretu1ad09372019-08-09 15:35:12 +0100688 .dependencies_num = 5,
Edison Aie728fbf2019-11-13 09:37:12 +0800689 .p_dependencies = dependencies_TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800690 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800691#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800692
Kevin Pengc73130f2019-10-22 17:27:18 +0800693#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100694 {
Edison Aif0501702019-10-11 14:36:42 +0800695#ifdef TFM_PSA_API
696 .psa_framework_version = 0x0100,
697#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800698 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100699 .partition_flags = SPM_PART_FLAG_IPC
700 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
701 ,
702 .partition_priority = TFM_PRIORITY(NORMAL),
703 .partition_init = tfm_its_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800704 .dependencies_num = 0,
705 .p_dependencies = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +0100706 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800707#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100708
Summer Qin423dbef2019-08-22 15:59:35 +0800709#ifdef TFM_PARTITION_AUDIT_LOG
710 {
Edison Aif0501702019-10-11 14:36:42 +0800711#ifdef TFM_PSA_API
712 .psa_framework_version = 0x0100,
713#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800714 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800715 .partition_flags = 0
716 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
717 ,
718 .partition_priority = TFM_PRIORITY(NORMAL),
719 .partition_init = audit_core_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800720 .dependencies_num = 0,
721 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800722 },
723#endif /* TFM_PARTITION_AUDIT_LOG */
724
Kevin Pengc73130f2019-10-22 17:27:18 +0800725#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800726 {
Edison Aif0501702019-10-11 14:36:42 +0800727#ifdef TFM_PSA_API
728 .psa_framework_version = 0x0100,
729#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800730 .partition_id = TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800731 .partition_flags = SPM_PART_FLAG_IPC
732 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
733 ,
734 .partition_priority = TFM_PRIORITY(NORMAL),
735 .partition_init = tfm_crypto_init,
Jamie Fox98ab4412020-01-17 17:12:30 +0000736 .dependencies_num = 4,
737 .p_dependencies = dependencies_TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800738 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800739#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800740
741#ifdef TFM_PARTITION_PLATFORM
742 {
Edison Aif0501702019-10-11 14:36:42 +0800743#ifdef TFM_PSA_API
744 .psa_framework_version = 0x0100,
745#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800746 .partition_id = TFM_SP_PLATFORM,
Mate Toth-Pal179a1562019-11-08 11:40:27 +0100747 .partition_flags = SPM_PART_FLAG_IPC
Summer Qin423dbef2019-08-22 15:59:35 +0800748 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
749 ,
750 .partition_priority = TFM_PRIORITY(NORMAL),
751 .partition_init = platform_sp_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800752 .dependencies_num = 0,
753 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800754 },
755#endif /* TFM_PARTITION_PLATFORM */
756
Kevin Pengc73130f2019-10-22 17:27:18 +0800757#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800758 {
Edison Aif0501702019-10-11 14:36:42 +0800759#ifdef TFM_PSA_API
760 .psa_framework_version = 0x0100,
761#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800762 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800763 .partition_flags = SPM_PART_FLAG_IPC
764 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
765 ,
766 .partition_priority = TFM_PRIORITY(NORMAL),
767 .partition_init = attest_partition_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800768 .dependencies_num = 1,
769 .p_dependencies = dependencies_TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800770 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800771#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800772
773#ifdef TFM_PARTITION_TEST_CORE
774 {
Edison Aif0501702019-10-11 14:36:42 +0800775#ifdef TFM_PSA_API
776 .psa_framework_version = 0x0100,
777#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800778 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800779 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200780 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800781 ,
782 .partition_priority = TFM_PRIORITY(NORMAL),
783 .partition_init = core_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800784 .dependencies_num = 3,
785 .p_dependencies = dependencies_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800786 },
787#endif /* TFM_PARTITION_TEST_CORE */
788
789#ifdef TFM_PARTITION_TEST_CORE
790 {
Edison Aif0501702019-10-11 14:36:42 +0800791#ifdef TFM_PSA_API
792 .psa_framework_version = 0x0100,
793#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800794 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800795 .partition_flags = SPM_PART_FLAG_IPC
796 | SPM_PART_FLAG_APP_ROT
797 ,
798 .partition_priority = TFM_PRIORITY(NORMAL),
799 .partition_init = core_test_2_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800800 .dependencies_num = 0,
801 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800802 },
803#endif /* TFM_PARTITION_TEST_CORE */
804
805#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
806 {
Edison Aif0501702019-10-11 14:36:42 +0800807#ifdef TFM_PSA_API
808 .psa_framework_version = 0x0100,
809#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800810 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800811 .partition_flags = SPM_PART_FLAG_IPC
812 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
813 ,
814 .partition_priority = TFM_PRIORITY(NORMAL),
815 .partition_init = tfm_secure_client_service_init,
Jamie Fox830ff762019-12-16 15:20:22 +0000816 .dependencies_num = 17,
Edison Aie728fbf2019-11-13 09:37:12 +0800817 .p_dependencies = dependencies_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800818 },
819#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
820
821#ifdef TFM_PARTITION_TEST_CORE_IPC
822 {
Edison Aif0501702019-10-11 14:36:42 +0800823#ifdef TFM_PSA_API
824 .psa_framework_version = 0x0100,
825#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800826 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800827 .partition_flags = SPM_PART_FLAG_IPC
828 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
829 ,
830 .partition_priority = TFM_PRIORITY(HIGH),
831 .partition_init = ipc_service_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800832 .dependencies_num = 0,
833 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800834 },
835#endif /* TFM_PARTITION_TEST_CORE_IPC */
836
837#ifdef TFM_PARTITION_TEST_CORE_IPC
838 {
Edison Aif0501702019-10-11 14:36:42 +0800839#ifdef TFM_PSA_API
840 .psa_framework_version = 0x0100,
841#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800842 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800843 .partition_flags = SPM_PART_FLAG_IPC
844 | SPM_PART_FLAG_APP_ROT
845 ,
846 .partition_priority = TFM_PRIORITY(NORMAL),
847 .partition_init = ipc_client_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800848 .dependencies_num = 4,
849 .p_dependencies = dependencies_TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800850 },
851#endif /* TFM_PARTITION_TEST_CORE_IPC */
852
853#ifdef TFM_ENABLE_IRQ_TEST
854 {
Edison Aif0501702019-10-11 14:36:42 +0800855#ifdef TFM_PSA_API
856 .psa_framework_version = 0x0100,
857#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800858 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800859 .partition_flags = SPM_PART_FLAG_IPC
860 | SPM_PART_FLAG_APP_ROT
861 ,
862 .partition_priority = TFM_PRIORITY(NORMAL),
863 .partition_init = tfm_irq_test_1_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800864 .dependencies_num = 0,
865 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800866 },
867#endif /* TFM_ENABLE_IRQ_TEST */
868
Jamie Fox0e823a02019-10-28 17:28:19 +0000869#ifdef TFM_PARTITION_TEST_SST
870 {
871#ifdef TFM_PSA_API
872 .psa_framework_version = 0x0100,
873#endif /* defined(TFM_PSA_API) */
874 .partition_id = TFM_SP_SST_TEST,
875 .partition_flags = SPM_PART_FLAG_IPC
876 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
877 ,
878 .partition_priority = TFM_PRIORITY(NORMAL),
879 .partition_init = tfm_sst_test_init,
TudorCretu1ad09372019-08-09 15:35:12 +0100880 .dependencies_num = 3,
Edison Aie728fbf2019-11-13 09:37:12 +0800881 .p_dependencies = dependencies_TFM_SP_SST_TEST,
Jamie Fox0e823a02019-10-28 17:28:19 +0000882 },
883#endif /* TFM_PARTITION_TEST_SST */
884
Jamie Fox830ff762019-12-16 15:20:22 +0000885#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
886 {
887#ifdef TFM_PSA_API
888 .psa_framework_version = 0x0100,
889#endif /* defined(TFM_PSA_API) */
890 .partition_id = TFM_SP_SECURE_CLIENT_2,
891 .partition_flags = SPM_PART_FLAG_IPC
892 | SPM_PART_FLAG_APP_ROT
893 ,
894 .partition_priority = TFM_PRIORITY(NORMAL),
895 .partition_init = tfm_secure_client_2_init,
Jamie Foxc0b66852019-12-19 16:40:41 +0000896 .dependencies_num = 2,
Jamie Foxfafeff72019-12-12 17:17:24 +0000897 .p_dependencies = dependencies_TFM_SP_SECURE_CLIENT_2,
Jamie Fox830ff762019-12-16 15:20:22 +0000898 },
899#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
900
David Hu240f58e2019-10-10 10:55:07 +0800901#ifdef TFM_MULTI_CORE_TEST
902 {
903#ifdef TFM_PSA_API
904 .psa_framework_version = 0x0100,
905#endif /* defined(TFM_PSA_API) */
906 .partition_id = TFM_SP_MULTI_CORE_TEST,
907 .partition_flags = SPM_PART_FLAG_IPC
908 | SPM_PART_FLAG_APP_ROT
909 ,
910 .partition_priority = TFM_PRIORITY(NORMAL),
911 .partition_init = multi_core_test_main,
912 .dependencies_num = 0,
913 .p_dependencies = NULL,
914 },
915#endif /* TFM_MULTI_CORE_TEST */
916
Summer Qin423dbef2019-08-22 15:59:35 +0800917};
918
919/**************************************************************************/
920/** The platform data of the partition list */
921/**************************************************************************/
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100922#ifdef TFM_PARTITION_AUDIT_LOG
923const struct tfm_spm_partition_platform_data_t *
924 platform_data_list_TFM_SP_AUDIT_LOG[] =
925{
926#ifdef AUDIT_UART_REDIRECTION
927 TFM_PERIPHERAL_UART1,
928#endif /* AUDIT_UART_REDIRECTION */
929 NULL
930};
931#endif /* TFM_PARTITION_AUDIT_LOG */
932
933#ifdef TFM_PARTITION_TEST_CORE
934const struct tfm_spm_partition_platform_data_t *
935 platform_data_list_TFM_SP_CORE_TEST[] =
936{
937 TFM_PERIPHERAL_FPGA_IO,
938 NULL
939};
940#endif /* TFM_PARTITION_TEST_CORE */
941
942#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
943const struct tfm_spm_partition_platform_data_t *
944 platform_data_list_TFM_SP_SECURE_TEST_PARTITION[] =
945{
946 TFM_PERIPHERAL_STD_UART,
947 NULL
948};
949#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
950
951#ifdef TFM_ENABLE_IRQ_TEST
952const struct tfm_spm_partition_platform_data_t *
953 platform_data_list_TFM_IRQ_TEST_1[] =
954{
955 TFM_PERIPHERAL_TIMER0,
956 NULL
957};
958#endif /* TFM_ENABLE_IRQ_TEST */
959
960const struct tfm_spm_partition_platform_data_t **platform_data_list_list[] =
Summer Qin423dbef2019-08-22 15:59:35 +0800961{
962 NULL,
963
964#ifndef TFM_PSA_API
965 NULL,
966#endif
967
Kevin Pengc73130f2019-10-22 17:27:18 +0800968#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800969 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800970#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800971
Kevin Pengc73130f2019-10-22 17:27:18 +0800972#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100973 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800974#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100975
Summer Qin423dbef2019-08-22 15:59:35 +0800976#ifdef TFM_PARTITION_AUDIT_LOG
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100977 platform_data_list_TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800978#endif /* TFM_PARTITION_AUDIT_LOG */
979
Kevin Pengc73130f2019-10-22 17:27:18 +0800980#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800981 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800982#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800983
984#ifdef TFM_PARTITION_PLATFORM
985 NULL,
986#endif /* TFM_PARTITION_PLATFORM */
987
Kevin Pengc73130f2019-10-22 17:27:18 +0800988#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800989 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800990#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800991
992#ifdef TFM_PARTITION_TEST_CORE
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100993 platform_data_list_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800994#endif /* TFM_PARTITION_TEST_CORE */
995
996#ifdef TFM_PARTITION_TEST_CORE
997 NULL,
998#endif /* TFM_PARTITION_TEST_CORE */
999
1000#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001001 platform_data_list_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +08001002#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1003
1004#ifdef TFM_PARTITION_TEST_CORE_IPC
1005 NULL,
1006#endif /* TFM_PARTITION_TEST_CORE_IPC */
1007
1008#ifdef TFM_PARTITION_TEST_CORE_IPC
1009 NULL,
1010#endif /* TFM_PARTITION_TEST_CORE_IPC */
1011
1012#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001013 platform_data_list_TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +08001014#endif /* TFM_ENABLE_IRQ_TEST */
1015
Jamie Fox0e823a02019-10-28 17:28:19 +00001016#ifdef TFM_PARTITION_TEST_SST
1017 NULL,
1018#endif /* TFM_PARTITION_TEST_SST */
1019
Jamie Fox830ff762019-12-16 15:20:22 +00001020#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1021 NULL,
1022#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1023
David Hu240f58e2019-10-10 10:55:07 +08001024#ifdef TFM_MULTI_CORE_TEST
1025 NULL,
1026#endif /* TFM_MULTI_CORE_TEST */
1027
Summer Qin423dbef2019-08-22 15:59:35 +08001028};
1029
1030/**************************************************************************/
1031/** The memory data of the partition list */
1032/**************************************************************************/
1033#ifdef TFM_PSA_API
1034const struct tfm_spm_partition_memory_data_t memory_data_list[] =
1035{
1036 {
1037 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
1038 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
1039 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
1040 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001041#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +08001042 {
Edison Aib2134e62019-10-11 18:24:47 +08001043 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
1044 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
1045 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
1046 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
1047 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
1048 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
1049 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
1050 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
1051 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
1052 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001053 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001054#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +08001055
Kevin Pengc73130f2019-10-22 17:27:18 +08001056#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +01001057 {
Edison Aib2134e62019-10-11 18:24:47 +08001058 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
1059 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
1060 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
1061 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
1062 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
1063 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
1064 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
1065 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
1066 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
1067 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +01001068 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001069#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001070
Summer Qin423dbef2019-08-22 15:59:35 +08001071#ifdef TFM_PARTITION_AUDIT_LOG
1072 {
Edison Aib2134e62019-10-11 18:24:47 +08001073 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
1074 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
1075 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
1076 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
1077 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
1078 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
1079 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
1080 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
1081 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
1082 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001083 },
1084#endif /* TFM_PARTITION_AUDIT_LOG */
1085
Kevin Pengc73130f2019-10-22 17:27:18 +08001086#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +08001087 {
Edison Aib2134e62019-10-11 18:24:47 +08001088 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
1089 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
1090 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
1091 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
1092 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
1093 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
1094 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
1095 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
1096 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
1097 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001098 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001099#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +08001100
1101#ifdef TFM_PARTITION_PLATFORM
1102 {
Edison Aib2134e62019-10-11 18:24:47 +08001103 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
1104 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
1105 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
1106 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
1107 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
1108 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
1109 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
1110 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
1111 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
1112 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001113 },
1114#endif /* TFM_PARTITION_PLATFORM */
1115
Kevin Pengc73130f2019-10-22 17:27:18 +08001116#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +08001117 {
Edison Aib2134e62019-10-11 18:24:47 +08001118 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
1119 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
1120 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
1121 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
1122 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
1123 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
1124 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
1125 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
1126 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
1127 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001128 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001129#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +08001130
1131#ifdef TFM_PARTITION_TEST_CORE
1132 {
Edison Aib2134e62019-10-11 18:24:47 +08001133 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
1134 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
1135 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
1136 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
1137 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
1138 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1139 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1140 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1141 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1142 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001143 },
1144#endif /* TFM_PARTITION_TEST_CORE */
1145
1146#ifdef TFM_PARTITION_TEST_CORE
1147 {
Edison Aib2134e62019-10-11 18:24:47 +08001148 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
1149 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
1150 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
1151 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
1152 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
1153 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
1154 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
1155 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
1156 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
1157 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001158 },
1159#endif /* TFM_PARTITION_TEST_CORE */
1160
1161#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1162 {
Edison Aib2134e62019-10-11 18:24:47 +08001163 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
1164 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
1165 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
1166 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
1167 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
1168 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
1169 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
1170 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
1171 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
1172 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001173 },
1174#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1175
1176#ifdef TFM_PARTITION_TEST_CORE_IPC
1177 {
Edison Aib2134e62019-10-11 18:24:47 +08001178 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
1179 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
1180 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
1181 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
1182 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
1183 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
1184 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
1185 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
1186 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
1187 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001188 },
1189#endif /* TFM_PARTITION_TEST_CORE_IPC */
1190
1191#ifdef TFM_PARTITION_TEST_CORE_IPC
1192 {
Edison Aib2134e62019-10-11 18:24:47 +08001193 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
1194 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
1195 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
1196 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
1197 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
1198 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
1199 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
1200 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
1201 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
1202 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001203 },
1204#endif /* TFM_PARTITION_TEST_CORE_IPC */
1205
1206#ifdef TFM_ENABLE_IRQ_TEST
1207 {
Edison Aib2134e62019-10-11 18:24:47 +08001208 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
1209 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
1210 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
1211 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
1212 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
1213 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
1214 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
1215 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
1216 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
1217 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001218 },
1219#endif /* TFM_ENABLE_IRQ_TEST */
1220
Jamie Fox0e823a02019-10-28 17:28:19 +00001221#ifdef TFM_PARTITION_TEST_SST
1222 {
1223 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
1224 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
1225 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
1226 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
1227 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
1228 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
1229 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
1230 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
1231 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
1232 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
1233 },
1234#endif /* TFM_PARTITION_TEST_SST */
1235
Jamie Fox830ff762019-12-16 15:20:22 +00001236#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1237 {
1238 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Base),
1239 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit),
1240 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base),
1241 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit),
1242 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base),
1243 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit),
1244 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base),
1245 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit),
1246 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base),
1247 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit),
1248 },
1249#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1250
David Hu240f58e2019-10-10 10:55:07 +08001251#ifdef TFM_MULTI_CORE_TEST
1252 {
1253 .code_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$Base),
1254 .code_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$Limit),
1255 .ro_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$RO$$Base),
1256 .ro_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$RO$$Limit),
1257 .rw_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$RW$$Base),
1258 .rw_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1259 .zi_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1260 .zi_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1261 .stack_bottom = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1262 .stack_top = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
1263 },
1264#endif /* TFM_MULTI_CORE_TEST */
1265
Summer Qin423dbef2019-08-22 15:59:35 +08001266};
1267#endif /* defined(TFM_PSA_API) */
1268
1269/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001270/** The partition list for the DB */
1271/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +08001272static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001273{
TTornblom83d96372019-11-19 12:53:16 +01001274 {{0}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001275#ifndef TFM_PSA_API
TTornblom83d96372019-11-19 12:53:16 +01001276 {{0}}, /* placeholder for TF-M Core internal partition */
1277#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001278
1279 /* -----------------------------------------------------------------------*/
1280 /* - Partition DB record for TFM_SP_STORAGE */
1281 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001282#ifdef TFM_PARTITION_SECURE_STORAGE
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001283 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001284 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001285 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001286 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001287 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001288 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001289#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001290
1291 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +01001292 /* - Partition DB record for TFM_SP_ITS */
1293 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001294#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +01001295 {
1296 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001297 .runtime_data = {0},
TudorCretufb182bc2019-07-05 17:34:12 +01001298 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001299 .platform_data_list = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +01001300 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001301#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001302
1303 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001304 /* - Partition DB record for TFM_SP_AUDIT_LOG */
1305 /* -----------------------------------------------------------------------*/
1306#ifdef TFM_PARTITION_AUDIT_LOG
1307 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001308 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001309 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001310 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001311 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001312 },
1313#endif /* TFM_PARTITION_AUDIT_LOG */
1314
1315 /* -----------------------------------------------------------------------*/
1316 /* - Partition DB record for TFM_SP_CRYPTO */
1317 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001318#ifdef TFM_PARTITION_CRYPTO
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001319 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001320 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001321 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001322 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001323 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001324 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001325#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001326
1327 /* -----------------------------------------------------------------------*/
1328 /* - Partition DB record for TFM_SP_PLATFORM */
1329 /* -----------------------------------------------------------------------*/
1330#ifdef TFM_PARTITION_PLATFORM
1331 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001332 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001333 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001334 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001335 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001336 },
1337#endif /* TFM_PARTITION_PLATFORM */
1338
1339 /* -----------------------------------------------------------------------*/
1340 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
1341 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001342#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001343 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001344 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001345 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001346 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001347 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001348 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001349#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001350
1351 /* -----------------------------------------------------------------------*/
1352 /* - Partition DB record for TFM_SP_CORE_TEST */
1353 /* -----------------------------------------------------------------------*/
1354#ifdef TFM_PARTITION_TEST_CORE
1355 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001356 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001357 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001358 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001359 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001360 },
1361#endif /* TFM_PARTITION_TEST_CORE */
1362
1363 /* -----------------------------------------------------------------------*/
1364 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1365 /* -----------------------------------------------------------------------*/
1366#ifdef TFM_PARTITION_TEST_CORE
1367 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001368 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001369 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001370 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001371 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001372 },
1373#endif /* TFM_PARTITION_TEST_CORE */
1374
1375 /* -----------------------------------------------------------------------*/
1376 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1377 /* -----------------------------------------------------------------------*/
1378#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1379 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001380 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001381 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001382 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001383 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001384 },
1385#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1386
1387 /* -----------------------------------------------------------------------*/
1388 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1389 /* -----------------------------------------------------------------------*/
1390#ifdef TFM_PARTITION_TEST_CORE_IPC
1391 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001392 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001393 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001394 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001395 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001396 },
1397#endif /* TFM_PARTITION_TEST_CORE_IPC */
1398
1399 /* -----------------------------------------------------------------------*/
1400 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1401 /* -----------------------------------------------------------------------*/
1402#ifdef TFM_PARTITION_TEST_CORE_IPC
1403 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001404 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001405 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001406 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001407 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001408 },
1409#endif /* TFM_PARTITION_TEST_CORE_IPC */
1410
1411 /* -----------------------------------------------------------------------*/
1412 /* - Partition DB record for TFM_IRQ_TEST_1 */
1413 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001414#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001415 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001416 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001417 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001418 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001419 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001420 },
David Hu33f2fd22019-08-16 15:32:39 +08001421#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001422
Jamie Fox0e823a02019-10-28 17:28:19 +00001423 /* -----------------------------------------------------------------------*/
1424 /* - Partition DB record for TFM_SP_SST_TEST */
1425 /* -----------------------------------------------------------------------*/
1426#ifdef TFM_PARTITION_TEST_SST
1427 {
1428 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001429 .runtime_data = {0},
Jamie Fox0e823a02019-10-28 17:28:19 +00001430 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001431 .platform_data_list = NULL,
Jamie Fox0e823a02019-10-28 17:28:19 +00001432 },
1433#endif /* TFM_PARTITION_TEST_SST */
1434
Jamie Fox830ff762019-12-16 15:20:22 +00001435 /* -----------------------------------------------------------------------*/
1436 /* - Partition DB record for TFM_SP_SECURE_CLIENT_2 */
1437 /* -----------------------------------------------------------------------*/
1438#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1439 {
1440 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001441 .runtime_data = {0},
Jamie Fox830ff762019-12-16 15:20:22 +00001442 .static_data = NULL,
1443 .platform_data_list = NULL,
1444 },
1445#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1446
David Hu240f58e2019-10-10 10:55:07 +08001447 /* -----------------------------------------------------------------------*/
1448 /* - Partition DB record for TFM_SP_MULTI_CORE_TEST */
1449 /* -----------------------------------------------------------------------*/
1450#ifdef TFM_MULTI_CORE_TEST
1451 {
1452 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001453 .runtime_data = {0},
David Hu240f58e2019-10-10 10:55:07 +08001454 .static_data = NULL,
1455 .platform_data_list = NULL,
1456 },
1457#endif /* TFM_MULTI_CORE_TEST */
1458
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001459};
1460
1461struct spm_partition_db_t g_spm_partition_db = {
1462 .is_init = 0,
1463 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001464#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001465 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001466#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001467 .partitions = partition_list,
1468};
1469
1470#endif /* __TFM_SPM_DB_INC__ */