blob: d22d46bf31ac4c2270308e0d6fd7c030910bafba [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
Kevin Pengc73130f2019-10-22 17:27:18 +0800571#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Edison Aie728fbf2019-11-13 09:37:12 +0800572static int32_t dependencies_TFM_SP_INITIAL_ATTESTATION[] =
573{
574 TFM_CRYPTO_SID,
575};
Kevin Pengc73130f2019-10-22 17:27:18 +0800576#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Edison Aie728fbf2019-11-13 09:37:12 +0800577
578#ifdef TFM_PARTITION_TEST_CORE
579static int32_t dependencies_TFM_SP_CORE_TEST[] =
580{
581 SPM_CORE_TEST_2_INVERT_SID,
582 SPM_CORE_TEST_2_GET_EVERY_SECOND_BYTE_SID,
583 SPM_CORE_TEST_2_SLAVE_SERVICE_SID,
584};
585#endif /* TFM_PARTITION_TEST_CORE */
586
587#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
588static int32_t dependencies_TFM_SP_SECURE_TEST_PARTITION[] =
589{
Jamie Fox830ff762019-12-16 15:20:22 +0000590 TFM_SECURE_CLIENT_2_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800591 TFM_CRYPTO_SID,
592 TFM_SST_SET_SID,
593 TFM_SST_GET_SID,
594 TFM_SST_GET_INFO_SID,
595 TFM_SST_REMOVE_SID,
596 TFM_SST_GET_SUPPORT_SID,
597 TFM_ITS_SET_SID,
598 TFM_ITS_GET_SID,
599 TFM_ITS_GET_INFO_SID,
600 TFM_ITS_REMOVE_SID,
601 TFM_ATTEST_GET_TOKEN_SID,
602 TFM_ATTEST_GET_TOKEN_SIZE_SID,
603 TFM_ATTEST_GET_PUBLIC_KEY_SID,
604 TFM_SST_TEST_PREPARE_SID,
Edison Aia765f232019-12-06 15:41:38 +0800605 TFM_SP_PLATFORM_SYSTEM_RESET_SID,
606 TFM_SP_PLATFORM_IOCTL_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800607};
608#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
609
610#ifdef TFM_PARTITION_TEST_CORE_IPC
611static int32_t dependencies_TFM_SP_IPC_CLIENT_TEST[] =
612{
613 IPC_SERVICE_TEST_PSA_ACCESS_APP_READ_ONLY_MEM_SID,
614 IPC_SERVICE_TEST_PSA_ACCESS_APP_MEM_SID,
615 IPC_SERVICE_TEST_BASIC_SID,
616 IPC_SERVICE_TEST_APP_ACCESS_PSA_MEM_SID,
617};
618#endif /* TFM_PARTITION_TEST_CORE_IPC */
619
620#ifdef TFM_PARTITION_TEST_SST
621static int32_t dependencies_TFM_SP_SST_TEST[] =
622{
623 TFM_CRYPTO_SID,
TudorCretu1ad09372019-08-09 15:35:12 +0100624 TFM_ITS_GET_SID,
625 TFM_ITS_REMOVE_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800626};
627#endif /* TFM_PARTITION_TEST_SST */
628
Jamie Foxfafeff72019-12-12 17:17:24 +0000629#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
630static int32_t dependencies_TFM_SP_SECURE_CLIENT_2[] =
631{
632 TFM_ITS_GET_SID,
Jamie Foxc0b66852019-12-19 16:40:41 +0000633 TFM_CRYPTO_SID,
Jamie Foxfafeff72019-12-12 17:17:24 +0000634};
635#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
636
Edison Aie728fbf2019-11-13 09:37:12 +0800637/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800638/** The static data of the partition list */
639/**************************************************************************/
640const struct spm_partition_static_data_t static_data_list[] =
641{
642 {
Edison Aif0501702019-10-11 14:36:42 +0800643#ifdef TFM_PSA_API
644 .psa_framework_version = 0x0100,
645#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800646 .partition_id = TFM_SP_NON_SECURE_ID,
647#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800648#if TFM_MULTI_CORE_TOPOLOGY
649 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
650#else
Summer Qin423dbef2019-08-22 15:59:35 +0800651 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800652#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800653 .partition_priority = TFM_PRIORITY_LOW,
654 .partition_init = tfm_nspm_thread_entry,
655#else
656 .partition_flags = 0,
657#endif
658 },
659
660#ifndef TFM_PSA_API
661 {
662 .partition_id = TFM_SP_CORE_ID,
663 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
664 },
665#endif
666
Kevin Pengc73130f2019-10-22 17:27:18 +0800667#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800668 {
Edison Aif0501702019-10-11 14:36:42 +0800669#ifdef TFM_PSA_API
670 .psa_framework_version = 0x0100,
671#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800672 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800673 .partition_flags = SPM_PART_FLAG_IPC
674 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
675 ,
676 .partition_priority = TFM_PRIORITY(NORMAL),
677 .partition_init = tfm_sst_req_mngr_init,
TudorCretu1ad09372019-08-09 15:35:12 +0100678 .dependencies_num = 5,
Edison Aie728fbf2019-11-13 09:37:12 +0800679 .p_dependencies = dependencies_TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800680 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800681#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800682
Kevin Pengc73130f2019-10-22 17:27:18 +0800683#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100684 {
Edison Aif0501702019-10-11 14:36:42 +0800685#ifdef TFM_PSA_API
686 .psa_framework_version = 0x0100,
687#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800688 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100689 .partition_flags = SPM_PART_FLAG_IPC
690 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
691 ,
692 .partition_priority = TFM_PRIORITY(NORMAL),
693 .partition_init = tfm_its_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800694 .dependencies_num = 0,
695 .p_dependencies = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +0100696 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800697#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100698
Summer Qin423dbef2019-08-22 15:59:35 +0800699#ifdef TFM_PARTITION_AUDIT_LOG
700 {
Edison Aif0501702019-10-11 14:36:42 +0800701#ifdef TFM_PSA_API
702 .psa_framework_version = 0x0100,
703#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800704 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800705 .partition_flags = 0
706 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
707 ,
708 .partition_priority = TFM_PRIORITY(NORMAL),
709 .partition_init = audit_core_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800710 .dependencies_num = 0,
711 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800712 },
713#endif /* TFM_PARTITION_AUDIT_LOG */
714
Kevin Pengc73130f2019-10-22 17:27:18 +0800715#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800716 {
Edison Aif0501702019-10-11 14:36:42 +0800717#ifdef TFM_PSA_API
718 .psa_framework_version = 0x0100,
719#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800720 .partition_id = TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800721 .partition_flags = SPM_PART_FLAG_IPC
722 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
723 ,
724 .partition_priority = TFM_PRIORITY(NORMAL),
725 .partition_init = tfm_crypto_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800726 .dependencies_num = 0,
727 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800728 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800729#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800730
731#ifdef TFM_PARTITION_PLATFORM
732 {
Edison Aif0501702019-10-11 14:36:42 +0800733#ifdef TFM_PSA_API
734 .psa_framework_version = 0x0100,
735#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800736 .partition_id = TFM_SP_PLATFORM,
Mate Toth-Pal179a1562019-11-08 11:40:27 +0100737 .partition_flags = SPM_PART_FLAG_IPC
Summer Qin423dbef2019-08-22 15:59:35 +0800738 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
739 ,
740 .partition_priority = TFM_PRIORITY(NORMAL),
741 .partition_init = platform_sp_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800742 .dependencies_num = 0,
743 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800744 },
745#endif /* TFM_PARTITION_PLATFORM */
746
Kevin Pengc73130f2019-10-22 17:27:18 +0800747#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800748 {
Edison Aif0501702019-10-11 14:36:42 +0800749#ifdef TFM_PSA_API
750 .psa_framework_version = 0x0100,
751#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800752 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800753 .partition_flags = SPM_PART_FLAG_IPC
754 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
755 ,
756 .partition_priority = TFM_PRIORITY(NORMAL),
757 .partition_init = attest_partition_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800758 .dependencies_num = 1,
759 .p_dependencies = dependencies_TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800760 },
Kevin Pengc73130f2019-10-22 17:27:18 +0800761#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800762
763#ifdef TFM_PARTITION_TEST_CORE
764 {
Edison Aif0501702019-10-11 14:36:42 +0800765#ifdef TFM_PSA_API
766 .psa_framework_version = 0x0100,
767#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800768 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800769 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200770 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800771 ,
772 .partition_priority = TFM_PRIORITY(NORMAL),
773 .partition_init = core_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800774 .dependencies_num = 3,
775 .p_dependencies = dependencies_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800776 },
777#endif /* TFM_PARTITION_TEST_CORE */
778
779#ifdef TFM_PARTITION_TEST_CORE
780 {
Edison Aif0501702019-10-11 14:36:42 +0800781#ifdef TFM_PSA_API
782 .psa_framework_version = 0x0100,
783#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800784 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800785 .partition_flags = SPM_PART_FLAG_IPC
786 | SPM_PART_FLAG_APP_ROT
787 ,
788 .partition_priority = TFM_PRIORITY(NORMAL),
789 .partition_init = core_test_2_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800790 .dependencies_num = 0,
791 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800792 },
793#endif /* TFM_PARTITION_TEST_CORE */
794
795#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
796 {
Edison Aif0501702019-10-11 14:36:42 +0800797#ifdef TFM_PSA_API
798 .psa_framework_version = 0x0100,
799#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800800 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800801 .partition_flags = SPM_PART_FLAG_IPC
802 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
803 ,
804 .partition_priority = TFM_PRIORITY(NORMAL),
805 .partition_init = tfm_secure_client_service_init,
Jamie Fox830ff762019-12-16 15:20:22 +0000806 .dependencies_num = 17,
Edison Aie728fbf2019-11-13 09:37:12 +0800807 .p_dependencies = dependencies_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800808 },
809#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
810
811#ifdef TFM_PARTITION_TEST_CORE_IPC
812 {
Edison Aif0501702019-10-11 14:36:42 +0800813#ifdef TFM_PSA_API
814 .psa_framework_version = 0x0100,
815#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800816 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800817 .partition_flags = SPM_PART_FLAG_IPC
818 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
819 ,
820 .partition_priority = TFM_PRIORITY(HIGH),
821 .partition_init = ipc_service_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800822 .dependencies_num = 0,
823 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800824 },
825#endif /* TFM_PARTITION_TEST_CORE_IPC */
826
827#ifdef TFM_PARTITION_TEST_CORE_IPC
828 {
Edison Aif0501702019-10-11 14:36:42 +0800829#ifdef TFM_PSA_API
830 .psa_framework_version = 0x0100,
831#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800832 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800833 .partition_flags = SPM_PART_FLAG_IPC
834 | SPM_PART_FLAG_APP_ROT
835 ,
836 .partition_priority = TFM_PRIORITY(NORMAL),
837 .partition_init = ipc_client_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800838 .dependencies_num = 4,
839 .p_dependencies = dependencies_TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800840 },
841#endif /* TFM_PARTITION_TEST_CORE_IPC */
842
843#ifdef TFM_ENABLE_IRQ_TEST
844 {
Edison Aif0501702019-10-11 14:36:42 +0800845#ifdef TFM_PSA_API
846 .psa_framework_version = 0x0100,
847#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800848 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800849 .partition_flags = SPM_PART_FLAG_IPC
850 | SPM_PART_FLAG_APP_ROT
851 ,
852 .partition_priority = TFM_PRIORITY(NORMAL),
853 .partition_init = tfm_irq_test_1_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800854 .dependencies_num = 0,
855 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800856 },
857#endif /* TFM_ENABLE_IRQ_TEST */
858
Jamie Fox0e823a02019-10-28 17:28:19 +0000859#ifdef TFM_PARTITION_TEST_SST
860 {
861#ifdef TFM_PSA_API
862 .psa_framework_version = 0x0100,
863#endif /* defined(TFM_PSA_API) */
864 .partition_id = TFM_SP_SST_TEST,
865 .partition_flags = SPM_PART_FLAG_IPC
866 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
867 ,
868 .partition_priority = TFM_PRIORITY(NORMAL),
869 .partition_init = tfm_sst_test_init,
TudorCretu1ad09372019-08-09 15:35:12 +0100870 .dependencies_num = 3,
Edison Aie728fbf2019-11-13 09:37:12 +0800871 .p_dependencies = dependencies_TFM_SP_SST_TEST,
Jamie Fox0e823a02019-10-28 17:28:19 +0000872 },
873#endif /* TFM_PARTITION_TEST_SST */
874
Jamie Fox830ff762019-12-16 15:20:22 +0000875#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
876 {
877#ifdef TFM_PSA_API
878 .psa_framework_version = 0x0100,
879#endif /* defined(TFM_PSA_API) */
880 .partition_id = TFM_SP_SECURE_CLIENT_2,
881 .partition_flags = SPM_PART_FLAG_IPC
882 | SPM_PART_FLAG_APP_ROT
883 ,
884 .partition_priority = TFM_PRIORITY(NORMAL),
885 .partition_init = tfm_secure_client_2_init,
Jamie Foxc0b66852019-12-19 16:40:41 +0000886 .dependencies_num = 2,
Jamie Foxfafeff72019-12-12 17:17:24 +0000887 .p_dependencies = dependencies_TFM_SP_SECURE_CLIENT_2,
Jamie Fox830ff762019-12-16 15:20:22 +0000888 },
889#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
890
David Hu240f58e2019-10-10 10:55:07 +0800891#ifdef TFM_MULTI_CORE_TEST
892 {
893#ifdef TFM_PSA_API
894 .psa_framework_version = 0x0100,
895#endif /* defined(TFM_PSA_API) */
896 .partition_id = TFM_SP_MULTI_CORE_TEST,
897 .partition_flags = SPM_PART_FLAG_IPC
898 | SPM_PART_FLAG_APP_ROT
899 ,
900 .partition_priority = TFM_PRIORITY(NORMAL),
901 .partition_init = multi_core_test_main,
902 .dependencies_num = 0,
903 .p_dependencies = NULL,
904 },
905#endif /* TFM_MULTI_CORE_TEST */
906
Summer Qin423dbef2019-08-22 15:59:35 +0800907};
908
909/**************************************************************************/
910/** The platform data of the partition list */
911/**************************************************************************/
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100912#ifdef TFM_PARTITION_AUDIT_LOG
913const struct tfm_spm_partition_platform_data_t *
914 platform_data_list_TFM_SP_AUDIT_LOG[] =
915{
916#ifdef AUDIT_UART_REDIRECTION
917 TFM_PERIPHERAL_UART1,
918#endif /* AUDIT_UART_REDIRECTION */
919 NULL
920};
921#endif /* TFM_PARTITION_AUDIT_LOG */
922
923#ifdef TFM_PARTITION_TEST_CORE
924const struct tfm_spm_partition_platform_data_t *
925 platform_data_list_TFM_SP_CORE_TEST[] =
926{
927 TFM_PERIPHERAL_FPGA_IO,
928 NULL
929};
930#endif /* TFM_PARTITION_TEST_CORE */
931
932#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
933const struct tfm_spm_partition_platform_data_t *
934 platform_data_list_TFM_SP_SECURE_TEST_PARTITION[] =
935{
936 TFM_PERIPHERAL_STD_UART,
937 NULL
938};
939#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
940
941#ifdef TFM_ENABLE_IRQ_TEST
942const struct tfm_spm_partition_platform_data_t *
943 platform_data_list_TFM_IRQ_TEST_1[] =
944{
945 TFM_PERIPHERAL_TIMER0,
946 NULL
947};
948#endif /* TFM_ENABLE_IRQ_TEST */
949
950const struct tfm_spm_partition_platform_data_t **platform_data_list_list[] =
Summer Qin423dbef2019-08-22 15:59:35 +0800951{
952 NULL,
953
954#ifndef TFM_PSA_API
955 NULL,
956#endif
957
Kevin Pengc73130f2019-10-22 17:27:18 +0800958#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +0800959 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800960#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +0800961
Kevin Pengc73130f2019-10-22 17:27:18 +0800962#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +0100963 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800964#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +0100965
Summer Qin423dbef2019-08-22 15:59:35 +0800966#ifdef TFM_PARTITION_AUDIT_LOG
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100967 platform_data_list_TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800968#endif /* TFM_PARTITION_AUDIT_LOG */
969
Kevin Pengc73130f2019-10-22 17:27:18 +0800970#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +0800971 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800972#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +0800973
974#ifdef TFM_PARTITION_PLATFORM
975 NULL,
976#endif /* TFM_PARTITION_PLATFORM */
977
Kevin Pengc73130f2019-10-22 17:27:18 +0800978#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +0800979 NULL,
Kevin Pengc73130f2019-10-22 17:27:18 +0800980#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +0800981
982#ifdef TFM_PARTITION_TEST_CORE
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100983 platform_data_list_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800984#endif /* TFM_PARTITION_TEST_CORE */
985
986#ifdef TFM_PARTITION_TEST_CORE
987 NULL,
988#endif /* TFM_PARTITION_TEST_CORE */
989
990#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +0100991 platform_data_list_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800992#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
993
994#ifdef TFM_PARTITION_TEST_CORE_IPC
995 NULL,
996#endif /* TFM_PARTITION_TEST_CORE_IPC */
997
998#ifdef TFM_PARTITION_TEST_CORE_IPC
999 NULL,
1000#endif /* TFM_PARTITION_TEST_CORE_IPC */
1001
1002#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001003 platform_data_list_TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +08001004#endif /* TFM_ENABLE_IRQ_TEST */
1005
Jamie Fox0e823a02019-10-28 17:28:19 +00001006#ifdef TFM_PARTITION_TEST_SST
1007 NULL,
1008#endif /* TFM_PARTITION_TEST_SST */
1009
Jamie Fox830ff762019-12-16 15:20:22 +00001010#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1011 NULL,
1012#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1013
David Hu240f58e2019-10-10 10:55:07 +08001014#ifdef TFM_MULTI_CORE_TEST
1015 NULL,
1016#endif /* TFM_MULTI_CORE_TEST */
1017
Summer Qin423dbef2019-08-22 15:59:35 +08001018};
1019
1020/**************************************************************************/
1021/** The memory data of the partition list */
1022/**************************************************************************/
1023#ifdef TFM_PSA_API
1024const struct tfm_spm_partition_memory_data_t memory_data_list[] =
1025{
1026 {
1027 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
1028 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
1029 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
1030 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001031#ifdef TFM_PARTITION_SECURE_STORAGE
Summer Qin423dbef2019-08-22 15:59:35 +08001032 {
Edison Aib2134e62019-10-11 18:24:47 +08001033 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
1034 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
1035 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
1036 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
1037 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
1038 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
1039 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
1040 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
1041 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
1042 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001043 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001044#endif /* TFM_PARTITION_SECURE_STORAGE */
Summer Qin423dbef2019-08-22 15:59:35 +08001045
Kevin Pengc73130f2019-10-22 17:27:18 +08001046#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +01001047 {
Edison Aib2134e62019-10-11 18:24:47 +08001048 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
1049 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
1050 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
1051 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
1052 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
1053 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
1054 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
1055 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
1056 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
1057 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +01001058 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001059#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001060
Summer Qin423dbef2019-08-22 15:59:35 +08001061#ifdef TFM_PARTITION_AUDIT_LOG
1062 {
Edison Aib2134e62019-10-11 18:24:47 +08001063 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
1064 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
1065 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
1066 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
1067 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
1068 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
1069 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
1070 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
1071 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
1072 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001073 },
1074#endif /* TFM_PARTITION_AUDIT_LOG */
1075
Kevin Pengc73130f2019-10-22 17:27:18 +08001076#ifdef TFM_PARTITION_CRYPTO
Summer Qin423dbef2019-08-22 15:59:35 +08001077 {
Edison Aib2134e62019-10-11 18:24:47 +08001078 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
1079 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
1080 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
1081 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
1082 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
1083 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
1084 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
1085 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
1086 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
1087 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001088 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001089#endif /* TFM_PARTITION_CRYPTO */
Summer Qin423dbef2019-08-22 15:59:35 +08001090
1091#ifdef TFM_PARTITION_PLATFORM
1092 {
Edison Aib2134e62019-10-11 18:24:47 +08001093 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
1094 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
1095 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
1096 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
1097 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
1098 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
1099 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
1100 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
1101 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
1102 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001103 },
1104#endif /* TFM_PARTITION_PLATFORM */
1105
Kevin Pengc73130f2019-10-22 17:27:18 +08001106#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Summer Qin423dbef2019-08-22 15:59:35 +08001107 {
Edison Aib2134e62019-10-11 18:24:47 +08001108 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
1109 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
1110 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
1111 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
1112 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
1113 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
1114 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
1115 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
1116 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
1117 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001118 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001119#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Summer Qin423dbef2019-08-22 15:59:35 +08001120
1121#ifdef TFM_PARTITION_TEST_CORE
1122 {
Edison Aib2134e62019-10-11 18:24:47 +08001123 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
1124 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
1125 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
1126 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
1127 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
1128 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1129 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1130 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1131 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1132 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001133 },
1134#endif /* TFM_PARTITION_TEST_CORE */
1135
1136#ifdef TFM_PARTITION_TEST_CORE
1137 {
Edison Aib2134e62019-10-11 18:24:47 +08001138 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
1139 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
1140 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
1141 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
1142 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
1143 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
1144 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
1145 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
1146 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
1147 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001148 },
1149#endif /* TFM_PARTITION_TEST_CORE */
1150
1151#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1152 {
Edison Aib2134e62019-10-11 18:24:47 +08001153 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
1154 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
1155 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
1156 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
1157 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
1158 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
1159 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
1160 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
1161 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
1162 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001163 },
1164#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1165
1166#ifdef TFM_PARTITION_TEST_CORE_IPC
1167 {
Edison Aib2134e62019-10-11 18:24:47 +08001168 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
1169 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
1170 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
1171 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
1172 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
1173 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
1174 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
1175 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
1176 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
1177 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001178 },
1179#endif /* TFM_PARTITION_TEST_CORE_IPC */
1180
1181#ifdef TFM_PARTITION_TEST_CORE_IPC
1182 {
Edison Aib2134e62019-10-11 18:24:47 +08001183 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
1184 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
1185 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
1186 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
1187 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
1188 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
1189 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
1190 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
1191 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
1192 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001193 },
1194#endif /* TFM_PARTITION_TEST_CORE_IPC */
1195
1196#ifdef TFM_ENABLE_IRQ_TEST
1197 {
Edison Aib2134e62019-10-11 18:24:47 +08001198 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
1199 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
1200 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
1201 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
1202 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
1203 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
1204 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
1205 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
1206 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
1207 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +08001208 },
1209#endif /* TFM_ENABLE_IRQ_TEST */
1210
Jamie Fox0e823a02019-10-28 17:28:19 +00001211#ifdef TFM_PARTITION_TEST_SST
1212 {
1213 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
1214 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
1215 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
1216 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
1217 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
1218 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
1219 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
1220 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
1221 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
1222 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
1223 },
1224#endif /* TFM_PARTITION_TEST_SST */
1225
Jamie Fox830ff762019-12-16 15:20:22 +00001226#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1227 {
1228 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Base),
1229 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$Limit),
1230 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Base),
1231 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, $$RO$$Limit),
1232 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Base),
1233 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$RW$$Limit),
1234 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Base),
1235 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _DATA$$ZI$$Limit),
1236 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Base),
1237 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_CLIENT_2_LINKER, _STACK$$ZI$$Limit),
1238 },
1239#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1240
David Hu240f58e2019-10-10 10:55:07 +08001241#ifdef TFM_MULTI_CORE_TEST
1242 {
1243 .code_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$Base),
1244 .code_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$Limit),
1245 .ro_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$RO$$Base),
1246 .ro_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, $$RO$$Limit),
1247 .rw_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$RW$$Base),
1248 .rw_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$RW$$Limit),
1249 .zi_start = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$ZI$$Base),
1250 .zi_limit = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
1251 .stack_bottom = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _STACK$$ZI$$Base),
1252 .stack_top = PART_REGION_ADDR(TFM_SP_MULTI_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
1253 },
1254#endif /* TFM_MULTI_CORE_TEST */
1255
Summer Qin423dbef2019-08-22 15:59:35 +08001256};
1257#endif /* defined(TFM_PSA_API) */
1258
1259/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001260/** The partition list for the DB */
1261/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +08001262static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001263{
TTornblom83d96372019-11-19 12:53:16 +01001264 {{0}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001265#ifndef TFM_PSA_API
TTornblom83d96372019-11-19 12:53:16 +01001266 {{0}}, /* placeholder for TF-M Core internal partition */
1267#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001268
1269 /* -----------------------------------------------------------------------*/
1270 /* - Partition DB record for TFM_SP_STORAGE */
1271 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001272#ifdef TFM_PARTITION_SECURE_STORAGE
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001273 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001274 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001275 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001276 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001277 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001278 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001279#endif /* TFM_PARTITION_SECURE_STORAGE */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001280
1281 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +01001282 /* - Partition DB record for TFM_SP_ITS */
1283 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001284#ifdef TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
TudorCretufb182bc2019-07-05 17:34:12 +01001285 {
1286 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001287 .runtime_data = {0},
TudorCretufb182bc2019-07-05 17:34:12 +01001288 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001289 .platform_data_list = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +01001290 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001291#endif /* TFM_PARTITION_INTERNAL_TRUSTED_STORAGE */
TudorCretufb182bc2019-07-05 17:34:12 +01001292
1293 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001294 /* - Partition DB record for TFM_SP_AUDIT_LOG */
1295 /* -----------------------------------------------------------------------*/
1296#ifdef TFM_PARTITION_AUDIT_LOG
1297 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001298 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001299 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001300 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001301 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001302 },
1303#endif /* TFM_PARTITION_AUDIT_LOG */
1304
1305 /* -----------------------------------------------------------------------*/
1306 /* - Partition DB record for TFM_SP_CRYPTO */
1307 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001308#ifdef TFM_PARTITION_CRYPTO
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001309 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001310 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001311 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001312 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001313 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001314 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001315#endif /* TFM_PARTITION_CRYPTO */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001316
1317 /* -----------------------------------------------------------------------*/
1318 /* - Partition DB record for TFM_SP_PLATFORM */
1319 /* -----------------------------------------------------------------------*/
1320#ifdef TFM_PARTITION_PLATFORM
1321 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001322 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001323 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001324 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001325 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001326 },
1327#endif /* TFM_PARTITION_PLATFORM */
1328
1329 /* -----------------------------------------------------------------------*/
1330 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
1331 /* -----------------------------------------------------------------------*/
Kevin Pengc73130f2019-10-22 17:27:18 +08001332#ifdef TFM_PARTITION_INITIAL_ATTESTATION
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001333 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001334 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001335 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001336 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001337 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001338 },
Kevin Pengc73130f2019-10-22 17:27:18 +08001339#endif /* TFM_PARTITION_INITIAL_ATTESTATION */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001340
1341 /* -----------------------------------------------------------------------*/
1342 /* - Partition DB record for TFM_SP_CORE_TEST */
1343 /* -----------------------------------------------------------------------*/
1344#ifdef TFM_PARTITION_TEST_CORE
1345 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001346 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001347 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001348 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001349 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001350 },
1351#endif /* TFM_PARTITION_TEST_CORE */
1352
1353 /* -----------------------------------------------------------------------*/
1354 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1355 /* -----------------------------------------------------------------------*/
1356#ifdef TFM_PARTITION_TEST_CORE
1357 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001358 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001359 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001360 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001361 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001362 },
1363#endif /* TFM_PARTITION_TEST_CORE */
1364
1365 /* -----------------------------------------------------------------------*/
1366 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1367 /* -----------------------------------------------------------------------*/
1368#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1369 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001370 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001371 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001372 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001373 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001374 },
1375#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1376
1377 /* -----------------------------------------------------------------------*/
1378 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1379 /* -----------------------------------------------------------------------*/
1380#ifdef TFM_PARTITION_TEST_CORE_IPC
1381 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001382 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001383 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001384 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001385 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001386 },
1387#endif /* TFM_PARTITION_TEST_CORE_IPC */
1388
1389 /* -----------------------------------------------------------------------*/
1390 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1391 /* -----------------------------------------------------------------------*/
1392#ifdef TFM_PARTITION_TEST_CORE_IPC
1393 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001394 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001395 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001396 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001397 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001398 },
1399#endif /* TFM_PARTITION_TEST_CORE_IPC */
1400
1401 /* -----------------------------------------------------------------------*/
1402 /* - Partition DB record for TFM_IRQ_TEST_1 */
1403 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001404#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001405 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001406 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001407 .runtime_data = {0},
Summer Qin423dbef2019-08-22 15:59:35 +08001408 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001409 .platform_data_list = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001410 },
David Hu33f2fd22019-08-16 15:32:39 +08001411#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001412
Jamie Fox0e823a02019-10-28 17:28:19 +00001413 /* -----------------------------------------------------------------------*/
1414 /* - Partition DB record for TFM_SP_SST_TEST */
1415 /* -----------------------------------------------------------------------*/
1416#ifdef TFM_PARTITION_TEST_SST
1417 {
1418 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001419 .runtime_data = {0},
Jamie Fox0e823a02019-10-28 17:28:19 +00001420 .static_data = NULL,
Mate Toth-Pal8ac98a72019-11-21 17:30:10 +01001421 .platform_data_list = NULL,
Jamie Fox0e823a02019-10-28 17:28:19 +00001422 },
1423#endif /* TFM_PARTITION_TEST_SST */
1424
Jamie Fox830ff762019-12-16 15:20:22 +00001425 /* -----------------------------------------------------------------------*/
1426 /* - Partition DB record for TFM_SP_SECURE_CLIENT_2 */
1427 /* -----------------------------------------------------------------------*/
1428#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1429 {
1430 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001431 .runtime_data = {0},
Jamie Fox830ff762019-12-16 15:20:22 +00001432 .static_data = NULL,
1433 .platform_data_list = NULL,
1434 },
1435#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1436
David Hu240f58e2019-10-10 10:55:07 +08001437 /* -----------------------------------------------------------------------*/
1438 /* - Partition DB record for TFM_SP_MULTI_CORE_TEST */
1439 /* -----------------------------------------------------------------------*/
1440#ifdef TFM_MULTI_CORE_TEST
1441 {
1442 /* Runtime data */
TTornblom83d96372019-11-19 12:53:16 +01001443 .runtime_data = {0},
David Hu240f58e2019-10-10 10:55:07 +08001444 .static_data = NULL,
1445 .platform_data_list = NULL,
1446 },
1447#endif /* TFM_MULTI_CORE_TEST */
1448
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001449};
1450
1451struct spm_partition_db_t g_spm_partition_db = {
1452 .is_init = 0,
1453 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001454#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001455 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001456#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001457 .partitions = partition_list,
1458};
1459
1460#endif /* __TFM_SPM_DB_INC__ */