xref: /rk3399_ARM-atf/include/services/drtm_svc.h (revision 2a1cdee4f5e6fe0b90399e442075880acad1869e)
1e62748e3SManish V Badarkhe /*
2e62748e3SManish V Badarkhe  * Copyright (c) 2022 Arm Limited. All rights reserved.
3e62748e3SManish V Badarkhe  *
4e62748e3SManish V Badarkhe  * SPDX-License-Identifier:    BSD-3-Clause
5e62748e3SManish V Badarkhe  *
6e62748e3SManish V Badarkhe  * DRTM service
7e62748e3SManish V Badarkhe  *
8e62748e3SManish V Badarkhe  * Authors:
9e62748e3SManish V Badarkhe  *	Lucian Paul-Trifu <lucian.paultrifu@gmail.com>
10e62748e3SManish V Badarkhe  *	Brian Nezvadovitz <brinez@microsoft.com> 2021-02-01
11e62748e3SManish V Badarkhe  *
12e62748e3SManish V Badarkhe  */
13e62748e3SManish V Badarkhe 
14e62748e3SManish V Badarkhe #ifndef ARM_DRTM_SVC_H
15e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_H
16e62748e3SManish V Badarkhe 
17e62748e3SManish V Badarkhe /*
18e62748e3SManish V Badarkhe  * SMC function IDs for DRTM Service
19e62748e3SManish V Badarkhe  * Upper word bits set: Fast call, SMC64, Standard Secure Svc. Call (OEN = 4)
20e62748e3SManish V Badarkhe  */
21e62748e3SManish V Badarkhe #define DRTM_FID(func_num)				\
22e62748e3SManish V Badarkhe 	((SMC_TYPE_FAST << FUNCID_TYPE_SHIFT) |		\
23e62748e3SManish V Badarkhe 	(SMC_64 << FUNCID_CC_SHIFT) |			\
24e62748e3SManish V Badarkhe 	(OEN_STD_START << FUNCID_OEN_SHIFT) |		\
25e62748e3SManish V Badarkhe 	((func_num) << FUNCID_NUM_SHIFT))
26e62748e3SManish V Badarkhe 
27e62748e3SManish V Badarkhe #define DRTM_FNUM_SVC_VERSION		U(0x110)
28e62748e3SManish V Badarkhe #define DRTM_FNUM_SVC_FEATURES		U(0x111)
29e62748e3SManish V Badarkhe #define DRTM_FNUM_SVC_UNPROTECT_MEM	U(0x113)
30e62748e3SManish V Badarkhe #define DRTM_FNUM_SVC_DYNAMIC_LAUNCH	U(0x114)
31e62748e3SManish V Badarkhe #define DRTM_FNUM_SVC_CLOSE_LOCALITY	U(0x115)
32e62748e3SManish V Badarkhe #define DRTM_FNUM_SVC_GET_ERROR		U(0x116)
33e62748e3SManish V Badarkhe #define DRTM_FNUM_SVC_SET_ERROR		U(0x117)
34e62748e3SManish V Badarkhe #define DRTM_FNUM_SVC_SET_TCB_HASH	U(0x118)
35e62748e3SManish V Badarkhe #define DRTM_FNUM_SVC_LOCK_TCB_HASH	U(0x119)
36e62748e3SManish V Badarkhe 
37e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_VERSION		DRTM_FID(DRTM_FNUM_SVC_VERSION)
38e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_FEATURES		DRTM_FID(DRTM_FNUM_SVC_FEATURES)
39e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_UNPROTECT_MEM	DRTM_FID(DRTM_FNUM_SVC_UNPROTECT_MEM)
40e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_DYNAMIC_LAUNCH	DRTM_FID(DRTM_FNUM_SVC_DYNAMIC_LAUNCH)
41e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_CLOSE_LOCALITY	DRTM_FID(DRTM_FNUM_SVC_CLOSE_LOCALITY)
42e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_GET_ERROR		DRTM_FID(DRTM_FNUM_SVC_GET_ERROR)
43e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_SET_ERROR		DRTM_FID(DRTM_FNUM_SVC_SET_ERROR)
44e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_SET_TCB_HASH	DRTM_FID(DRTM_FNUM_SVC_SET_TCB_HASH)
45e62748e3SManish V Badarkhe #define ARM_DRTM_SVC_LOCK_TCB_HASH	DRTM_FID(DRTM_FNUM_SVC_LOCK_TCB_HASH)
46e62748e3SManish V Badarkhe 
47e62748e3SManish V Badarkhe #define is_drtm_fid(_fid) \
48e62748e3SManish V Badarkhe 	(((_fid) >= ARM_DRTM_SVC_VERSION) && ((_fid) <= ARM_DRTM_SVC_LOCK_TCB_HASH))
49e62748e3SManish V Badarkhe 
50e62748e3SManish V Badarkhe /* ARM DRTM Service Calls version numbers */
51e62748e3SManish V Badarkhe #define ARM_DRTM_VERSION_MAJOR		U(0)
52e62748e3SManish V Badarkhe #define ARM_DRTM_VERSION_MAJOR_SHIFT	16
53e62748e3SManish V Badarkhe #define ARM_DRTM_VERSION_MAJOR_MASK	U(0x7FFF)
54e62748e3SManish V Badarkhe #define ARM_DRTM_VERSION_MINOR		U(1)
55e62748e3SManish V Badarkhe #define ARM_DRTM_VERSION_MINOR_SHIFT	0
56e62748e3SManish V Badarkhe #define ARM_DRTM_VERSION_MINOR_MASK	U(0xFFFF)
57e62748e3SManish V Badarkhe 
58e62748e3SManish V Badarkhe #define ARM_DRTM_VERSION						\
59e62748e3SManish V Badarkhe 	((((ARM_DRTM_VERSION_MAJOR) & ARM_DRTM_VERSION_MAJOR_MASK) <<	\
60e62748e3SManish V Badarkhe 	ARM_DRTM_VERSION_MAJOR_SHIFT)					\
61e62748e3SManish V Badarkhe 	| (((ARM_DRTM_VERSION_MINOR) & ARM_DRTM_VERSION_MINOR_MASK) <<	\
62e62748e3SManish V Badarkhe 	ARM_DRTM_VERSION_MINOR_SHIFT))
63e62748e3SManish V Badarkhe 
64e62748e3SManish V Badarkhe #define ARM_DRTM_FUNC_SHIFT	U(63)
65e62748e3SManish V Badarkhe #define ARM_DRTM_FUNC_MASK	U(0x1)
66e62748e3SManish V Badarkhe #define ARM_DRTM_FUNC_ID	U(0x0)
67e62748e3SManish V Badarkhe #define ARM_DRTM_FEAT_ID	U(0x1)
68e62748e3SManish V Badarkhe 
69*2a1cdee4Sjohpow01 /*
70*2a1cdee4Sjohpow01  * Definitions for DRTM features as per DRTM beta0 section 3.3,
71*2a1cdee4Sjohpow01  * Table 6 DRTM_FEATURES
72*2a1cdee4Sjohpow01  */
73*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_PCR_SCHEMA_SHIFT		U(33)
74*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_PCR_SCHEMA_MASK		ULL(0xF)
75*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_PCR_SCHEMA_DEFAULT	ULL(0x1)
76*2a1cdee4Sjohpow01 
77*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_TPM_HASH_SHIFT		U(32)
78*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_TPM_HASH_MASK		ULL(0x1)
79*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_TPM_HASH_NOT_SUPPORTED	ULL(0x0)
80*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_TPM_HASH_SUPPORTED	ULL(0x1)
81*2a1cdee4Sjohpow01 
82*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_FW_HASH_SHIFT		U(0)
83*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_FW_HASH_MASK		ULL(0xFFFFFFFF)
84*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_FW_HASH_SHA256		ULL(0xB)
85*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_FW_HASH_SHA384		ULL(0xC)
86*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_FW_HASH_SHA512		ULL(0xD)
87*2a1cdee4Sjohpow01 
88*2a1cdee4Sjohpow01 #define ARM_DRTM_MIN_MEM_REQ_DCE_SIZE_SHIFT		U(32)
89*2a1cdee4Sjohpow01 #define ARM_DRTM_MIN_MEM_REQ_DCE_SIZE_MASK		ULL(0xFFFFFFFF)
90*2a1cdee4Sjohpow01 
91*2a1cdee4Sjohpow01 #define ARM_DRTM_MIN_MEM_REQ_MIN_DLME_DATA_SIZE_SHIFT	U(0)
92*2a1cdee4Sjohpow01 #define ARM_DRTM_MIN_MEM_REQ_MIN_DLME_DATA_SIZE_MASK	ULL(0xFFFFFFFF)
93*2a1cdee4Sjohpow01 
94*2a1cdee4Sjohpow01 #define ARM_DRTM_DMA_PROT_FEATURES_MAX_REGIONS_SHIFT	U(8)
95*2a1cdee4Sjohpow01 #define ARM_DRTM_DMA_PROT_FEATURES_MAX_REGIONS_MASK	ULL(0xF)
96*2a1cdee4Sjohpow01 
97*2a1cdee4Sjohpow01 #define ARM_DRTM_DMA_PROT_FEATURES_DMA_SUPPORT_SHIFT	U(0)
98*2a1cdee4Sjohpow01 #define ARM_DRTM_DMA_PROT_FEATURES_DMA_SUPPORT_MASK	ULL(0xFF)
99*2a1cdee4Sjohpow01 #define ARM_DRTM_DMA_PROT_FEATURES_DMA_SUPPORT_COMPLETE	ULL(0x1)
100*2a1cdee4Sjohpow01 #define ARM_DRTM_DMA_PROT_FEATURES_DMA_SUPPORT_REGION	ULL(0x2)
101*2a1cdee4Sjohpow01 
102*2a1cdee4Sjohpow01 #define ARM_DRTM_TCB_HASH_FEATURES_MAX_NUM_HASHES_SHIFT	U(0)
103*2a1cdee4Sjohpow01 #define ARM_DRTM_TCB_HASH_FEATURES_MAX_NUM_HASHES_MASK	ULL(0xFF)
104*2a1cdee4Sjohpow01 
105*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_SET_PCR_SCHEMA(reg, val)			\
106*2a1cdee4Sjohpow01 	do {								\
107*2a1cdee4Sjohpow01 		reg = (((reg) & ~(ARM_DRTM_TPM_FEATURES_PCR_SCHEMA_MASK \
108*2a1cdee4Sjohpow01 		<< ARM_DRTM_TPM_FEATURES_PCR_SCHEMA_SHIFT)) | (((val) & \
109*2a1cdee4Sjohpow01 		ARM_DRTM_TPM_FEATURES_PCR_SCHEMA_MASK) <<		\
110*2a1cdee4Sjohpow01 		ARM_DRTM_TPM_FEATURES_PCR_SCHEMA_SHIFT));		\
111*2a1cdee4Sjohpow01 	} while (false)
112*2a1cdee4Sjohpow01 
113*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_SET_TPM_HASH(reg, val)			\
114*2a1cdee4Sjohpow01 	do {								\
115*2a1cdee4Sjohpow01 		reg = (((reg) & ~(ARM_DRTM_TPM_FEATURES_TPM_HASH_MASK	\
116*2a1cdee4Sjohpow01 		<< ARM_DRTM_TPM_FEATURES_TPM_HASH_SHIFT)) | (((val) &	\
117*2a1cdee4Sjohpow01 		ARM_DRTM_TPM_FEATURES_TPM_HASH_MASK) <<			\
118*2a1cdee4Sjohpow01 		ARM_DRTM_TPM_FEATURES_TPM_HASH_SHIFT));			\
119*2a1cdee4Sjohpow01 	} while (false)
120*2a1cdee4Sjohpow01 
121*2a1cdee4Sjohpow01 #define ARM_DRTM_TPM_FEATURES_SET_FW_HASH(reg, val)			\
122*2a1cdee4Sjohpow01 	do {								\
123*2a1cdee4Sjohpow01 		reg = (((reg) & ~(ARM_DRTM_TPM_FEATURES_FW_HASH_MASK	\
124*2a1cdee4Sjohpow01 		<< ARM_DRTM_TPM_FEATURES_FW_HASH_SHIFT)) | (((val) &	\
125*2a1cdee4Sjohpow01 		ARM_DRTM_TPM_FEATURES_FW_HASH_MASK) <<			\
126*2a1cdee4Sjohpow01 		ARM_DRTM_TPM_FEATURES_FW_HASH_SHIFT));			\
127*2a1cdee4Sjohpow01 	} while (false)
128*2a1cdee4Sjohpow01 
129*2a1cdee4Sjohpow01 #define ARM_DRTM_MIN_MEM_REQ_SET_DCE_SIZE(reg, val)			\
130*2a1cdee4Sjohpow01 	do {								\
131*2a1cdee4Sjohpow01 		reg = (((reg) & ~(ARM_DRTM_MIN_MEM_REQ_DCE_SIZE_MASK	\
132*2a1cdee4Sjohpow01 		<< ARM_DRTM_MIN_MEM_REQ_DCE_SIZE_SHIFT)) | (((val) &	\
133*2a1cdee4Sjohpow01 		ARM_DRTM_MIN_MEM_REQ_DCE_SIZE_MASK) <<			\
134*2a1cdee4Sjohpow01 		ARM_DRTM_MIN_MEM_REQ_DCE_SIZE_SHIFT));			\
135*2a1cdee4Sjohpow01 	} while (false)
136*2a1cdee4Sjohpow01 
137*2a1cdee4Sjohpow01 #define ARM_DRTM_MIN_MEM_REQ_SET_MIN_DLME_DATA_SIZE(reg, val)		\
138*2a1cdee4Sjohpow01 	do {								\
139*2a1cdee4Sjohpow01 		reg = (((reg) &						\
140*2a1cdee4Sjohpow01 		~(ARM_DRTM_MIN_MEM_REQ_MIN_DLME_DATA_SIZE_MASK <<	\
141*2a1cdee4Sjohpow01 		ARM_DRTM_MIN_MEM_REQ_MIN_DLME_DATA_SIZE_SHIFT)) |	\
142*2a1cdee4Sjohpow01 		(((val) & ARM_DRTM_MIN_MEM_REQ_MIN_DLME_DATA_SIZE_MASK) \
143*2a1cdee4Sjohpow01 		<< ARM_DRTM_MIN_MEM_REQ_MIN_DLME_DATA_SIZE_SHIFT));	\
144*2a1cdee4Sjohpow01 	} while (false)
145*2a1cdee4Sjohpow01 
146*2a1cdee4Sjohpow01 #define ARM_DRTM_DMA_PROT_FEATURES_SET_MAX_REGIONS(reg, val)		\
147*2a1cdee4Sjohpow01 	do {								\
148*2a1cdee4Sjohpow01 		reg = (((reg) &						\
149*2a1cdee4Sjohpow01 		~(ARM_DRTM_DMA_PROT_FEATURES_MAX_REGIONS_MASK <<	\
150*2a1cdee4Sjohpow01 		ARM_DRTM_DMA_PROT_FEATURES_MAX_REGIONS_SHIFT)) |	\
151*2a1cdee4Sjohpow01 		(((val) & ARM_DRTM_DMA_PROT_FEATURES_MAX_REGIONS_MASK)	\
152*2a1cdee4Sjohpow01 		<< ARM_DRTM_DMA_PROT_FEATURES_MAX_REGIONS_SHIFT));	\
153*2a1cdee4Sjohpow01 	} while (false)
154*2a1cdee4Sjohpow01 
155*2a1cdee4Sjohpow01 #define ARM_DRTM_DMA_PROT_FEATURES_SET_DMA_SUPPORT(reg, val) \
156*2a1cdee4Sjohpow01 	do {								\
157*2a1cdee4Sjohpow01 		reg = (((reg) &						\
158*2a1cdee4Sjohpow01 		~(ARM_DRTM_DMA_PROT_FEATURES_DMA_SUPPORT_MASK <<	\
159*2a1cdee4Sjohpow01 		ARM_DRTM_DMA_PROT_FEATURES_DMA_SUPPORT_SHIFT)) |	\
160*2a1cdee4Sjohpow01 		(((val) & ARM_DRTM_DMA_PROT_FEATURES_DMA_SUPPORT_MASK)	\
161*2a1cdee4Sjohpow01 		<< ARM_DRTM_DMA_PROT_FEATURES_DMA_SUPPORT_SHIFT));	\
162*2a1cdee4Sjohpow01 	} while (false)
163*2a1cdee4Sjohpow01 
164*2a1cdee4Sjohpow01 #define ARM_DRTM_TCB_HASH_FEATURES_SET_MAX_NUM_HASHES(reg, val)		\
165*2a1cdee4Sjohpow01 	do {								\
166*2a1cdee4Sjohpow01 		reg = (((reg) &						\
167*2a1cdee4Sjohpow01 		~(ARM_DRTM_TCB_HASH_FEATURES_MAX_NUM_HASHES_MASK <<	\
168*2a1cdee4Sjohpow01 		ARM_DRTM_TCB_HASH_FEATURES_MAX_NUM_HASHES_SHIFT)) |	\
169*2a1cdee4Sjohpow01 		(((val) &						\
170*2a1cdee4Sjohpow01 		ARM_DRTM_TCB_HASH_FEATURES_MAX_NUM_HASHES_MASK) <<	\
171*2a1cdee4Sjohpow01 		ARM_DRTM_TCB_HASH_FEATURES_MAX_NUM_HASHES_SHIFT));	\
172*2a1cdee4Sjohpow01 	} while (false)
173*2a1cdee4Sjohpow01 
174*2a1cdee4Sjohpow01 /* Definitions for DRTM address map */
175*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_SHIFT	U(55)
176*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_MASK	ULL(0x3)
177*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_NC	ULL(0)
178*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_WC	ULL(1)
179*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_WT	ULL(2)
180*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_WB	ULL(3)
181*2a1cdee4Sjohpow01 
182*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_SHIFT	U(52)
183*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_MASK	ULL(0x7)
184*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_NORMAL	ULL(0)
185*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_NCAR	ULL(1)
186*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_DEVICE	ULL(2)
187*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_NV	ULL(3)
188*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_RSVD	ULL(4)
189*2a1cdee4Sjohpow01 
190*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_4K_PAGE_NUM_SHIFT	U(0)
191*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_4K_PAGE_NUM_MASK	ULL(0xFFFFFFFFFFFFF)
192*2a1cdee4Sjohpow01 
193*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_SET_CACHEABILITY(reg, val)		\
194*2a1cdee4Sjohpow01 	do {								\
195*2a1cdee4Sjohpow01 		reg = (((reg) &						\
196*2a1cdee4Sjohpow01 		~(ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_MASK << 	\
197*2a1cdee4Sjohpow01 		ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_SHIFT)) |	\
198*2a1cdee4Sjohpow01 		(((val) &						\
199*2a1cdee4Sjohpow01 		ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_MASK) <<		\
200*2a1cdee4Sjohpow01 		ARM_DRTM_REGION_SIZE_TYPE_CACHEABILITY_SHIFT));		\
201*2a1cdee4Sjohpow01 	} while (false)
202*2a1cdee4Sjohpow01 
203*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_SET_REGION_TYPE(reg, val)		\
204*2a1cdee4Sjohpow01 	do {								\
205*2a1cdee4Sjohpow01 		reg = (((reg) &						\
206*2a1cdee4Sjohpow01 		~(ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_MASK <<		\
207*2a1cdee4Sjohpow01 		ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_SHIFT)) |		\
208*2a1cdee4Sjohpow01 		(((val) & ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_MASK)	\
209*2a1cdee4Sjohpow01 		<< ARM_DRTM_REGION_SIZE_TYPE_REGION_TYPE_SHIFT));	\
210*2a1cdee4Sjohpow01 	} while (false)
211*2a1cdee4Sjohpow01 
212*2a1cdee4Sjohpow01 #define ARM_DRTM_REGION_SIZE_TYPE_SET_4K_PAGE_NUM(reg, val)		\
213*2a1cdee4Sjohpow01 	do {								\
214*2a1cdee4Sjohpow01 		reg = (((reg) &						\
215*2a1cdee4Sjohpow01 		~(ARM_DRTM_REGION_SIZE_TYPE_4K_PAGE_NUM_MASK <<		\
216*2a1cdee4Sjohpow01 		ARM_DRTM_REGION_SIZE_TYPE_4K_PAGE_NUM_SHIFT)) |		\
217*2a1cdee4Sjohpow01 		(((val) & ARM_DRTM_REGION_SIZE_TYPE_4K_PAGE_NUM_MASK)	\
218*2a1cdee4Sjohpow01 		<< ARM_DRTM_REGION_SIZE_TYPE_4K_PAGE_NUM_SHIFT));	\
219*2a1cdee4Sjohpow01 	} while (false)
220*2a1cdee4Sjohpow01 
221e62748e3SManish V Badarkhe /* Initialization routine for the DRTM service */
222e62748e3SManish V Badarkhe int drtm_setup(void);
223e62748e3SManish V Badarkhe 
224e62748e3SManish V Badarkhe /* Handler to be called to handle DRTM SMC calls */
225e62748e3SManish V Badarkhe uint64_t drtm_smc_handler(uint32_t smc_fid,
226e62748e3SManish V Badarkhe 			  uint64_t x1,
227e62748e3SManish V Badarkhe 			  uint64_t x2,
228e62748e3SManish V Badarkhe 			  uint64_t x3,
229e62748e3SManish V Badarkhe 			  uint64_t x4,
230e62748e3SManish V Badarkhe 			  void *cookie,
231e62748e3SManish V Badarkhe 			  void *handle,
232e62748e3SManish V Badarkhe 			  uint64_t flags);
233e62748e3SManish V Badarkhe 
234e62748e3SManish V Badarkhe #endif /* ARM_DRTM_SVC_H */
235