blob: c3db3656a9c660a2ac888941abcb93eb084b4980 [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"
14
15/**************************************************************************/
16/** IRQ count per partition */
17/**************************************************************************/
18#define TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT 0
19
20#ifdef TFM_PARTITION_AUDIT_LOG
21#define TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT 0
22#endif /* TFM_PARTITION_AUDIT_LOG */
23
24#define TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT 0
25
26#ifdef TFM_PARTITION_PLATFORM
27#define TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT 0
28#endif /* TFM_PARTITION_PLATFORM */
29
30#define TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT 0
31
32#ifdef TFM_PARTITION_TEST_CORE
33#define TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT 0
34#endif /* TFM_PARTITION_TEST_CORE */
35
36#ifdef TFM_PARTITION_TEST_CORE
37#define TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT 0
38#endif /* TFM_PARTITION_TEST_CORE */
39
40#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
41#define TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT 0
42#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
43
44#ifdef TFM_PARTITION_TEST_CORE_IPC
45#define TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT 0
46#endif /* TFM_PARTITION_TEST_CORE_IPC */
47
48#ifdef TFM_PARTITION_TEST_CORE_IPC
49#define TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT 0
50#endif /* TFM_PARTITION_TEST_CORE_IPC */
51
52#ifdef TFM_PARTITION_TEST_CORE
53#define TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT 1
54#endif /* TFM_PARTITION_TEST_CORE */
55
56/**************************************************************************/
57/** Declarations of partition init functions */
58/**************************************************************************/
59extern int32_t tfm_sst_req_mngr_init(void);
60
61#ifdef TFM_PARTITION_AUDIT_LOG
62extern int32_t audit_core_init(void);
63#endif /* TFM_PARTITION_AUDIT_LOG */
64
65extern int32_t tfm_crypto_init(void);
66
67#ifdef TFM_PARTITION_PLATFORM
68extern int32_t platform_sp_init(void);
69#endif /* TFM_PARTITION_PLATFORM */
70
71extern int32_t attest_partition_init(void);
72
73#ifdef TFM_PARTITION_TEST_CORE
74extern int32_t core_test_init(void);
75#endif /* TFM_PARTITION_TEST_CORE */
76
77#ifdef TFM_PARTITION_TEST_CORE
78extern int32_t core_test_2_init(void);
79#endif /* TFM_PARTITION_TEST_CORE */
80
81#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
82extern int32_t tfm_secure_client_service_init(void);
83#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
84
85#ifdef TFM_PARTITION_TEST_CORE_IPC
86extern int32_t ipc_service_test_main(void);
87#endif /* TFM_PARTITION_TEST_CORE_IPC */
88
89#ifdef TFM_PARTITION_TEST_CORE_IPC
90extern int32_t ipc_client_test_main(void);
91#endif /* TFM_PARTITION_TEST_CORE_IPC */
92
93#ifdef TFM_PARTITION_TEST_CORE
94extern int32_t tfm_irq_test_1_init(void);
95#endif /* TFM_PARTITION_TEST_CORE */
96
97/**************************************************************************/
98/** Memory region declarations */
99/**************************************************************************/
100REGION_DECLARE(Image$$, TFM_SP_STORAGE, $$Base);
101REGION_DECLARE(Image$$, TFM_SP_STORAGE, $$Limit);
102REGION_DECLARE(Image$$, TFM_SP_STORAGE, $$RO$$Base);
103REGION_DECLARE(Image$$, TFM_SP_STORAGE, $$RO$$Limit);
104REGION_DECLARE(Image$$, TFM_SP_STORAGE, _DATA$$RW$$Base);
105REGION_DECLARE(Image$$, TFM_SP_STORAGE, _DATA$$RW$$Limit);
106REGION_DECLARE(Image$$, TFM_SP_STORAGE, _DATA$$ZI$$Base);
107REGION_DECLARE(Image$$, TFM_SP_STORAGE, _DATA$$ZI$$Limit);
108REGION_DECLARE(Image$$, TFM_SP_STORAGE, _STACK$$ZI$$Base);
109REGION_DECLARE(Image$$, TFM_SP_STORAGE, _STACK$$ZI$$Limit);
110
111#ifdef TFM_PARTITION_AUDIT_LOG
112REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, $$Base);
113REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, $$Limit);
114REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, $$RO$$Base);
115REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, $$RO$$Limit);
116REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, _DATA$$RW$$Base);
117REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, _DATA$$RW$$Limit);
118REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, _DATA$$ZI$$Base);
119REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, _DATA$$ZI$$Limit);
120REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, _STACK$$ZI$$Base);
121REGION_DECLARE(Image$$, TFM_SP_AUDIT_LOG, _STACK$$ZI$$Limit);
122#endif /* TFM_PARTITION_AUDIT_LOG */
123
124REGION_DECLARE(Image$$, TFM_SP_CRYPTO, $$Base);
125REGION_DECLARE(Image$$, TFM_SP_CRYPTO, $$Limit);
126REGION_DECLARE(Image$$, TFM_SP_CRYPTO, $$RO$$Base);
127REGION_DECLARE(Image$$, TFM_SP_CRYPTO, $$RO$$Limit);
128REGION_DECLARE(Image$$, TFM_SP_CRYPTO, _DATA$$RW$$Base);
129REGION_DECLARE(Image$$, TFM_SP_CRYPTO, _DATA$$RW$$Limit);
130REGION_DECLARE(Image$$, TFM_SP_CRYPTO, _DATA$$ZI$$Base);
131REGION_DECLARE(Image$$, TFM_SP_CRYPTO, _DATA$$ZI$$Limit);
132REGION_DECLARE(Image$$, TFM_SP_CRYPTO, _STACK$$ZI$$Base);
133REGION_DECLARE(Image$$, TFM_SP_CRYPTO, _STACK$$ZI$$Limit);
134
135#ifdef TFM_PARTITION_PLATFORM
136REGION_DECLARE(Image$$, TFM_SP_PLATFORM, $$Base);
137REGION_DECLARE(Image$$, TFM_SP_PLATFORM, $$Limit);
138REGION_DECLARE(Image$$, TFM_SP_PLATFORM, $$RO$$Base);
139REGION_DECLARE(Image$$, TFM_SP_PLATFORM, $$RO$$Limit);
140REGION_DECLARE(Image$$, TFM_SP_PLATFORM, _DATA$$RW$$Base);
141REGION_DECLARE(Image$$, TFM_SP_PLATFORM, _DATA$$RW$$Limit);
142REGION_DECLARE(Image$$, TFM_SP_PLATFORM, _DATA$$ZI$$Base);
143REGION_DECLARE(Image$$, TFM_SP_PLATFORM, _DATA$$ZI$$Limit);
144REGION_DECLARE(Image$$, TFM_SP_PLATFORM, _STACK$$ZI$$Base);
145REGION_DECLARE(Image$$, TFM_SP_PLATFORM, _STACK$$ZI$$Limit);
146#endif /* TFM_PARTITION_PLATFORM */
147
148REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, $$Base);
149REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, $$Limit);
150REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, $$RO$$Base);
151REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, $$RO$$Limit);
152REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, _DATA$$RW$$Base);
153REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, _DATA$$RW$$Limit);
154REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, _DATA$$ZI$$Base);
155REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, _DATA$$ZI$$Limit);
156REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, _STACK$$ZI$$Base);
157REGION_DECLARE(Image$$, TFM_SP_INITIAL_ATTESTATION, _STACK$$ZI$$Limit);
158
159#ifdef TFM_PARTITION_TEST_CORE
160REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, $$Base);
161REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, $$Limit);
162REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, $$RO$$Base);
163REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, $$RO$$Limit);
164REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, _DATA$$RW$$Base);
165REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, _DATA$$RW$$Limit);
166REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, _DATA$$ZI$$Base);
167REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, _DATA$$ZI$$Limit);
168REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, _STACK$$ZI$$Base);
169REGION_DECLARE(Image$$, TFM_SP_CORE_TEST, _STACK$$ZI$$Limit);
170#endif /* TFM_PARTITION_TEST_CORE */
171
172#ifdef TFM_PARTITION_TEST_CORE
173REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, $$Base);
174REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, $$Limit);
175REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, $$RO$$Base);
176REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, $$RO$$Limit);
177REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, _DATA$$RW$$Base);
178REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, _DATA$$RW$$Limit);
179REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, _DATA$$ZI$$Base);
180REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, _DATA$$ZI$$Limit);
181REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, _STACK$$ZI$$Base);
182REGION_DECLARE(Image$$, TFM_SP_CORE_TEST_2, _STACK$$ZI$$Limit);
183#endif /* TFM_PARTITION_TEST_CORE */
184
185#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
186REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, $$Base);
187REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, $$Limit);
188REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, $$RO$$Base);
189REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, $$RO$$Limit);
190REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, _DATA$$RW$$Base);
191REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, _DATA$$RW$$Limit);
192REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, _DATA$$ZI$$Base);
193REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, _DATA$$ZI$$Limit);
194REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, _STACK$$ZI$$Base);
195REGION_DECLARE(Image$$, TFM_SP_SECURE_TEST_PARTITION, _STACK$$ZI$$Limit);
196#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
197
198#ifdef TFM_PARTITION_TEST_CORE_IPC
199REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, $$Base);
200REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, $$Limit);
201REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, $$RO$$Base);
202REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, $$RO$$Limit);
203REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, _DATA$$RW$$Base);
204REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, _DATA$$RW$$Limit);
205REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, _DATA$$ZI$$Base);
206REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, _DATA$$ZI$$Limit);
207REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, _STACK$$ZI$$Base);
208REGION_DECLARE(Image$$, TFM_SP_IPC_SERVICE_TEST, _STACK$$ZI$$Limit);
209#endif /* TFM_PARTITION_TEST_CORE_IPC */
210
211#ifdef TFM_PARTITION_TEST_CORE_IPC
212REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, $$Base);
213REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, $$Limit);
214REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, $$RO$$Base);
215REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, $$RO$$Limit);
216REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, _DATA$$RW$$Base);
217REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, _DATA$$RW$$Limit);
218REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, _DATA$$ZI$$Base);
219REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, _DATA$$ZI$$Limit);
220REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, _STACK$$ZI$$Base);
221REGION_DECLARE(Image$$, TFM_SP_IPC_CLIENT_TEST, _STACK$$ZI$$Limit);
222#endif /* TFM_PARTITION_TEST_CORE_IPC */
223
224#ifdef TFM_PARTITION_TEST_CORE
225REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, $$Base);
226REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, $$Limit);
227REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, $$RO$$Base);
228REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, $$RO$$Limit);
229REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, _DATA$$RW$$Base);
230REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, _DATA$$RW$$Limit);
231REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, _DATA$$ZI$$Base);
232REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, _DATA$$ZI$$Limit);
233REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, _STACK$$ZI$$Base);
234REGION_DECLARE(Image$$, TFM_IRQ_TEST_1, _STACK$$ZI$$Limit);
235#endif /* TFM_PARTITION_TEST_CORE */
236
Edison Ai66fbdf12019-07-08 16:05:07 +0800237#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200238/**************************************************************************/
239/** Context stacks for IRQ handling */
240/**************************************************************************/
241/* The max size of the context stack can be calculated as a function of the IRQ
242 * count of the secure partition:
243 *
244 * max_stack_size = intr_ctx_size + (IRQ_CNT * (intr_ctx_size + hndl_ctx_size))
245 *
246 * where:
247 * intr_ctx: Frame pushed when the partition is interrupted
248 * hndl_ctx: Frame pushed when the partition is handling an interrupt
249 */
250static uint32_t ctx_stack_TFM_SP_STORAGE[
251 (sizeof(struct interrupted_ctx_stack_frame_t) +
252 (TFM_PARTITION_TFM_SP_STORAGE_IRQ_COUNT) * (
253 sizeof(struct interrupted_ctx_stack_frame_t) +
254 sizeof(struct handler_ctx_stack_frame_t)
255 )) / sizeof(uint32_t)];
256
257#ifdef TFM_PARTITION_AUDIT_LOG
258static uint32_t ctx_stack_TFM_SP_AUDIT_LOG[
259 (sizeof(struct interrupted_ctx_stack_frame_t) +
260 (TFM_PARTITION_TFM_SP_AUDIT_LOG_IRQ_COUNT) * (
261 sizeof(struct interrupted_ctx_stack_frame_t) +
262 sizeof(struct handler_ctx_stack_frame_t)
263 )) / sizeof(uint32_t)];
264#endif /* TFM_PARTITION_AUDIT_LOG */
265
266static uint32_t ctx_stack_TFM_SP_CRYPTO[
267 (sizeof(struct interrupted_ctx_stack_frame_t) +
268 (TFM_PARTITION_TFM_SP_CRYPTO_IRQ_COUNT) * (
269 sizeof(struct interrupted_ctx_stack_frame_t) +
270 sizeof(struct handler_ctx_stack_frame_t)
271 )) / sizeof(uint32_t)];
272
273#ifdef TFM_PARTITION_PLATFORM
274static uint32_t ctx_stack_TFM_SP_PLATFORM[
275 (sizeof(struct interrupted_ctx_stack_frame_t) +
276 (TFM_PARTITION_TFM_SP_PLATFORM_IRQ_COUNT) * (
277 sizeof(struct interrupted_ctx_stack_frame_t) +
278 sizeof(struct handler_ctx_stack_frame_t)
279 )) / sizeof(uint32_t)];
280#endif /* TFM_PARTITION_PLATFORM */
281
282static uint32_t ctx_stack_TFM_SP_INITIAL_ATTESTATION[
283 (sizeof(struct interrupted_ctx_stack_frame_t) +
284 (TFM_PARTITION_TFM_SP_INITIAL_ATTESTATION_IRQ_COUNT) * (
285 sizeof(struct interrupted_ctx_stack_frame_t) +
286 sizeof(struct handler_ctx_stack_frame_t)
287 )) / sizeof(uint32_t)];
288
289#ifdef TFM_PARTITION_TEST_CORE
290static uint32_t ctx_stack_TFM_SP_CORE_TEST[
291 (sizeof(struct interrupted_ctx_stack_frame_t) +
292 (TFM_PARTITION_TFM_SP_CORE_TEST_IRQ_COUNT) * (
293 sizeof(struct interrupted_ctx_stack_frame_t) +
294 sizeof(struct handler_ctx_stack_frame_t)
295 )) / sizeof(uint32_t)];
296#endif /* TFM_PARTITION_TEST_CORE */
297
298#ifdef TFM_PARTITION_TEST_CORE
299static uint32_t ctx_stack_TFM_SP_CORE_TEST_2[
300 (sizeof(struct interrupted_ctx_stack_frame_t) +
301 (TFM_PARTITION_TFM_SP_CORE_TEST_2_IRQ_COUNT) * (
302 sizeof(struct interrupted_ctx_stack_frame_t) +
303 sizeof(struct handler_ctx_stack_frame_t)
304 )) / sizeof(uint32_t)];
305#endif /* TFM_PARTITION_TEST_CORE */
306
307#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
308static uint32_t ctx_stack_TFM_SP_SECURE_TEST_PARTITION[
309 (sizeof(struct interrupted_ctx_stack_frame_t) +
310 (TFM_PARTITION_TFM_SP_SECURE_TEST_PARTITION_IRQ_COUNT) * (
311 sizeof(struct interrupted_ctx_stack_frame_t) +
312 sizeof(struct handler_ctx_stack_frame_t)
313 )) / sizeof(uint32_t)];
314#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
315
316#ifdef TFM_PARTITION_TEST_CORE_IPC
317static uint32_t ctx_stack_TFM_SP_IPC_SERVICE_TEST[
318 (sizeof(struct interrupted_ctx_stack_frame_t) +
319 (TFM_PARTITION_TFM_SP_IPC_SERVICE_TEST_IRQ_COUNT) * (
320 sizeof(struct interrupted_ctx_stack_frame_t) +
321 sizeof(struct handler_ctx_stack_frame_t)
322 )) / sizeof(uint32_t)];
323#endif /* TFM_PARTITION_TEST_CORE_IPC */
324
325#ifdef TFM_PARTITION_TEST_CORE_IPC
326static uint32_t ctx_stack_TFM_SP_IPC_CLIENT_TEST[
327 (sizeof(struct interrupted_ctx_stack_frame_t) +
328 (TFM_PARTITION_TFM_SP_IPC_CLIENT_TEST_IRQ_COUNT) * (
329 sizeof(struct interrupted_ctx_stack_frame_t) +
330 sizeof(struct handler_ctx_stack_frame_t)
331 )) / sizeof(uint32_t)];
332#endif /* TFM_PARTITION_TEST_CORE_IPC */
333
334#ifdef TFM_PARTITION_TEST_CORE
335static uint32_t ctx_stack_TFM_IRQ_TEST_1[
336 (sizeof(struct interrupted_ctx_stack_frame_t) +
337 (TFM_PARTITION_TFM_IRQ_TEST_1_IRQ_COUNT) * (
338 sizeof(struct interrupted_ctx_stack_frame_t) +
339 sizeof(struct handler_ctx_stack_frame_t)
340 )) / sizeof(uint32_t)];
341#endif /* TFM_PARTITION_TEST_CORE */
342
Edison Ai66fbdf12019-07-08 16:05:07 +0800343#endif /* !defined(TFM_PSA_API) */
344
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200345/**************************************************************************/
346/** The partition list for the DB */
347/**************************************************************************/
348struct spm_partition_desc_t partition_list [] =
349{
350 {{0}}, /* placeholder for Non-secure internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +0800351#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200352 {{0}}, /* placeholder for TF-M Core internal partition */
Mingyang Sunda01a972019-07-12 17:32:59 +0800353#endif /* !ifndefined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200354
355 /* -----------------------------------------------------------------------*/
356 /* - Partition DB record for TFM_SP_STORAGE */
357 /* -----------------------------------------------------------------------*/
358 {
359 /* Static data */
360 {
361 .partition_id = TFM_SP_STORAGE_ID,
362 .partition_flags = SPM_PART_FLAG_IPC
363 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
364 ,
365 .partition_priority = TFM_PRIORITY(NORMAL),
366 .partition_init = tfm_sst_req_mngr_init,
367 },
368
369 /* Runtime data */
370 {
Edison Ai66fbdf12019-07-08 16:05:07 +0800371#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200372 .partition_state = SPM_PARTITION_STATE_UNINIT,
373 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
374 .caller_client_id = TFM_INVALID_CLIENT_ID,
375 .share = TFM_BUFFER_SHARE_DISABLE,
376#if TFM_LVL != 1
377 .stack_ptr = PART_REGION_ADDR(TFM_SP_STORAGE, _STACK$$ZI$$Limit) -
378 sizeof(struct iovec_args_t),
379#else /* TFM_LVL != 1 */
380 .stack_ptr = 0,
381#endif /* TFM_LVL != 1 */
382 .lr = 0,
383 .iovec_api = TFM_SFN_API_IOVEC,
384 .iovec_args =
385 {
386 .in_vec = {{0}},
387 .in_len = 0,
388 .out_vec = {{0}},
389 .out_len = 0,
390 },
391 .orig_outvec = NULL,
392 .ctx_stack_ptr = ctx_stack_TFM_SP_STORAGE,
Edison Ai66fbdf12019-07-08 16:05:07 +0800393#else /* !defined(TFM_PSA_API) */
394 .signal_evnt =
395 {
396 .magic = 0,
397 .owner = NULL,
398 },
399 .signals = 0,
400 .service_list =
401 {
402 .prev = NULL,
403 .next = NULL,
404 },
405#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200406 .signal_mask = 0,
407 },
408
409 .platform_data = NULL,
410
411#if (TFM_LVL != 1) || defined(TFM_PSA_API)
412 /* memory_data */
413 .memory_data = {
414 .code_start = PART_REGION_ADDR(TFM_SP_STORAGE, $$Base),
415 .code_limit = PART_REGION_ADDR(TFM_SP_STORAGE, $$Limit),
416 .ro_start = PART_REGION_ADDR(TFM_SP_STORAGE, $$RO$$Base),
417 .ro_limit = PART_REGION_ADDR(TFM_SP_STORAGE, $$RO$$Limit),
418 .rw_start = PART_REGION_ADDR(TFM_SP_STORAGE, _DATA$$RW$$Base),
419 .rw_limit = PART_REGION_ADDR(TFM_SP_STORAGE, _DATA$$RW$$Limit),
420 .zi_start = PART_REGION_ADDR(TFM_SP_STORAGE, _DATA$$ZI$$Base),
421 .zi_limit = PART_REGION_ADDR(TFM_SP_STORAGE, _DATA$$ZI$$Limit),
422 .stack_bottom = PART_REGION_ADDR(TFM_SP_STORAGE, _STACK$$ZI$$Base),
423 .stack_top = PART_REGION_ADDR(TFM_SP_STORAGE, _STACK$$ZI$$Limit),
424 },
425#endif
426
427#ifdef TFM_PSA_API
428 /* sp_thrd */
429 .sp_thrd = {
430 .pfn = NULL,
431 .param = NULL,
432 .sp_base = NULL,
433 .sp_top = NULL,
434 .prior = THRD_PRIOR_LOWEST,
435 .status = THRD_STAT_INVALID,
436 .state_ctx =
437 {
438 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
439 },
440 .next = NULL,
441 },
442#endif /* defined(TFM_PSA_API) */
443 },
444
445 /* -----------------------------------------------------------------------*/
446 /* - Partition DB record for TFM_SP_AUDIT_LOG */
447 /* -----------------------------------------------------------------------*/
448#ifdef TFM_PARTITION_AUDIT_LOG
449 {
450 /* Static data */
451 {
452 .partition_id = TFM_SP_AUDIT_LOG_ID,
453 .partition_flags = 0
454 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
455 ,
456 .partition_priority = TFM_PRIORITY(NORMAL),
457 .partition_init = audit_core_init,
458 },
459
460 /* Runtime data */
461 {
Edison Ai66fbdf12019-07-08 16:05:07 +0800462#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200463 .partition_state = SPM_PARTITION_STATE_UNINIT,
464 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
465 .caller_client_id = TFM_INVALID_CLIENT_ID,
466 .share = TFM_BUFFER_SHARE_DISABLE,
467#if TFM_LVL != 1
468 .stack_ptr = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, _STACK$$ZI$$Limit) -
469 sizeof(struct iovec_args_t),
470#else /* TFM_LVL != 1 */
471 .stack_ptr = 0,
472#endif /* TFM_LVL != 1 */
473 .lr = 0,
474 .iovec_api = TFM_SFN_API_IOVEC,
475 .iovec_args =
476 {
477 .in_vec = {{0}},
478 .in_len = 0,
479 .out_vec = {{0}},
480 .out_len = 0,
481 },
482 .orig_outvec = NULL,
483 .ctx_stack_ptr = ctx_stack_TFM_SP_AUDIT_LOG,
Edison Ai66fbdf12019-07-08 16:05:07 +0800484#else /* !defined(TFM_PSA_API) */
485 .signal_evnt =
486 {
487 .magic = 0,
488 .owner = NULL,
489 },
490 .signals = 0,
491 .service_list =
492 {
493 .prev = NULL,
494 .next = NULL,
495 },
496#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200497 .signal_mask = 0,
498 },
499
500 /* platform data */
501 /* FIXME: Only adding the first mmio region */
502#ifdef AUDIT_UART_REDIRECTION
503 .platform_data = TFM_PERIPHERAL_UART1,
504#else /* AUDIT_UART_REDIRECTION */
505 .platform_data = NULL,
506#endif /* AUDIT_UART_REDIRECTION */
507
508#if (TFM_LVL != 1) || defined(TFM_PSA_API)
509 /* memory_data */
510 .memory_data = {
511 .code_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, $$Base),
512 .code_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, $$Limit),
513 .ro_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, $$RO$$Base),
514 .ro_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, $$RO$$Limit),
515 .rw_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, _DATA$$RW$$Base),
516 .rw_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, _DATA$$RW$$Limit),
517 .zi_start = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, _DATA$$ZI$$Base),
518 .zi_limit = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, _DATA$$ZI$$Limit),
519 .stack_bottom = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, _STACK$$ZI$$Base),
520 .stack_top = PART_REGION_ADDR(TFM_SP_AUDIT_LOG, _STACK$$ZI$$Limit),
521 },
522#endif
523
524#ifdef TFM_PSA_API
525 /* sp_thrd */
526 .sp_thrd = {
527 .pfn = NULL,
528 .param = NULL,
529 .sp_base = NULL,
530 .sp_top = NULL,
531 .prior = THRD_PRIOR_LOWEST,
532 .status = THRD_STAT_INVALID,
533 .state_ctx =
534 {
535 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
536 },
537 .next = NULL,
538 },
539#endif /* defined(TFM_PSA_API) */
540 },
541#endif /* TFM_PARTITION_AUDIT_LOG */
542
543 /* -----------------------------------------------------------------------*/
544 /* - Partition DB record for TFM_SP_CRYPTO */
545 /* -----------------------------------------------------------------------*/
546 {
547 /* Static data */
548 {
549 .partition_id = TFM_SP_CRYPTO_ID,
550 .partition_flags = SPM_PART_FLAG_IPC
551 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
552 ,
553 .partition_priority = TFM_PRIORITY(NORMAL),
554 .partition_init = tfm_crypto_init,
555 },
556
557 /* Runtime data */
558 {
Edison Ai66fbdf12019-07-08 16:05:07 +0800559#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200560 .partition_state = SPM_PARTITION_STATE_UNINIT,
561 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
562 .caller_client_id = TFM_INVALID_CLIENT_ID,
563 .share = TFM_BUFFER_SHARE_DISABLE,
564#if TFM_LVL != 1
565 .stack_ptr = PART_REGION_ADDR(TFM_SP_CRYPTO, _STACK$$ZI$$Limit) -
566 sizeof(struct iovec_args_t),
567#else /* TFM_LVL != 1 */
568 .stack_ptr = 0,
569#endif /* TFM_LVL != 1 */
570 .lr = 0,
571 .iovec_api = TFM_SFN_API_IOVEC,
572 .iovec_args =
573 {
574 .in_vec = {{0}},
575 .in_len = 0,
576 .out_vec = {{0}},
577 .out_len = 0,
578 },
579 .orig_outvec = NULL,
580 .ctx_stack_ptr = ctx_stack_TFM_SP_CRYPTO,
Edison Ai66fbdf12019-07-08 16:05:07 +0800581#else /* !defined(TFM_PSA_API) */
582 .signal_evnt =
583 {
584 .magic = 0,
585 .owner = NULL,
586 },
587 .signals = 0,
588 .service_list =
589 {
590 .prev = NULL,
591 .next = NULL,
592 },
593#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200594 .signal_mask = 0,
595 },
596
597 .platform_data = NULL,
598
599#if (TFM_LVL != 1) || defined(TFM_PSA_API)
600 /* memory_data */
601 .memory_data = {
602 .code_start = PART_REGION_ADDR(TFM_SP_CRYPTO, $$Base),
603 .code_limit = PART_REGION_ADDR(TFM_SP_CRYPTO, $$Limit),
604 .ro_start = PART_REGION_ADDR(TFM_SP_CRYPTO, $$RO$$Base),
605 .ro_limit = PART_REGION_ADDR(TFM_SP_CRYPTO, $$RO$$Limit),
606 .rw_start = PART_REGION_ADDR(TFM_SP_CRYPTO, _DATA$$RW$$Base),
607 .rw_limit = PART_REGION_ADDR(TFM_SP_CRYPTO, _DATA$$RW$$Limit),
608 .zi_start = PART_REGION_ADDR(TFM_SP_CRYPTO, _DATA$$ZI$$Base),
609 .zi_limit = PART_REGION_ADDR(TFM_SP_CRYPTO, _DATA$$ZI$$Limit),
610 .stack_bottom = PART_REGION_ADDR(TFM_SP_CRYPTO, _STACK$$ZI$$Base),
611 .stack_top = PART_REGION_ADDR(TFM_SP_CRYPTO, _STACK$$ZI$$Limit),
612 },
613#endif
614
615#ifdef TFM_PSA_API
616 /* sp_thrd */
617 .sp_thrd = {
618 .pfn = NULL,
619 .param = NULL,
620 .sp_base = NULL,
621 .sp_top = NULL,
622 .prior = THRD_PRIOR_LOWEST,
623 .status = THRD_STAT_INVALID,
624 .state_ctx =
625 {
626 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
627 },
628 .next = NULL,
629 },
630#endif /* defined(TFM_PSA_API) */
631 },
632
633 /* -----------------------------------------------------------------------*/
634 /* - Partition DB record for TFM_SP_PLATFORM */
635 /* -----------------------------------------------------------------------*/
636#ifdef TFM_PARTITION_PLATFORM
637 {
638 /* Static data */
639 {
640 .partition_id = TFM_SP_PLATFORM_ID,
641 .partition_flags = 0
642 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
643 ,
644 .partition_priority = TFM_PRIORITY(NORMAL),
645 .partition_init = platform_sp_init,
646 },
647
648 /* Runtime data */
649 {
Edison Ai66fbdf12019-07-08 16:05:07 +0800650#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200651 .partition_state = SPM_PARTITION_STATE_UNINIT,
652 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
653 .caller_client_id = TFM_INVALID_CLIENT_ID,
654 .share = TFM_BUFFER_SHARE_DISABLE,
655#if TFM_LVL != 1
656 .stack_ptr = PART_REGION_ADDR(TFM_SP_PLATFORM, _STACK$$ZI$$Limit) -
657 sizeof(struct iovec_args_t),
658#else /* TFM_LVL != 1 */
659 .stack_ptr = 0,
660#endif /* TFM_LVL != 1 */
661 .lr = 0,
662 .iovec_api = TFM_SFN_API_IOVEC,
663 .iovec_args =
664 {
665 .in_vec = {{0}},
666 .in_len = 0,
667 .out_vec = {{0}},
668 .out_len = 0,
669 },
670 .orig_outvec = NULL,
671 .ctx_stack_ptr = ctx_stack_TFM_SP_PLATFORM,
Edison Ai66fbdf12019-07-08 16:05:07 +0800672#else /* !defined(TFM_PSA_API) */
673 .signal_evnt =
674 {
675 .magic = 0,
676 .owner = NULL,
677 },
678 .signals = 0,
679 .service_list =
680 {
681 .prev = NULL,
682 .next = NULL,
683 },
684#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200685 .signal_mask = 0,
686 },
687
688 .platform_data = NULL,
689
690#if (TFM_LVL != 1) || defined(TFM_PSA_API)
691 /* memory_data */
692 .memory_data = {
693 .code_start = PART_REGION_ADDR(TFM_SP_PLATFORM, $$Base),
694 .code_limit = PART_REGION_ADDR(TFM_SP_PLATFORM, $$Limit),
695 .ro_start = PART_REGION_ADDR(TFM_SP_PLATFORM, $$RO$$Base),
696 .ro_limit = PART_REGION_ADDR(TFM_SP_PLATFORM, $$RO$$Limit),
697 .rw_start = PART_REGION_ADDR(TFM_SP_PLATFORM, _DATA$$RW$$Base),
698 .rw_limit = PART_REGION_ADDR(TFM_SP_PLATFORM, _DATA$$RW$$Limit),
699 .zi_start = PART_REGION_ADDR(TFM_SP_PLATFORM, _DATA$$ZI$$Base),
700 .zi_limit = PART_REGION_ADDR(TFM_SP_PLATFORM, _DATA$$ZI$$Limit),
701 .stack_bottom = PART_REGION_ADDR(TFM_SP_PLATFORM, _STACK$$ZI$$Base),
702 .stack_top = PART_REGION_ADDR(TFM_SP_PLATFORM, _STACK$$ZI$$Limit),
703 },
704#endif
705
706#ifdef TFM_PSA_API
707 /* sp_thrd */
708 .sp_thrd = {
709 .pfn = NULL,
710 .param = NULL,
711 .sp_base = NULL,
712 .sp_top = NULL,
713 .prior = THRD_PRIOR_LOWEST,
714 .status = THRD_STAT_INVALID,
715 .state_ctx =
716 {
717 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
718 },
719 .next = NULL,
720 },
721#endif /* defined(TFM_PSA_API) */
722 },
723#endif /* TFM_PARTITION_PLATFORM */
724
725 /* -----------------------------------------------------------------------*/
726 /* - Partition DB record for TFM_SP_INITIAL_ATTESTATION */
727 /* -----------------------------------------------------------------------*/
728 {
729 /* Static data */
730 {
731 .partition_id = TFM_SP_INITIAL_ATTESTATION_ID,
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 = attest_partition_init,
737 },
738
739 /* Runtime data */
740 {
Edison Ai66fbdf12019-07-08 16:05:07 +0800741#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200742 .partition_state = SPM_PARTITION_STATE_UNINIT,
743 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
744 .caller_client_id = TFM_INVALID_CLIENT_ID,
745 .share = TFM_BUFFER_SHARE_DISABLE,
746#if TFM_LVL != 1
747 .stack_ptr = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, _STACK$$ZI$$Limit) -
748 sizeof(struct iovec_args_t),
749#else /* TFM_LVL != 1 */
750 .stack_ptr = 0,
751#endif /* TFM_LVL != 1 */
752 .lr = 0,
753 .iovec_api = TFM_SFN_API_IOVEC,
754 .iovec_args =
755 {
756 .in_vec = {{0}},
757 .in_len = 0,
758 .out_vec = {{0}},
759 .out_len = 0,
760 },
761 .orig_outvec = NULL,
762 .ctx_stack_ptr = ctx_stack_TFM_SP_INITIAL_ATTESTATION,
Edison Ai66fbdf12019-07-08 16:05:07 +0800763#else /* !defined(TFM_PSA_API) */
764 .signal_evnt =
765 {
766 .magic = 0,
767 .owner = NULL,
768 },
769 .signals = 0,
770 .service_list =
771 {
772 .prev = NULL,
773 .next = NULL,
774 },
775#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200776 .signal_mask = 0,
777 },
778
779 .platform_data = NULL,
780
781#if (TFM_LVL != 1) || defined(TFM_PSA_API)
782 /* memory_data */
783 .memory_data = {
784 .code_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, $$Base),
785 .code_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, $$Limit),
786 .ro_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, $$RO$$Base),
787 .ro_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, $$RO$$Limit),
788 .rw_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, _DATA$$RW$$Base),
789 .rw_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, _DATA$$RW$$Limit),
790 .zi_start = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, _DATA$$ZI$$Base),
791 .zi_limit = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, _DATA$$ZI$$Limit),
792 .stack_bottom = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, _STACK$$ZI$$Base),
793 .stack_top = PART_REGION_ADDR(TFM_SP_INITIAL_ATTESTATION, _STACK$$ZI$$Limit),
794 },
795#endif
796
797#ifdef TFM_PSA_API
798 /* sp_thrd */
799 .sp_thrd = {
800 .pfn = NULL,
801 .param = NULL,
802 .sp_base = NULL,
803 .sp_top = NULL,
804 .prior = THRD_PRIOR_LOWEST,
805 .status = THRD_STAT_INVALID,
806 .state_ctx =
807 {
808 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
809 },
810 .next = NULL,
811 },
812#endif /* defined(TFM_PSA_API) */
813 },
814
815 /* -----------------------------------------------------------------------*/
816 /* - Partition DB record for TFM_SP_CORE_TEST */
817 /* -----------------------------------------------------------------------*/
818#ifdef TFM_PARTITION_TEST_CORE
819 {
820 /* Static data */
821 {
822 .partition_id = TFM_SP_CORE_TEST_ID,
823 .partition_flags = SPM_PART_FLAG_IPC
824 | SPM_PART_FLAG_APP_ROT
825 ,
826 .partition_priority = TFM_PRIORITY(NORMAL),
827 .partition_init = core_test_init,
828 },
829
830 /* Runtime data */
831 {
Edison Ai66fbdf12019-07-08 16:05:07 +0800832#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200833 .partition_state = SPM_PARTITION_STATE_UNINIT,
834 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
835 .caller_client_id = TFM_INVALID_CLIENT_ID,
836 .share = TFM_BUFFER_SHARE_DISABLE,
837#if TFM_LVL != 1
838 .stack_ptr = PART_REGION_ADDR(TFM_SP_CORE_TEST, _STACK$$ZI$$Limit) -
839 sizeof(struct iovec_args_t),
840#else /* TFM_LVL != 1 */
841 .stack_ptr = 0,
842#endif /* TFM_LVL != 1 */
843 .lr = 0,
844 .iovec_api = TFM_SFN_API_IOVEC,
845 .iovec_args =
846 {
847 .in_vec = {{0}},
848 .in_len = 0,
849 .out_vec = {{0}},
850 .out_len = 0,
851 },
852 .orig_outvec = NULL,
853 .ctx_stack_ptr = ctx_stack_TFM_SP_CORE_TEST,
Edison Ai66fbdf12019-07-08 16:05:07 +0800854#else /* !defined(TFM_PSA_API) */
855 .signal_evnt =
856 {
857 .magic = 0,
858 .owner = NULL,
859 },
860 .signals = 0,
861 .service_list =
862 {
863 .prev = NULL,
864 .next = NULL,
865 },
866#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200867 .signal_mask = 0,
868 },
869
870 /* platform data */
871 /* FIXME: Only adding the first mmio region */
872 .platform_data = TFM_PERIPHERAL_FPGA_IO,
873
874#if (TFM_LVL != 1) || defined(TFM_PSA_API)
875 /* memory_data */
876 .memory_data = {
877 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST, $$Base),
878 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST, $$Limit),
879 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST, $$RO$$Base),
880 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST, $$RO$$Limit),
881 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST, _DATA$$RW$$Base),
882 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST, _DATA$$RW$$Limit),
883 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST, _DATA$$ZI$$Base),
884 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST, _DATA$$ZI$$Limit),
885 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST, _STACK$$ZI$$Base),
886 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST, _STACK$$ZI$$Limit),
887 },
888#endif
889
890#ifdef TFM_PSA_API
891 /* sp_thrd */
892 .sp_thrd = {
893 .pfn = NULL,
894 .param = NULL,
895 .sp_base = NULL,
896 .sp_top = NULL,
897 .prior = THRD_PRIOR_LOWEST,
898 .status = THRD_STAT_INVALID,
899 .state_ctx =
900 {
901 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
902 },
903 .next = NULL,
904 },
905#endif /* defined(TFM_PSA_API) */
906 },
907#endif /* TFM_PARTITION_TEST_CORE */
908
909 /* -----------------------------------------------------------------------*/
910 /* - Partition DB record for TFM_SP_CORE_TEST_2 */
911 /* -----------------------------------------------------------------------*/
912#ifdef TFM_PARTITION_TEST_CORE
913 {
914 /* Static data */
915 {
916 .partition_id = TFM_SP_CORE_TEST_2_ID,
917 .partition_flags = SPM_PART_FLAG_IPC
918 | SPM_PART_FLAG_APP_ROT
919 ,
920 .partition_priority = TFM_PRIORITY(NORMAL),
921 .partition_init = core_test_2_init,
922 },
923
924 /* Runtime data */
925 {
Edison Ai66fbdf12019-07-08 16:05:07 +0800926#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200927 .partition_state = SPM_PARTITION_STATE_UNINIT,
928 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
929 .caller_client_id = TFM_INVALID_CLIENT_ID,
930 .share = TFM_BUFFER_SHARE_DISABLE,
931#if TFM_LVL != 1
932 .stack_ptr = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, _STACK$$ZI$$Limit) -
933 sizeof(struct iovec_args_t),
934#else /* TFM_LVL != 1 */
935 .stack_ptr = 0,
936#endif /* TFM_LVL != 1 */
937 .lr = 0,
938 .iovec_api = TFM_SFN_API_IOVEC,
939 .iovec_args =
940 {
941 .in_vec = {{0}},
942 .in_len = 0,
943 .out_vec = {{0}},
944 .out_len = 0,
945 },
946 .orig_outvec = NULL,
947 .ctx_stack_ptr = ctx_stack_TFM_SP_CORE_TEST_2,
Edison Ai66fbdf12019-07-08 16:05:07 +0800948#else /* !defined(TFM_PSA_API) */
949 .signal_evnt =
950 {
951 .magic = 0,
952 .owner = NULL,
953 },
954 .signals = 0,
955 .service_list =
956 {
957 .prev = NULL,
958 .next = NULL,
959 },
960#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +0200961 .signal_mask = 0,
962 },
963
964 .platform_data = NULL,
965
966#if (TFM_LVL != 1) || defined(TFM_PSA_API)
967 /* memory_data */
968 .memory_data = {
969 .code_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, $$Base),
970 .code_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, $$Limit),
971 .ro_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, $$RO$$Base),
972 .ro_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, $$RO$$Limit),
973 .rw_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, _DATA$$RW$$Base),
974 .rw_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, _DATA$$RW$$Limit),
975 .zi_start = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, _DATA$$ZI$$Base),
976 .zi_limit = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, _DATA$$ZI$$Limit),
977 .stack_bottom = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, _STACK$$ZI$$Base),
978 .stack_top = PART_REGION_ADDR(TFM_SP_CORE_TEST_2, _STACK$$ZI$$Limit),
979 },
980#endif
981
982#ifdef TFM_PSA_API
983 /* sp_thrd */
984 .sp_thrd = {
985 .pfn = NULL,
986 .param = NULL,
987 .sp_base = NULL,
988 .sp_top = NULL,
989 .prior = THRD_PRIOR_LOWEST,
990 .status = THRD_STAT_INVALID,
991 .state_ctx =
992 {
993 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
994 },
995 .next = NULL,
996 },
997#endif /* defined(TFM_PSA_API) */
998 },
999#endif /* TFM_PARTITION_TEST_CORE */
1000
1001 /* -----------------------------------------------------------------------*/
1002 /* - Partition DB record for TFM_SP_SECURE_TEST_PARTITION */
1003 /* -----------------------------------------------------------------------*/
1004#ifdef TFM_PARTITION_TEST_SECURE_SERVICES
1005 {
1006 /* Static data */
1007 {
1008 .partition_id = TFM_SP_SECURE_TEST_PARTITION_ID,
1009 .partition_flags = SPM_PART_FLAG_IPC
1010 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
1011 ,
1012 .partition_priority = TFM_PRIORITY(NORMAL),
1013 .partition_init = tfm_secure_client_service_init,
1014 },
1015
1016 /* Runtime data */
1017 {
Edison Ai66fbdf12019-07-08 16:05:07 +08001018#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001019 .partition_state = SPM_PARTITION_STATE_UNINIT,
1020 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
1021 .caller_client_id = TFM_INVALID_CLIENT_ID,
1022 .share = TFM_BUFFER_SHARE_DISABLE,
1023#if TFM_LVL != 1
1024 .stack_ptr = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, _STACK$$ZI$$Limit) -
1025 sizeof(struct iovec_args_t),
1026#else /* TFM_LVL != 1 */
1027 .stack_ptr = 0,
1028#endif /* TFM_LVL != 1 */
1029 .lr = 0,
1030 .iovec_api = TFM_SFN_API_IOVEC,
1031 .iovec_args =
1032 {
1033 .in_vec = {{0}},
1034 .in_len = 0,
1035 .out_vec = {{0}},
1036 .out_len = 0,
1037 },
1038 .orig_outvec = NULL,
1039 .ctx_stack_ptr = ctx_stack_TFM_SP_SECURE_TEST_PARTITION,
Edison Ai66fbdf12019-07-08 16:05:07 +08001040#else /* !defined(TFM_PSA_API) */
1041 .signal_evnt =
1042 {
1043 .magic = 0,
1044 .owner = NULL,
1045 },
1046 .signals = 0,
1047 .service_list =
1048 {
1049 .prev = NULL,
1050 .next = NULL,
1051 },
1052#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001053 .signal_mask = 0,
1054 },
1055
1056 /* platform data */
1057 /* FIXME: Only adding the first mmio region */
1058 .platform_data = TFM_PERIPHERAL_STD_UART,
1059
1060#if (TFM_LVL != 1) || defined(TFM_PSA_API)
1061 /* memory_data */
1062 .memory_data = {
1063 .code_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, $$Base),
1064 .code_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, $$Limit),
1065 .ro_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, $$RO$$Base),
1066 .ro_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, $$RO$$Limit),
1067 .rw_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, _DATA$$RW$$Base),
1068 .rw_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, _DATA$$RW$$Limit),
1069 .zi_start = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, _DATA$$ZI$$Base),
1070 .zi_limit = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, _DATA$$ZI$$Limit),
1071 .stack_bottom = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, _STACK$$ZI$$Base),
1072 .stack_top = PART_REGION_ADDR(TFM_SP_SECURE_TEST_PARTITION, _STACK$$ZI$$Limit),
1073 },
1074#endif
1075
1076#ifdef TFM_PSA_API
1077 /* sp_thrd */
1078 .sp_thrd = {
1079 .pfn = NULL,
1080 .param = NULL,
1081 .sp_base = NULL,
1082 .sp_top = NULL,
1083 .prior = THRD_PRIOR_LOWEST,
1084 .status = THRD_STAT_INVALID,
1085 .state_ctx =
1086 {
1087 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
1088 },
1089 .next = NULL,
1090 },
1091#endif /* defined(TFM_PSA_API) */
1092 },
1093#endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
1094
1095 /* -----------------------------------------------------------------------*/
1096 /* - Partition DB record for TFM_SP_IPC_SERVICE_TEST */
1097 /* -----------------------------------------------------------------------*/
1098#ifdef TFM_PARTITION_TEST_CORE_IPC
1099 {
1100 /* Static data */
1101 {
1102 .partition_id = TFM_SP_IPC_SERVICE_TEST_ID,
1103 .partition_flags = SPM_PART_FLAG_IPC
1104 | SPM_PART_FLAG_PSA_ROT | SPM_PART_FLAG_APP_ROT
1105 ,
1106 .partition_priority = TFM_PRIORITY(HIGH),
1107 .partition_init = ipc_service_test_main,
1108 },
1109
1110 /* Runtime data */
1111 {
Edison Ai66fbdf12019-07-08 16:05:07 +08001112#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001113 .partition_state = SPM_PARTITION_STATE_UNINIT,
1114 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
1115 .caller_client_id = TFM_INVALID_CLIENT_ID,
1116 .share = TFM_BUFFER_SHARE_DISABLE,
1117#if TFM_LVL != 1
1118 .stack_ptr = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, _STACK$$ZI$$Limit) -
1119 sizeof(struct iovec_args_t),
1120#else /* TFM_LVL != 1 */
1121 .stack_ptr = 0,
1122#endif /* TFM_LVL != 1 */
1123 .lr = 0,
1124 .iovec_api = TFM_SFN_API_IOVEC,
1125 .iovec_args =
1126 {
1127 .in_vec = {{0}},
1128 .in_len = 0,
1129 .out_vec = {{0}},
1130 .out_len = 0,
1131 },
1132 .orig_outvec = NULL,
1133 .ctx_stack_ptr = ctx_stack_TFM_SP_IPC_SERVICE_TEST,
Edison Ai66fbdf12019-07-08 16:05:07 +08001134#else /* !defined(TFM_PSA_API) */
1135 .signal_evnt =
1136 {
1137 .magic = 0,
1138 .owner = NULL,
1139 },
1140 .signals = 0,
1141 .service_list =
1142 {
1143 .prev = NULL,
1144 .next = NULL,
1145 },
1146#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001147 .signal_mask = 0,
1148 },
1149
1150 .platform_data = NULL,
1151
1152#if (TFM_LVL != 1) || defined(TFM_PSA_API)
1153 /* memory_data */
1154 .memory_data = {
1155 .code_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, $$Base),
1156 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, $$Limit),
1157 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, $$RO$$Base),
1158 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, $$RO$$Limit),
1159 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, _DATA$$RW$$Base),
1160 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, _DATA$$RW$$Limit),
1161 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, _DATA$$ZI$$Base),
1162 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, _DATA$$ZI$$Limit),
1163 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, _STACK$$ZI$$Base),
1164 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_SERVICE_TEST, _STACK$$ZI$$Limit),
1165 },
1166#endif
1167
1168#ifdef TFM_PSA_API
1169 /* sp_thrd */
1170 .sp_thrd = {
1171 .pfn = NULL,
1172 .param = NULL,
1173 .sp_base = NULL,
1174 .sp_top = NULL,
1175 .prior = THRD_PRIOR_LOWEST,
1176 .status = THRD_STAT_INVALID,
1177 .state_ctx =
1178 {
1179 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
1180 },
1181 .next = NULL,
1182 },
1183#endif /* defined(TFM_PSA_API) */
1184 },
1185#endif /* TFM_PARTITION_TEST_CORE_IPC */
1186
1187 /* -----------------------------------------------------------------------*/
1188 /* - Partition DB record for TFM_SP_IPC_CLIENT_TEST */
1189 /* -----------------------------------------------------------------------*/
1190#ifdef TFM_PARTITION_TEST_CORE_IPC
1191 {
1192 /* Static data */
1193 {
1194 .partition_id = TFM_SP_IPC_CLIENT_TEST_ID,
1195 .partition_flags = SPM_PART_FLAG_IPC
1196 | SPM_PART_FLAG_APP_ROT
1197 ,
1198 .partition_priority = TFM_PRIORITY(NORMAL),
1199 .partition_init = ipc_client_test_main,
1200 },
1201
1202 /* Runtime data */
1203 {
Edison Ai66fbdf12019-07-08 16:05:07 +08001204#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001205 .partition_state = SPM_PARTITION_STATE_UNINIT,
1206 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
1207 .caller_client_id = TFM_INVALID_CLIENT_ID,
1208 .share = TFM_BUFFER_SHARE_DISABLE,
1209#if TFM_LVL != 1
1210 .stack_ptr = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, _STACK$$ZI$$Limit) -
1211 sizeof(struct iovec_args_t),
1212#else /* TFM_LVL != 1 */
1213 .stack_ptr = 0,
1214#endif /* TFM_LVL != 1 */
1215 .lr = 0,
1216 .iovec_api = TFM_SFN_API_IOVEC,
1217 .iovec_args =
1218 {
1219 .in_vec = {{0}},
1220 .in_len = 0,
1221 .out_vec = {{0}},
1222 .out_len = 0,
1223 },
1224 .orig_outvec = NULL,
1225 .ctx_stack_ptr = ctx_stack_TFM_SP_IPC_CLIENT_TEST,
Edison Ai66fbdf12019-07-08 16:05:07 +08001226#else /* !defined(TFM_PSA_API) */
1227 .signal_evnt =
1228 {
1229 .magic = 0,
1230 .owner = NULL,
1231 },
1232 .signals = 0,
1233 .service_list =
1234 {
1235 .prev = NULL,
1236 .next = NULL,
1237 },
1238#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001239 .signal_mask = 0,
1240 },
1241
1242 .platform_data = NULL,
1243
1244#if (TFM_LVL != 1) || defined(TFM_PSA_API)
1245 /* memory_data */
1246 .memory_data = {
1247 .code_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, $$Base),
1248 .code_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, $$Limit),
1249 .ro_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, $$RO$$Base),
1250 .ro_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, $$RO$$Limit),
1251 .rw_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, _DATA$$RW$$Base),
1252 .rw_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, _DATA$$RW$$Limit),
1253 .zi_start = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, _DATA$$ZI$$Base),
1254 .zi_limit = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, _DATA$$ZI$$Limit),
1255 .stack_bottom = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, _STACK$$ZI$$Base),
1256 .stack_top = PART_REGION_ADDR(TFM_SP_IPC_CLIENT_TEST, _STACK$$ZI$$Limit),
1257 },
1258#endif
1259
1260#ifdef TFM_PSA_API
1261 /* sp_thrd */
1262 .sp_thrd = {
1263 .pfn = NULL,
1264 .param = NULL,
1265 .sp_base = NULL,
1266 .sp_top = NULL,
1267 .prior = THRD_PRIOR_LOWEST,
1268 .status = THRD_STAT_INVALID,
1269 .state_ctx =
1270 {
1271 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
1272 },
1273 .next = NULL,
1274 },
1275#endif /* defined(TFM_PSA_API) */
1276 },
1277#endif /* TFM_PARTITION_TEST_CORE_IPC */
1278
1279 /* -----------------------------------------------------------------------*/
1280 /* - Partition DB record for TFM_IRQ_TEST_1 */
1281 /* -----------------------------------------------------------------------*/
1282#ifdef TFM_PARTITION_TEST_CORE
1283 {
1284 /* Static data */
1285 {
1286 .partition_id = TFM_IRQ_TEST_1_ID,
1287 .partition_flags = SPM_PART_FLAG_IPC
1288 | SPM_PART_FLAG_APP_ROT
1289 ,
1290 .partition_priority = TFM_PRIORITY(NORMAL),
1291 .partition_init = tfm_irq_test_1_init,
1292 },
1293
1294 /* Runtime data */
1295 {
Edison Ai66fbdf12019-07-08 16:05:07 +08001296#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001297 .partition_state = SPM_PARTITION_STATE_UNINIT,
1298 .caller_partition_idx = SPM_INVALID_PARTITION_IDX,
1299 .caller_client_id = TFM_INVALID_CLIENT_ID,
1300 .share = TFM_BUFFER_SHARE_DISABLE,
1301#if TFM_LVL != 1
1302 .stack_ptr = PART_REGION_ADDR(TFM_IRQ_TEST_1, _STACK$$ZI$$Limit) -
1303 sizeof(struct iovec_args_t),
1304#else /* TFM_LVL != 1 */
1305 .stack_ptr = 0,
1306#endif /* TFM_LVL != 1 */
1307 .lr = 0,
1308 .iovec_api = TFM_SFN_API_IOVEC,
1309 .iovec_args =
1310 {
1311 .in_vec = {{0}},
1312 .in_len = 0,
1313 .out_vec = {{0}},
1314 .out_len = 0,
1315 },
1316 .orig_outvec = NULL,
1317 .ctx_stack_ptr = ctx_stack_TFM_IRQ_TEST_1,
Edison Ai66fbdf12019-07-08 16:05:07 +08001318#else /* !defined(TFM_PSA_API) */
1319 .signal_evnt =
1320 {
1321 .magic = 0,
1322 .owner = NULL,
1323 },
1324 .signals = 0,
1325 .service_list =
1326 {
1327 .prev = NULL,
1328 .next = NULL,
1329 },
1330#endif /* !defined(TFM_PSA_API) */
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001331 .signal_mask = 0,
1332 },
1333
1334 /* platform data */
1335 /* FIXME: Only adding the first mmio region */
1336 .platform_data = TFM_PERIPHERAL_TIMER0,
1337
1338#if (TFM_LVL != 1) || defined(TFM_PSA_API)
1339 /* memory_data */
1340 .memory_data = {
1341 .code_start = PART_REGION_ADDR(TFM_IRQ_TEST_1, $$Base),
1342 .code_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1, $$Limit),
1343 .ro_start = PART_REGION_ADDR(TFM_IRQ_TEST_1, $$RO$$Base),
1344 .ro_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1, $$RO$$Limit),
1345 .rw_start = PART_REGION_ADDR(TFM_IRQ_TEST_1, _DATA$$RW$$Base),
1346 .rw_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1, _DATA$$RW$$Limit),
1347 .zi_start = PART_REGION_ADDR(TFM_IRQ_TEST_1, _DATA$$ZI$$Base),
1348 .zi_limit = PART_REGION_ADDR(TFM_IRQ_TEST_1, _DATA$$ZI$$Limit),
1349 .stack_bottom = PART_REGION_ADDR(TFM_IRQ_TEST_1, _STACK$$ZI$$Base),
1350 .stack_top = PART_REGION_ADDR(TFM_IRQ_TEST_1, _STACK$$ZI$$Limit),
1351 },
1352#endif
1353
1354#ifdef TFM_PSA_API
1355 /* sp_thrd */
1356 .sp_thrd = {
1357 .pfn = NULL,
1358 .param = NULL,
1359 .sp_base = NULL,
1360 .sp_top = NULL,
1361 .prior = THRD_PRIOR_LOWEST,
1362 .status = THRD_STAT_INVALID,
1363 .state_ctx =
1364 {
1365 .ctxb = {0}, /* Fields are not detailed as they are architecture dependent*/
1366 },
1367 .next = NULL,
1368 },
1369#endif /* defined(TFM_PSA_API) */
1370 },
1371#endif /* TFM_PARTITION_TEST_CORE */
1372
1373};
1374
1375struct spm_partition_db_t g_spm_partition_db = {
1376 .is_init = 0,
1377 .partition_count = sizeof(partition_list) / sizeof(partition_list[0]),
Edison Ai66fbdf12019-07-08 16:05:07 +08001378#ifndef TFM_PSA_API
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001379 .running_partition_idx = 0,
Edison Ai66fbdf12019-07-08 16:05:07 +08001380#endif
Mate Toth-Pal3ad2e3e2019-07-11 21:43:37 +02001381 .partitions = partition_list,
1382};
1383
1384#endif /* __TFM_SPM_DB_INC__ */