xref: /arm-trusted-firmware/plat/qti/qtiseclib/inc/qtiseclib_defs.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef QTISECLIB_DEFS_H
8*91f16700Schasinglulu #define QTISECLIB_DEFS_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <stdint.h>
11*91f16700Schasinglulu 
12*91f16700Schasinglulu #ifndef u_register_t
13*91f16700Schasinglulu typedef uintptr_t u_register_t;
14*91f16700Schasinglulu #endif
15*91f16700Schasinglulu 
16*91f16700Schasinglulu /*
17*91f16700Schasinglulu  * Different Log Level supported in qtiseclib.
18*91f16700Schasinglulu  * TODO: Currently no filtering done on QTISECLIB logs.
19*91f16700Schasinglulu  */
20*91f16700Schasinglulu #define QTISECLIB_LOG_LEVEL_NONE	0
21*91f16700Schasinglulu #define QTISECLIB_LOG_LEVEL_ERROR	10
22*91f16700Schasinglulu #define QTISECLIB_LOG_LEVEL_NOTICE	20
23*91f16700Schasinglulu #define QTISECLIB_LOG_LEVEL_WARNING	30
24*91f16700Schasinglulu #define QTISECLIB_LOG_LEVEL_INFO	40
25*91f16700Schasinglulu #define QTISECLIB_LOG_LEVEL_VERBOSE	50
26*91f16700Schasinglulu 
27*91f16700Schasinglulu #define QTI_GICV3_IRM_PE		0
28*91f16700Schasinglulu #define QTI_GICV3_IRM_ANY		1
29*91f16700Schasinglulu 
30*91f16700Schasinglulu /* Common interrupt number/ID defs. */
31*91f16700Schasinglulu #define QTISECLIB_INT_ID_RESET_SGI			(0xf)
32*91f16700Schasinglulu #define QTISECLIB_INT_ID_CPU_WAKEUP_SGI			(0x8)
33*91f16700Schasinglulu 
34*91f16700Schasinglulu #define	QTISECLIB_INT_INVALID_INT_NUM			(0xFFFFFFFFU)
35*91f16700Schasinglulu 
36*91f16700Schasinglulu typedef struct qtiseclib_cb_spinlock {
37*91f16700Schasinglulu 	volatile uint32_t lock;
38*91f16700Schasinglulu } qtiseclib_cb_spinlock_t;
39*91f16700Schasinglulu 
40*91f16700Schasinglulu #if QTI_SDI_BUILD
41*91f16700Schasinglulu /* External CPU Dump Structure - 64 bit EL */
42*91f16700Schasinglulu typedef struct {
43*91f16700Schasinglulu 	uint64_t x0;
44*91f16700Schasinglulu 	uint64_t x1;
45*91f16700Schasinglulu 	uint64_t x2;
46*91f16700Schasinglulu 	uint64_t x3;
47*91f16700Schasinglulu 	uint64_t x4;
48*91f16700Schasinglulu 	uint64_t x5;
49*91f16700Schasinglulu 	uint64_t x6;
50*91f16700Schasinglulu 	uint64_t x7;
51*91f16700Schasinglulu 	uint64_t x8;
52*91f16700Schasinglulu 	uint64_t x9;
53*91f16700Schasinglulu 	uint64_t x10;
54*91f16700Schasinglulu 	uint64_t x11;
55*91f16700Schasinglulu 	uint64_t x12;
56*91f16700Schasinglulu 	uint64_t x13;
57*91f16700Schasinglulu 	uint64_t x14;
58*91f16700Schasinglulu 	uint64_t x15;
59*91f16700Schasinglulu 	uint64_t x16;
60*91f16700Schasinglulu 	uint64_t x17;
61*91f16700Schasinglulu 	uint64_t x18;
62*91f16700Schasinglulu 	uint64_t x19;
63*91f16700Schasinglulu 	uint64_t x20;
64*91f16700Schasinglulu 	uint64_t x21;
65*91f16700Schasinglulu 	uint64_t x22;
66*91f16700Schasinglulu 	uint64_t x23;
67*91f16700Schasinglulu 	uint64_t x24;
68*91f16700Schasinglulu 	uint64_t x25;
69*91f16700Schasinglulu 	uint64_t x26;
70*91f16700Schasinglulu 	uint64_t x27;
71*91f16700Schasinglulu 	uint64_t x28;
72*91f16700Schasinglulu 	uint64_t x29;
73*91f16700Schasinglulu 	uint64_t x30;
74*91f16700Schasinglulu 	uint64_t pc;
75*91f16700Schasinglulu 	uint64_t currentEL;
76*91f16700Schasinglulu 	uint64_t sp_el3;
77*91f16700Schasinglulu 	uint64_t elr_el3;
78*91f16700Schasinglulu 	uint64_t spsr_el3;
79*91f16700Schasinglulu 	uint64_t sp_el2;
80*91f16700Schasinglulu 	uint64_t elr_el2;
81*91f16700Schasinglulu 	uint64_t spsr_el2;
82*91f16700Schasinglulu 	uint64_t sp_el1;
83*91f16700Schasinglulu 	uint64_t elr_el1;
84*91f16700Schasinglulu 	uint64_t spsr_el1;
85*91f16700Schasinglulu 	uint64_t sp_el0;
86*91f16700Schasinglulu 	uint64_t __reserved1;
87*91f16700Schasinglulu 	uint64_t __reserved2;
88*91f16700Schasinglulu 	uint64_t __reserved3;
89*91f16700Schasinglulu 	uint64_t __reserved4;
90*91f16700Schasinglulu 	uint64_t __reserved5;
91*91f16700Schasinglulu 	uint64_t __reserved6;
92*91f16700Schasinglulu 	uint64_t __reserved7;
93*91f16700Schasinglulu 	uint64_t __reserved8;
94*91f16700Schasinglulu } qtiseclib_dbg_a64_ctxt_regs_type;
95*91f16700Schasinglulu 
96*91f16700Schasinglulu typedef enum qtiseclib_mmap_attr_s {
97*91f16700Schasinglulu 	QTISECLIB_MAP_NS_RO_XN_DATA = 1,
98*91f16700Schasinglulu 	QTISECLIB_MAP_RW_XN_NC_DATA = 2,
99*91f16700Schasinglulu 	QTISECLIB_MAP_RW_XN_DATA = 3,
100*91f16700Schasinglulu } qtiseclib_mmap_attr_t;
101*91f16700Schasinglulu 
102*91f16700Schasinglulu #endif /* QTI_SDI_BUILD */
103*91f16700Schasinglulu 
104*91f16700Schasinglulu #endif /* QTISECLIB_DEFS_H */
105