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