TF-M Reference Manual  1.2.0
TrustedFirmware-M
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
tfm_core_trustzone.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef __TFM_CORE_TRUSTZONE_H__
9 #define __TFM_CORE_TRUSTZONE_H__
10 
11 /* This file holds specification or design defined TrustZone settings. */
12 
13 /*
14  * To avoid faking jump with FNC_RETURN or EXC_RETURN in NSPE, seal the secure
15  * stack by putting two words (8 bytes) at the start of stack (higher address)
16  * of it. The Armv8-M Architecture Reference Manual recommends to use seal value
17  * 0xFEF5EDA5.
18  */
19 #define TFM_STACK_SEALED_SIZE 8
20 #define TFM_STACK_SEAL_VALUE 0xFEF5EDA5
21 
22 /*
23  * The numbers in 32bit words while basic FP involved in preempted context:
24  * S0 - S15, FPSCR, Reserved
25  */
26 #define TFM_BASIC_FP_CONTEXT_WORDS 18
27 
28 /*
29  * The numbers in 32bit words while addtional FP involved in preempted context:
30  * S16 - S31
31  */
32 #define TFM_ADDTIONAL_FP_CONTEXT_WORDS 16
33 
34 /*
35  * SG sets LR[0] to ZERO indicates a non-secure to secure transition.
36  * Make sure to apply this mask on a 'LR' just after 'SG' (in veneer).
37  */
38 #define TFM_VENEER_LR_BIT0_MASK 1
39 
40 #endif /* __TFM_CORE_TRUSTZONE_H__ */