blob: c7578aef3ab05baa5f8b2eacc368f82228d706f2 [file] [log] [blame]
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001/*
2 * Copyright (c) 2019, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8/*********** WARNING: This is an auto-generated file. Do not edit! ***********/
9
10#ifndef __TFM_SPM_DB_INC__
11#define __TFM_SPM_DB_INC__
12
13#include "spm_api.h"
Edison Aie728fbf2019-11-13 09:37:12 +080014#include "psa_manifest/sid.h"
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020015
16/**************************************************************************/
17/** IRQ count per partition */
18/**************************************************************************/
19#define TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT 0
20
TudorCretufb182bc2019-07-05 17:34:12 +010021#define TFM_PARTITION_TFM_SP_ITS_IRQ_COUNT 0
22
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020023#ifdef TFM_PARTITION_AUDIT_LOG
24#define TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT 0
25#endif /* TFM_PARTITION_AUDIT_LOG */
26
27#define TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT 0
28
29#ifdef TFM_PARTITION_PLATFORM
30#define TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT 0
31#endif /* TFM_PARTITION_PLATFORM */
32
33#define TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT 0
34
35#ifdef TFM_PARTITION_TEST_CORE
36#define TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT 0
37#endif /* TFM_PARTITION_TEST_CORE */
38
39#ifdef TFM_PARTITION_TEST_CORE
40#define TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT 0
41#endif /* TFM_PARTITION_TEST_CORE */
42
43#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
44#define TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT 0
45#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
46
47#ifdef TFM_PARTITION_TEST_CORE_IPC
48#define TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT 0
49#endif /* TFM_PARTITION_TEST_CORE_IPC */
50
51#ifdef TFM_PARTITION_TEST_CORE_IPC
52#define TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT 0
53#endif /* TFM_PARTITION_TEST_CORE_IPC */
54
David Hu33f2fd22019-08-16 15:32:39 +080055#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020056#define TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT 1
David Hu33f2fd22019-08-16 15:32:39 +080057#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020058
Jamie Fox0e823a02019-10-28 17:28:19 +000059#ifdef TFM_PARTITION_TEST_SST
60#define TFM_PARTITION_TFM_SP_SST_TEST_IRQ_COUNT 0
61#endif /* TFM_PARTITION_TEST_SST */
62
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020063/**************************************************************************/
64/** Declarations of partition init functions */
65/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +080066#ifdef TFM_PSA_API
Edison Ai9c48d202019-10-12 16:57:21 +080067extern void tfm_nspm_thread_entry(void);
Summer Qin423dbef2019-08-22 15:59:35 +080068#endif
69
Edison Ai9c48d202019-10-12 16:57:21 +080070extern void tfm_sst_req_mngr_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020071
Edison Ai9c48d202019-10-12 16:57:21 +080072extern void tfm_its_req_mngr_init(void);
TudorCretufb182bc2019-07-05 17:34:12 +010073
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020074#ifdef TFM_PARTITION_AUDIT_LOG
Edison Ai9c48d202019-10-12 16:57:21 +080075extern void audit_core_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020076#endif /* TFM_PARTITION_AUDIT_LOG */
77
Edison Ai9c48d202019-10-12 16:57:21 +080078extern void tfm_crypto_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020079
80#ifdef TFM_PARTITION_PLATFORM
Edison Ai9c48d202019-10-12 16:57:21 +080081extern void platform_sp_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020082#endif /* TFM_PARTITION_PLATFORM */
83
Edison Ai9c48d202019-10-12 16:57:21 +080084extern void attest_partition_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020085
86#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +080087extern void core_test_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020088#endif /* TFM_PARTITION_TEST_CORE */
89
90#ifdef TFM_PARTITION_TEST_CORE
Edison Ai9c48d202019-10-12 16:57:21 +080091extern void core_test_2_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020092#endif /* TFM_PARTITION_TEST_CORE */
93
94#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Ai9c48d202019-10-12 16:57:21 +080095extern void tfm_secure_client_service_init(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +020096#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
97
98#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +080099extern void ipc_service_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200100#endif /* TFM_PARTITION_TEST_CORE_IPC */
101
102#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Ai9c48d202019-10-12 16:57:21 +0800103extern void ipc_client_test_main(void);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200104#endif /* TFM_PARTITION_TEST_CORE_IPC */
105
David Hu33f2fd22019-08-16 15:32:39 +0800106#ifdef TFM_ENABLE_IRQ_TEST
Edison Ai9c48d202019-10-12 16:57:21 +0800107extern void tfm_irq_test_1_init(void);
David Hu33f2fd22019-08-16 15:32:39 +0800108#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200109
Jamie Fox0e823a02019-10-28 17:28:19 +0000110#ifdef TFM_PARTITION_TEST_SST
111extern void tfm_sst_test_init(void);
112#endif /* TFM_PARTITION_TEST_SST */
113
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200114/**************************************************************************/
115/** Memory region declarations */
116/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800117#ifdef TFM_PSA_API
118REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Base);
119REGION_DECLARE(Image$$, ARM_LIB_STACK, $$ZI$$Limit);
120
Edison Aib2134e62019-10-11 18:24:47 +0800121REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Base);
122REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$Limit);
123REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Base);
124REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, $$RO$$Limit);
125REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base);
126REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit);
127REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base);
128REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit);
129REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base);
130REGION_DECLARE(Image$$, TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200131
Edison Aib2134e62019-10-11 18:24:47 +0800132REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Base);
133REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$Limit);
134REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Base);
135REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, $$RO$$Limit);
136REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Base);
137REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$RW$$Limit);
138REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Base);
139REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit);
140REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Base);
141REGION_DECLARE(Image$$, TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit);
TudorCretufb182bc2019-07-05 17:34:12 +0100142
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200143#ifdef TFM_PARTITION_AUDIT_LOG
Edison Aib2134e62019-10-11 18:24:47 +0800144REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Base);
145REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$Limit);
146REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base);
147REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit);
148REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base);
149REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit);
150REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base);
151REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit);
152REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base);
153REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200154#endif /* TFM_PARTITION_AUDIT_LOG */
155
Edison Aib2134e62019-10-11 18:24:47 +0800156REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Base);
157REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$Limit);
158REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Base);
159REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, $$RO$$Limit);
160REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base);
161REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit);
162REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base);
163REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit);
164REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base);
165REGION_DECLARE(Image$$, TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200166
167#ifdef TFM_PARTITION_PLATFORM
Edison Aib2134e62019-10-11 18:24:47 +0800168REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Base);
169REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$Limit);
170REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Base);
171REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, $$RO$$Limit);
172REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base);
173REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit);
174REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base);
175REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit);
176REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base);
177REGION_DECLARE(Image$$, TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200178#endif /* TFM_PARTITION_PLATFORM */
179
Edison Aib2134e62019-10-11 18:24:47 +0800180REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base);
181REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit);
182REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base);
183REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit);
184REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base);
185REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit);
186REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base);
187REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit);
188REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base);
189REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200190
191#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800192REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Base);
193REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$Limit);
194REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Base);
195REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, $$RO$$Limit);
196REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base);
197REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit);
198REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base);
199REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit);
200REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base);
201REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200202#endif /* TFM_PARTITION_TEST_CORE */
203
204#ifdef TFM_PARTITION_TEST_CORE
Edison Aib2134e62019-10-11 18:24:47 +0800205REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Base);
206REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$Limit);
207REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base);
208REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit);
209REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base);
210REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit);
211REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base);
212REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit);
213REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base);
214REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200215#endif /* TFM_PARTITION_TEST_CORE */
216
217#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
Edison Aib2134e62019-10-11 18:24:47 +0800218REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base);
219REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit);
220REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base);
221REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit);
222REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base);
223REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit);
224REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base);
225REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit);
226REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base);
227REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200228#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
229
230#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800231REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base);
232REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit);
233REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base);
234REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit);
235REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base);
236REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit);
237REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base);
238REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit);
239REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base);
240REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200241#endif /* TFM_PARTITION_TEST_CORE_IPC */
242
243#ifdef TFM_PARTITION_TEST_CORE_IPC
Edison Aib2134e62019-10-11 18:24:47 +0800244REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base);
245REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit);
246REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base);
247REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit);
248REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base);
249REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit);
250REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base);
251REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit);
252REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base);
253REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit);
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200254#endif /* TFM_PARTITION_TEST_CORE_IPC */
255
David Hu33f2fd22019-08-16 15:32:39 +0800256#ifdef TFM_ENABLE_IRQ_TEST
Edison Aib2134e62019-10-11 18:24:47 +0800257REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Base);
258REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$Limit);
259REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Base);
260REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, $$RO$$Limit);
261REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base);
262REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit);
263REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base);
264REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit);
265REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base);
266REGION_DECLARE(Image$$, TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit);
David Hu33f2fd22019-08-16 15:32:39 +0800267#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200268
Jamie Fox0e823a02019-10-28 17:28:19 +0000269#ifdef TFM_PARTITION_TEST_SST
270REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Base);
271REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$Limit);
272REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Base);
273REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, $$RO$$Limit);
274REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base);
275REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit);
276REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base);
277REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit);
278REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base);
279REGION_DECLARE(Image$$, TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit);
280#endif /* TFM_PARTITION_TEST_SST */
281
Summer Qin423dbef2019-08-22 15:59:35 +0800282#endif /* defined(TFM_PSA_API) */
283
Edison Ai66fbdf12019-07-08 16:05:07 +0800284#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200285/**************************************************************************/
286/** Context stacks for IRQ handling */
287/**************************************************************************/
288/* The max size of the context stack can be calculated as a function of the IRQ
289 * count of the secure partition:
290 *
291 * max_stack_size = intr_ctx_size + (IRQ_CNT * (intr_ctx_size + hndl_ctx_size))
292 *
293 * where:
294 * intr_ctx: Frame pushed when the partition is interrupted
295 * hndl_ctx: Frame pushed when the partition is handling an interrupt
296 */
Summer Qin423dbef2019-08-22 15:59:35 +0800297static uint32_t ns_interrupt_ctx_stack[
298 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
299
300static uint32_t tfm_core_interrupt_ctx_stack[
301 sizeof(struct interrupted_ctx_stack_frame_t) / sizeof(uint32_t)];
302
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200303static uint32_t ctx_stack_TFM_SP_STORAGE[
304 (sizeof(struct interrupted_ctx_stack_frame_t) +
305 (TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT) * (
306 sizeof(struct interrupted_ctx_stack_frame_t) +
307 sizeof(struct handler_ctx_stack_frame_t)
308 )) / sizeof(uint32_t)];
309
TudorCretufb182bc2019-07-05 17:34:12 +0100310static uint32_t ctx_stack_TFM_SP_ITS[
311 (sizeof(struct interrupted_ctx_stack_frame_t) +
312 (TFM_PARTITION_TFM_SP_ITS_IRQ_COUNT) * (
313 sizeof(struct interrupted_ctx_stack_frame_t) +
314 sizeof(struct handler_ctx_stack_frame_t)
315 )) / sizeof(uint32_t)];
316
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200317#ifdef TFM_PARTITION_AUDIT_LOG
318static uint32_t ctx_stack_TFM_SP_AUDIT_LOG[
319 (sizeof(struct interrupted_ctx_stack_frame_t) +
320 (TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT) * (
321 sizeof(struct interrupted_ctx_stack_frame_t) +
322 sizeof(struct handler_ctx_stack_frame_t)
323 )) / sizeof(uint32_t)];
324#endif /* TFM_PARTITION_AUDIT_LOG */
325
326static uint32_t ctx_stack_TFM_SP_CRYPTO[
327 (sizeof(struct interrupted_ctx_stack_frame_t) +
328 (TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT) * (
329 sizeof(struct interrupted_ctx_stack_frame_t) +
330 sizeof(struct handler_ctx_stack_frame_t)
331 )) / sizeof(uint32_t)];
332
333#ifdef TFM_PARTITION_PLATFORM
334static uint32_t ctx_stack_TFM_SP_PLATFORM[
335 (sizeof(struct interrupted_ctx_stack_frame_t) +
336 (TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT) * (
337 sizeof(struct interrupted_ctx_stack_frame_t) +
338 sizeof(struct handler_ctx_stack_frame_t)
339 )) / sizeof(uint32_t)];
340#endif /* TFM_PARTITION_PLATFORM */
341
342static uint32_t ctx_stack_TFM_SP_INITIAL_ATTESTATION[
343 (sizeof(struct interrupted_ctx_stack_frame_t) +
344 (TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT) * (
345 sizeof(struct interrupted_ctx_stack_frame_t) +
346 sizeof(struct handler_ctx_stack_frame_t)
347 )) / sizeof(uint32_t)];
348
349#ifdef TFM_PARTITION_TEST_CORE
350static uint32_t ctx_stack_TFM_SP_CORE_TEST[
351 (sizeof(struct interrupted_ctx_stack_frame_t) +
352 (TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT) * (
353 sizeof(struct interrupted_ctx_stack_frame_t) +
354 sizeof(struct handler_ctx_stack_frame_t)
355 )) / sizeof(uint32_t)];
356#endif /* TFM_PARTITION_TEST_CORE */
357
358#ifdef TFM_PARTITION_TEST_CORE
359static uint32_t ctx_stack_TFM_SP_CORE_TEST_2[
360 (sizeof(struct interrupted_ctx_stack_frame_t) +
361 (TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT) * (
362 sizeof(struct interrupted_ctx_stack_frame_t) +
363 sizeof(struct handler_ctx_stack_frame_t)
364 )) / sizeof(uint32_t)];
365#endif /* TFM_PARTITION_TEST_CORE */
366
367#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
368static uint32_t ctx_stack_TFM_SP_SECURE_TEST_PARTITION[
369 (sizeof(struct interrupted_ctx_stack_frame_t) +
370 (TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT) * (
371 sizeof(struct interrupted_ctx_stack_frame_t) +
372 sizeof(struct handler_ctx_stack_frame_t)
373 )) / sizeof(uint32_t)];
374#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
375
376#ifdef TFM_PARTITION_TEST_CORE_IPC
377static uint32_t ctx_stack_TFM_SP_IPC_SERVICE_TEST[
378 (sizeof(struct interrupted_ctx_stack_frame_t) +
379 (TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT) * (
380 sizeof(struct interrupted_ctx_stack_frame_t) +
381 sizeof(struct handler_ctx_stack_frame_t)
382 )) / sizeof(uint32_t)];
383#endif /* TFM_PARTITION_TEST_CORE_IPC */
384
385#ifdef TFM_PARTITION_TEST_CORE_IPC
386static uint32_t ctx_stack_TFM_SP_IPC_CLIENT_TEST[
387 (sizeof(struct interrupted_ctx_stack_frame_t) +
388 (TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT) * (
389 sizeof(struct interrupted_ctx_stack_frame_t) +
390 sizeof(struct handler_ctx_stack_frame_t)
391 )) / sizeof(uint32_t)];
392#endif /* TFM_PARTITION_TEST_CORE_IPC */
393
David Hu33f2fd22019-08-16 15:32:39 +0800394#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200395static uint32_t ctx_stack_TFM_IRQ_TEST_1[
396 (sizeof(struct interrupted_ctx_stack_frame_t) +
397 (TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT) * (
398 sizeof(struct interrupted_ctx_stack_frame_t) +
399 sizeof(struct handler_ctx_stack_frame_t)
400 )) / sizeof(uint32_t)];
David Hu33f2fd22019-08-16 15:32:39 +0800401#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200402
Jamie Fox0e823a02019-10-28 17:28:19 +0000403#ifdef TFM_PARTITION_TEST_SST
404static uint32_t ctx_stack_TFM_SP_SST_TEST[
405 (sizeof(struct interrupted_ctx_stack_frame_t) +
406 (TFM_PARTITION_TFM_SP_SST_TEST_IRQ_COUNT) * (
407 sizeof(struct interrupted_ctx_stack_frame_t) +
408 sizeof(struct handler_ctx_stack_frame_t)
409 )) / sizeof(uint32_t)];
410#endif /* TFM_PARTITION_TEST_SST */
411
Summer Qin423dbef2019-08-22 15:59:35 +0800412
413uint32_t *ctx_stack_list[] =
414{
415 ns_interrupt_ctx_stack,
416 tfm_core_interrupt_ctx_stack,
417 ctx_stack_TFM_SP_STORAGE,
TudorCretufb182bc2019-07-05 17:34:12 +0100418 ctx_stack_TFM_SP_ITS,
Summer Qin423dbef2019-08-22 15:59:35 +0800419#ifdef TFM_PARTITION_AUDIT_LOG
420 ctx_stack_TFM_SP_AUDIT_LOG,
421#endif /* TFM_PARTITION_AUDIT_LOG */
422 ctx_stack_TFM_SP_CRYPTO,
423#ifdef TFM_PARTITION_PLATFORM
424 ctx_stack_TFM_SP_PLATFORM,
425#endif /* TFM_PARTITION_PLATFORM */
426 ctx_stack_TFM_SP_INITIAL_ATTESTATION,
427#ifdef TFM_PARTITION_TEST_CORE
428 ctx_stack_TFM_SP_CORE_TEST,
429#endif /* TFM_PARTITION_TEST_CORE */
430#ifdef TFM_PARTITION_TEST_CORE
431 ctx_stack_TFM_SP_CORE_TEST_2,
432#endif /* TFM_PARTITION_TEST_CORE */
433#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
434 ctx_stack_TFM_SP_SECURE_TEST_PARTITION,
435#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
436#ifdef TFM_PARTITION_TEST_CORE_IPC
437 ctx_stack_TFM_SP_IPC_SERVICE_TEST,
438#endif /* TFM_PARTITION_TEST_CORE_IPC */
439#ifdef TFM_PARTITION_TEST_CORE_IPC
440 ctx_stack_TFM_SP_IPC_CLIENT_TEST,
441#endif /* TFM_PARTITION_TEST_CORE_IPC */
442#ifdef TFM_ENABLE_IRQ_TEST
443 ctx_stack_TFM_IRQ_TEST_1,
444#endif /* TFM_ENABLE_IRQ_TEST */
Jamie Fox0e823a02019-10-28 17:28:19 +0000445#ifdef TFM_PARTITION_TEST_SST
446 ctx_stack_TFM_SP_SST_TEST,
447#endif /* TFM_PARTITION_TEST_SST */
Summer Qin423dbef2019-08-22 15:59:35 +0800448};
Edison Ai66fbdf12019-07-08 16:05:07 +0800449#endif /* !defined(TFM_PSA_API) */
450
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200451/**************************************************************************/
Edison Aie728fbf2019-11-13 09:37:12 +0800452/** Dependencies array for Secure Partition */
453/**************************************************************************/
454static int32_t dependencies_TFM_SP_STORAGE[] =
455{
456 TFM_CRYPTO_SID,
457};
458
459static int32_t dependencies_TFM_SP_INITIAL_ATTESTATION[] =
460{
461 TFM_CRYPTO_SID,
462};
463
464#ifdef TFM_PARTITION_TEST_CORE
465static int32_t dependencies_TFM_SP_CORE_TEST[] =
466{
467 SPM_CORE_TEST_2_INVERT_SID,
468 SPM_CORE_TEST_2_GET_EVERY_SECOND_BYTE_SID,
469 SPM_CORE_TEST_2_SLAVE_SERVICE_SID,
470};
471#endif /* TFM_PARTITION_TEST_CORE */
472
473#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
474static int32_t dependencies_TFM_SP_SECURE_TEST_PARTITION[] =
475{
476 TFM_CRYPTO_SID,
477 TFM_SST_SET_SID,
478 TFM_SST_GET_SID,
479 TFM_SST_GET_INFO_SID,
480 TFM_SST_REMOVE_SID,
481 TFM_SST_GET_SUPPORT_SID,
482 TFM_ITS_SET_SID,
483 TFM_ITS_GET_SID,
484 TFM_ITS_GET_INFO_SID,
485 TFM_ITS_REMOVE_SID,
486 TFM_ATTEST_GET_TOKEN_SID,
487 TFM_ATTEST_GET_TOKEN_SIZE_SID,
488 TFM_ATTEST_GET_PUBLIC_KEY_SID,
489 TFM_SST_TEST_PREPARE_SID,
Edison Aia765f232019-12-06 15:41:38 +0800490 TFM_SP_PLATFORM_SYSTEM_RESET_SID,
491 TFM_SP_PLATFORM_IOCTL_SID,
Edison Aie728fbf2019-11-13 09:37:12 +0800492};
493#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
494
495#ifdef TFM_PARTITION_TEST_CORE_IPC
496static int32_t dependencies_TFM_SP_IPC_CLIENT_TEST[] =
497{
498 IPC_SERVICE_TEST_PSA_ACCESS_APP_READ_ONLY_MEM_SID,
499 IPC_SERVICE_TEST_PSA_ACCESS_APP_MEM_SID,
500 IPC_SERVICE_TEST_BASIC_SID,
501 IPC_SERVICE_TEST_APP_ACCESS_PSA_MEM_SID,
502};
503#endif /* TFM_PARTITION_TEST_CORE_IPC */
504
505#ifdef TFM_PARTITION_TEST_SST
506static int32_t dependencies_TFM_SP_SST_TEST[] =
507{
508 TFM_CRYPTO_SID,
509};
510#endif /* TFM_PARTITION_TEST_SST */
511
512/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +0800513/** The static data of the partition list */
514/**************************************************************************/
515const struct spm_partition_static_data_t static_data_list[] =
516{
517 {
Edison Aif0501702019-10-11 14:36:42 +0800518#ifdef TFM_PSA_API
519 .psa_framework_version = 0x0100,
520#endif /* defined(TFM_PSA_API) */
Summer Qin423dbef2019-08-22 15:59:35 +0800521 .partition_id = TFM_SP_NON_SECURE_ID,
522#ifdef TFM_PSA_API
David Hu90128b72019-09-23 16:35:41 +0800523#if TFM_MULTI_CORE_TOPOLOGY
524 .partition_flags = SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_IPC,
525#else
Summer Qin423dbef2019-08-22 15:59:35 +0800526 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_IPC,
David Hu90128b72019-09-23 16:35:41 +0800527#endif
Summer Qin423dbef2019-08-22 15:59:35 +0800528 .partition_priority = TFM_PRIORITY_LOW,
529 .partition_init = tfm_nspm_thread_entry,
530#else
531 .partition_flags = 0,
532#endif
533 },
534
535#ifndef TFM_PSA_API
536 {
537 .partition_id = TFM_SP_CORE_ID,
538 .partition_flags = SPM_PART_FLAG_APP_ROT | SPM_PART_FLAG_PSA_ROT,
539 },
540#endif
541
542 {
Edison Aif0501702019-10-11 14:36:42 +0800543#ifdef TFM_PSA_API
544 .psa_framework_version = 0x0100,
545#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800546 .partition_id = TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800547 .partition_flags = SPM_PART_FLAG_IPC
548 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
549 ,
550 .partition_priority = TFM_PRIORITY(NORMAL),
551 .partition_init = tfm_sst_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800552 .dependencies_num = 1,
553 .p_dependencies = dependencies_TFM_SP_STORAGE,
Summer Qin423dbef2019-08-22 15:59:35 +0800554 },
555
TudorCretufb182bc2019-07-05 17:34:12 +0100556 {
Edison Aif0501702019-10-11 14:36:42 +0800557#ifdef TFM_PSA_API
558 .psa_framework_version = 0x0100,
559#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800560 .partition_id = TFM_SP_ITS,
TudorCretufb182bc2019-07-05 17:34:12 +0100561 .partition_flags = SPM_PART_FLAG_IPC
562 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
563 ,
564 .partition_priority = TFM_PRIORITY(NORMAL),
565 .partition_init = tfm_its_req_mngr_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800566 .dependencies_num = 0,
567 .p_dependencies = NULL,
TudorCretufb182bc2019-07-05 17:34:12 +0100568 },
569
Summer Qin423dbef2019-08-22 15:59:35 +0800570#ifdef TFM_PARTITION_AUDIT_LOG
571 {
Edison Aif0501702019-10-11 14:36:42 +0800572#ifdef TFM_PSA_API
573 .psa_framework_version = 0x0100,
574#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800575 .partition_id = TFM_SP_AUDIT_LOG,
Summer Qin423dbef2019-08-22 15:59:35 +0800576 .partition_flags = 0
577 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
578 ,
579 .partition_priority = TFM_PRIORITY(NORMAL),
580 .partition_init = audit_core_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800581 .dependencies_num = 0,
582 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800583 },
584#endif /* TFM_PARTITION_AUDIT_LOG */
585
586 {
Edison Aif0501702019-10-11 14:36:42 +0800587#ifdef TFM_PSA_API
588 .psa_framework_version = 0x0100,
589#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800590 .partition_id = TFM_SP_CRYPTO,
Summer Qin423dbef2019-08-22 15:59:35 +0800591 .partition_flags = SPM_PART_FLAG_IPC
592 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
593 ,
594 .partition_priority = TFM_PRIORITY(NORMAL),
595 .partition_init = tfm_crypto_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800596 .dependencies_num = 0,
597 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800598 },
599
600#ifdef TFM_PARTITION_PLATFORM
601 {
Edison Aif0501702019-10-11 14:36:42 +0800602#ifdef TFM_PSA_API
603 .psa_framework_version = 0x0100,
604#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800605 .partition_id = TFM_SP_PLATFORM,
Mate Toth-Pal179a1562019-11-08 11:40:27 +0100606 .partition_flags = SPM_PART_FLAG_IPC
Summer Qin423dbef2019-08-22 15:59:35 +0800607 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
608 ,
609 .partition_priority = TFM_PRIORITY(NORMAL),
610 .partition_init = platform_sp_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800611 .dependencies_num = 0,
612 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800613 },
614#endif /* TFM_PARTITION_PLATFORM */
615
616 {
Edison Aif0501702019-10-11 14:36:42 +0800617#ifdef TFM_PSA_API
618 .psa_framework_version = 0x0100,
619#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800620 .partition_id = TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800621 .partition_flags = SPM_PART_FLAG_IPC
622 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
623 ,
624 .partition_priority = TFM_PRIORITY(NORMAL),
625 .partition_init = attest_partition_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800626 .dependencies_num = 1,
627 .p_dependencies = dependencies_TFM_SP_INITIAL_ATTESTATION,
Summer Qin423dbef2019-08-22 15:59:35 +0800628 },
629
630#ifdef TFM_PARTITION_TEST_CORE
631 {
Edison Aif0501702019-10-11 14:36:42 +0800632#ifdef TFM_PSA_API
633 .psa_framework_version = 0x0100,
634#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800635 .partition_id = TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800636 .partition_flags = SPM_PART_FLAG_IPC
Mate Toth-Palacae8bd2019-09-10 16:47:11 +0200637 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
Summer Qin423dbef2019-08-22 15:59:35 +0800638 ,
639 .partition_priority = TFM_PRIORITY(NORMAL),
640 .partition_init = core_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800641 .dependencies_num = 3,
642 .p_dependencies = dependencies_TFM_SP_CORE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800643 },
644#endif /* TFM_PARTITION_TEST_CORE */
645
646#ifdef TFM_PARTITION_TEST_CORE
647 {
Edison Aif0501702019-10-11 14:36:42 +0800648#ifdef TFM_PSA_API
649 .psa_framework_version = 0x0100,
650#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800651 .partition_id = TFM_SP_CORE_TEST_2,
Summer Qin423dbef2019-08-22 15:59:35 +0800652 .partition_flags = SPM_PART_FLAG_IPC
653 | SPM_PART_FLAG_APP_ROT
654 ,
655 .partition_priority = TFM_PRIORITY(NORMAL),
656 .partition_init = core_test_2_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800657 .dependencies_num = 0,
658 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800659 },
660#endif /* TFM_PARTITION_TEST_CORE */
661
662#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
663 {
Edison Aif0501702019-10-11 14:36:42 +0800664#ifdef TFM_PSA_API
665 .psa_framework_version = 0x0100,
666#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800667 .partition_id = TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800668 .partition_flags = SPM_PART_FLAG_IPC
669 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
670 ,
671 .partition_priority = TFM_PRIORITY(NORMAL),
672 .partition_init = tfm_secure_client_service_init,
Edison Aia765f232019-12-06 15:41:38 +0800673 .dependencies_num = 16,
Edison Aie728fbf2019-11-13 09:37:12 +0800674 .p_dependencies = dependencies_TFM_SP_SECURE_TEST_PARTITION,
Summer Qin423dbef2019-08-22 15:59:35 +0800675 },
676#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
677
678#ifdef TFM_PARTITION_TEST_CORE_IPC
679 {
Edison Aif0501702019-10-11 14:36:42 +0800680#ifdef TFM_PSA_API
681 .psa_framework_version = 0x0100,
682#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800683 .partition_id = TFM_SP_IPC_SERVICE_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800684 .partition_flags = SPM_PART_FLAG_IPC
685 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
686 ,
687 .partition_priority = TFM_PRIORITY(HIGH),
688 .partition_init = ipc_service_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800689 .dependencies_num = 0,
690 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800691 },
692#endif /* TFM_PARTITION_TEST_CORE_IPC */
693
694#ifdef TFM_PARTITION_TEST_CORE_IPC
695 {
Edison Aif0501702019-10-11 14:36:42 +0800696#ifdef TFM_PSA_API
697 .psa_framework_version = 0x0100,
698#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800699 .partition_id = TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800700 .partition_flags = SPM_PART_FLAG_IPC
701 | SPM_PART_FLAG_APP_ROT
702 ,
703 .partition_priority = TFM_PRIORITY(NORMAL),
704 .partition_init = ipc_client_test_main,
Edison Aie728fbf2019-11-13 09:37:12 +0800705 .dependencies_num = 4,
706 .p_dependencies = dependencies_TFM_SP_IPC_CLIENT_TEST,
Summer Qin423dbef2019-08-22 15:59:35 +0800707 },
708#endif /* TFM_PARTITION_TEST_CORE_IPC */
709
710#ifdef TFM_ENABLE_IRQ_TEST
711 {
Edison Aif0501702019-10-11 14:36:42 +0800712#ifdef TFM_PSA_API
713 .psa_framework_version = 0x0100,
714#endif /* defined(TFM_PSA_API) */
Edison Aib2134e62019-10-11 18:24:47 +0800715 .partition_id = TFM_IRQ_TEST_1,
Summer Qin423dbef2019-08-22 15:59:35 +0800716 .partition_flags = SPM_PART_FLAG_IPC
717 | SPM_PART_FLAG_APP_ROT
718 ,
719 .partition_priority = TFM_PRIORITY(NORMAL),
720 .partition_init = tfm_irq_test_1_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800721 .dependencies_num = 0,
722 .p_dependencies = NULL,
Summer Qin423dbef2019-08-22 15:59:35 +0800723 },
724#endif /* TFM_ENABLE_IRQ_TEST */
725
Jamie Fox0e823a02019-10-28 17:28:19 +0000726#ifdef TFM_PARTITION_TEST_SST
727 {
728#ifdef TFM_PSA_API
729 .psa_framework_version = 0x0100,
730#endif /* defined(TFM_PSA_API) */
731 .partition_id = TFM_SP_SST_TEST,
732 .partition_flags = SPM_PART_FLAG_IPC
733 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
734 ,
735 .partition_priority = TFM_PRIORITY(NORMAL),
736 .partition_init = tfm_sst_test_init,
Edison Aie728fbf2019-11-13 09:37:12 +0800737 .dependencies_num = 1,
738 .p_dependencies = dependencies_TFM_SP_SST_TEST,
Jamie Fox0e823a02019-10-28 17:28:19 +0000739 },
740#endif /* TFM_PARTITION_TEST_SST */
741
Summer Qin423dbef2019-08-22 15:59:35 +0800742};
743
744/**************************************************************************/
745/** The platform data of the partition list */
746/**************************************************************************/
747const struct tfm_spm_partition_platform_data_t *platform_data_list[] =
748{
749 NULL,
750
751#ifndef TFM_PSA_API
752 NULL,
753#endif
754
755 NULL,
756
TudorCretufb182bc2019-07-05 17:34:12 +0100757 NULL,
758
Summer Qin423dbef2019-08-22 15:59:35 +0800759#ifdef TFM_PARTITION_AUDIT_LOG
760 /* FIXME: Only adding the first mmio region */
761#ifdef AUDIT_UART_REDIRECTION
762 TFM_PERIPHERAL_UART1,
763#else /* AUDIT_UART_REDIRECTION */
764 NULL,
765#endif /* AUDIT_UART_REDIRECTION */
766#endif /* TFM_PARTITION_AUDIT_LOG */
767
768 NULL,
769
770#ifdef TFM_PARTITION_PLATFORM
771 NULL,
772#endif /* TFM_PARTITION_PLATFORM */
773
774 NULL,
775
776#ifdef TFM_PARTITION_TEST_CORE
777 /* FIXME: Only adding the first mmio region */
778 TFM_PERIPHERAL_FPGA_IO,
779#endif /* TFM_PARTITION_TEST_CORE */
780
781#ifdef TFM_PARTITION_TEST_CORE
782 NULL,
783#endif /* TFM_PARTITION_TEST_CORE */
784
785#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
786 /* FIXME: Only adding the first mmio region */
787 TFM_PERIPHERAL_STD_UART,
788#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
789
790#ifdef TFM_PARTITION_TEST_CORE_IPC
791 NULL,
792#endif /* TFM_PARTITION_TEST_CORE_IPC */
793
794#ifdef TFM_PARTITION_TEST_CORE_IPC
795 NULL,
796#endif /* TFM_PARTITION_TEST_CORE_IPC */
797
798#ifdef TFM_ENABLE_IRQ_TEST
799 /* FIXME: Only adding the first mmio region */
800 TFM_PERIPHERAL_TIMER0,
801#endif /* TFM_ENABLE_IRQ_TEST */
802
Jamie Fox0e823a02019-10-28 17:28:19 +0000803#ifdef TFM_PARTITION_TEST_SST
804 NULL,
805#endif /* TFM_PARTITION_TEST_SST */
806
Summer Qin423dbef2019-08-22 15:59:35 +0800807};
808
809/**************************************************************************/
810/** The memory data of the partition list */
811/**************************************************************************/
812#ifdef TFM_PSA_API
813const struct tfm_spm_partition_memory_data_t memory_data_list[] =
814{
815 {
816 .stack_bottom = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
817 .stack_top = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Limit),
818 .rw_start = PART_REGION_ADDR(ARM_LIB_STACK, $$ZI$$Base),
819 },
820 {
Edison Aib2134e62019-10-11 18:24:47 +0800821 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Base),
822 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$Limit),
823 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Base),
824 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, $$RO$$Limit),
825 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Base),
826 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$RW$$Limit),
827 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Base),
828 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _DATA$$ZI$$Limit),
829 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Base),
830 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800831 },
832
TudorCretufb182bc2019-07-05 17:34:12 +0100833 {
Edison Aib2134e62019-10-11 18:24:47 +0800834 .code_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Base),
835 .code_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$Limit),
836 .ro_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Base),
837 .ro_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, $$RO$$Limit),
838 .rw_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Base),
839 .rw_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$RW$$Limit),
840 .zi_start = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Base),
841 .zi_limit = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _DATA$$ZI$$Limit),
842 .stack_bottom = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Base),
843 .stack_top = PART_REGION_ADDR(TFM_SP_ITS_LINKER, _STACK$$ZI$$Limit),
TudorCretufb182bc2019-07-05 17:34:12 +0100844 },
845
Summer Qin423dbef2019-08-22 15:59:35 +0800846#ifdef TFM_PARTITION_AUDIT_LOG
847 {
Edison Aib2134e62019-10-11 18:24:47 +0800848 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Base),
849 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$Limit),
850 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Base),
851 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, $$RO$$Limit),
852 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Base),
853 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$RW$$Limit),
854 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Base),
855 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _DATA$$ZI$$Limit),
856 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Base),
857 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800858 },
859#endif /* TFM_PARTITION_AUDIT_LOG */
860
861 {
Edison Aib2134e62019-10-11 18:24:47 +0800862 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Base),
863 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$Limit),
864 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Base),
865 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, $$RO$$Limit),
866 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Base),
867 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$RW$$Limit),
868 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Base),
869 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _DATA$$ZI$$Limit),
870 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Base),
871 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800872 },
873
874#ifdef TFM_PARTITION_PLATFORM
875 {
Edison Aib2134e62019-10-11 18:24:47 +0800876 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Base),
877 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$Limit),
878 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Base),
879 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, $$RO$$Limit),
880 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Base),
881 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$RW$$Limit),
882 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Base),
883 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _DATA$$ZI$$Limit),
884 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Base),
885 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800886 },
887#endif /* TFM_PARTITION_PLATFORM */
888
889 {
Edison Aib2134e62019-10-11 18:24:47 +0800890 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Base),
891 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$Limit),
892 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Base),
893 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, $$RO$$Limit),
894 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Base),
895 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$RW$$Limit),
896 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Base),
897 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _DATA$$ZI$$Limit),
898 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Base),
899 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800900 },
901
902#ifdef TFM_PARTITION_TEST_CORE
903 {
Edison Aib2134e62019-10-11 18:24:47 +0800904 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Base),
905 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$Limit),
906 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Base),
907 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, $$RO$$Limit),
908 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Base),
909 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$RW$$Limit),
910 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Base),
911 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _DATA$$ZI$$Limit),
912 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Base),
913 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800914 },
915#endif /* TFM_PARTITION_TEST_CORE */
916
917#ifdef TFM_PARTITION_TEST_CORE
918 {
Edison Aib2134e62019-10-11 18:24:47 +0800919 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Base),
920 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$Limit),
921 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Base),
922 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, $$RO$$Limit),
923 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Base),
924 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$RW$$Limit),
925 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Base),
926 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _DATA$$ZI$$Limit),
927 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Base),
928 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800929 },
930#endif /* TFM_PARTITION_TEST_CORE */
931
932#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
933 {
Edison Aib2134e62019-10-11 18:24:47 +0800934 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Base),
935 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$Limit),
936 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Base),
937 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, $$RO$$Limit),
938 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Base),
939 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$RW$$Limit),
940 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Base),
941 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _DATA$$ZI$$Limit),
942 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Base),
943 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800944 },
945#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
946
947#ifdef TFM_PARTITION_TEST_CORE_IPC
948 {
Edison Aib2134e62019-10-11 18:24:47 +0800949 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Base),
950 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$Limit),
951 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Base),
952 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, $$RO$$Limit),
953 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Base),
954 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$RW$$Limit),
955 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Base),
956 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _DATA$$ZI$$Limit),
957 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Base),
958 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800959 },
960#endif /* TFM_PARTITION_TEST_CORE_IPC */
961
962#ifdef TFM_PARTITION_TEST_CORE_IPC
963 {
Edison Aib2134e62019-10-11 18:24:47 +0800964 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Base),
965 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$Limit),
966 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Base),
967 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, $$RO$$Limit),
968 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Base),
969 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$RW$$Limit),
970 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Base),
971 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _DATA$$ZI$$Limit),
972 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Base),
973 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800974 },
975#endif /* TFM_PARTITION_TEST_CORE_IPC */
976
977#ifdef TFM_ENABLE_IRQ_TEST
978 {
Edison Aib2134e62019-10-11 18:24:47 +0800979 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Base),
980 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$Limit),
981 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Base),
982 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, $$RO$$Limit),
983 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Base),
984 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$RW$$Limit),
985 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Base),
986 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _DATA$$ZI$$Limit),
987 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Base),
988 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1_LINKER, _STACK$$ZI$$Limit),
Summer Qin423dbef2019-08-22 15:59:35 +0800989 },
990#endif /* TFM_ENABLE_IRQ_TEST */
991
Jamie Fox0e823a02019-10-28 17:28:19 +0000992#ifdef TFM_PARTITION_TEST_SST
993 {
994 .code_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Base),
995 .code_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$Limit),
996 .ro_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Base),
997 .ro_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, $$RO$$Limit),
998 .rw_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Base),
999 .rw_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$RW$$Limit),
1000 .zi_start = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Base),
1001 .zi_limit = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _DATA$$ZI$$Limit),
1002 .stack_bottom = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Base),
1003 .stack_top = PART_REGION_ADDR(TFM_SP_SST_TEST_LINKER, _STACK$$ZI$$Limit),
1004 },
1005#endif /* TFM_PARTITION_TEST_SST */
1006
Summer Qin423dbef2019-08-22 15:59:35 +08001007};
1008#endif /* defined(TFM_PSA_API) */
1009
1010/**************************************************************************/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001011/** The partition list for the DB */
1012/**************************************************************************/
Summer Qin423dbef2019-08-22 15:59:35 +08001013static struct spm_partition_desc_t partition_list [] =
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001014{
Summer Qin423dbef2019-08-22 15:59:35 +08001015 {{}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001016#ifndef TFM_PSA_API
Summer Qin423dbef2019-08-22 15:59:35 +08001017 {{}}, /* placeholder for TF-M Core internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +08001018#endif /* !ifndefined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001019
1020 /* -----------------------------------------------------------------------*/
1021 /* - Partition DB record for TFM_SP_STORAGE */
1022 /* -----------------------------------------------------------------------*/
1023 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001024 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001025 .runtime_data = {},
1026 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001027 .platform_data = NULL,
1028
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001029 },
1030
1031 /* -----------------------------------------------------------------------*/
TudorCretufb182bc2019-07-05 17:34:12 +01001032 /* - Partition DB record for TFM_SP_ITS */
1033 /* -----------------------------------------------------------------------*/
1034 {
1035 /* Runtime data */
1036 .runtime_data = {},
1037 .static_data = NULL,
1038 .platform_data = NULL,
1039
1040 },
1041
1042 /* -----------------------------------------------------------------------*/
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001043 /* - Partition DB record for TFM_SP_AUDIT_LOG */
1044 /* -----------------------------------------------------------------------*/
1045#ifdef TFM_PARTITION_AUDIT_LOG
1046 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001047 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001048 .runtime_data = {},
1049 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001050 .platform_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001051
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001052 },
1053#endif /* TFM_PARTITION_AUDIT_LOG */
1054
1055 /* -----------------------------------------------------------------------*/
1056 /* - Partition DB record for TFM_SP_CRYPTO */
1057 /* -----------------------------------------------------------------------*/
1058 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001059 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001060 .runtime_data = {},
1061 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001062 .platform_data = NULL,
1063
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001064 },
1065
1066 /* -----------------------------------------------------------------------*/
1067 /* - Partition DB record for TFM_SP_PLATFORM */
1068 /* -----------------------------------------------------------------------*/
1069#ifdef TFM_PARTITION_PLATFORM
1070 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001071 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001072 .runtime_data = {},
1073 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001074 .platform_data = NULL,
1075
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001076 },
1077#endif /* TFM_PARTITION_PLATFORM */
1078
1079 /* -----------------------------------------------------------------------*/
1080 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
1081 /* -----------------------------------------------------------------------*/
1082 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001083 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001084 .runtime_data = {},
1085 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001086 .platform_data = NULL,
1087
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001088 },
1089
1090 /* -----------------------------------------------------------------------*/
1091 /* - Partition DB record for TFM_SP_CORE_TEST */
1092 /* -----------------------------------------------------------------------*/
1093#ifdef TFM_PARTITION_TEST_CORE
1094 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001095 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001096 .runtime_data = {},
1097 .static_data = NULL,
1098 .platform_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001099
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001100 },
1101#endif /* TFM_PARTITION_TEST_CORE */
1102
1103 /* -----------------------------------------------------------------------*/
1104 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
1105 /* -----------------------------------------------------------------------*/
1106#ifdef TFM_PARTITION_TEST_CORE
1107 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001108 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001109 .runtime_data = {},
1110 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001111 .platform_data = NULL,
1112
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001113 },
1114#endif /* TFM_PARTITION_TEST_CORE */
1115
1116 /* -----------------------------------------------------------------------*/
1117 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1118 /* -----------------------------------------------------------------------*/
1119#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1120 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001121 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001122 .runtime_data = {},
1123 .static_data = NULL,
1124 .platform_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001125
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001126 },
1127#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1128
1129 /* -----------------------------------------------------------------------*/
1130 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1131 /* -----------------------------------------------------------------------*/
1132#ifdef TFM_PARTITION_TEST_CORE_IPC
1133 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001134 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001135 .runtime_data = {},
1136 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001137 .platform_data = NULL,
1138
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001139 },
1140#endif /* TFM_PARTITION_TEST_CORE_IPC */
1141
1142 /* -----------------------------------------------------------------------*/
1143 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1144 /* -----------------------------------------------------------------------*/
1145#ifdef TFM_PARTITION_TEST_CORE_IPC
1146 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001147 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001148 .runtime_data = {},
1149 .static_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001150 .platform_data = NULL,
1151
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001152 },
1153#endif /* TFM_PARTITION_TEST_CORE_IPC */
1154
1155 /* -----------------------------------------------------------------------*/
1156 /* - Partition DB record for TFM_IRQ_TEST_1 */
1157 /* -----------------------------------------------------------------------*/
David Hu33f2fd22019-08-16 15:32:39 +08001158#ifdef TFM_ENABLE_IRQ_TEST
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001159 {
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001160 /* Runtime data */
Summer Qin423dbef2019-08-22 15:59:35 +08001161 .runtime_data = {},
1162 .static_data = NULL,
1163 .platform_data = NULL,
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001164
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001165 },
David Hu33f2fd22019-08-16 15:32:39 +08001166#endif /* TFM_ENABLE_IRQ_TEST */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001167
Jamie Fox0e823a02019-10-28 17:28:19 +00001168 /* -----------------------------------------------------------------------*/
1169 /* - Partition DB record for TFM_SP_SST_TEST */
1170 /* -----------------------------------------------------------------------*/
1171#ifdef TFM_PARTITION_TEST_SST
1172 {
1173 /* Runtime data */
1174 .runtime_data = {},
1175 .static_data = NULL,
1176 .platform_data = NULL,
1177
1178 },
1179#endif /* TFM_PARTITION_TEST_SST */
1180
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001181};
1182
1183struct spm_partition_db_t g_spm_partition_db = {
1184 .is_init = 0,
1185 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001186#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001187 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001188#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001189 .partitions = partition_list,
1190};
1191
1192#endif /* __TFM_SPM_DB_INC__ */