xref: /arm-trusted-firmware/services/std_svc/drtm/drtm_measurements.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2022 Arm Limited. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier:    BSD-3-Clause
5*91f16700Schasinglulu  *
6*91f16700Schasinglulu  */
7*91f16700Schasinglulu #ifndef DRTM_MEASUREMENTS_H
8*91f16700Schasinglulu #define DRTM_MEASUREMENTS_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <stdint.h>
11*91f16700Schasinglulu 
12*91f16700Schasinglulu #include "drtm_main.h"
13*91f16700Schasinglulu #include <platform_def.h>
14*91f16700Schasinglulu 
15*91f16700Schasinglulu #define DRTM_EVENT_ARM_BASE		0x9000U
16*91f16700Schasinglulu #define DRTM_EVENT_TYPE(n)		(DRTM_EVENT_ARM_BASE + (unsigned int)(n))
17*91f16700Schasinglulu 
18*91f16700Schasinglulu #define DRTM_EVENT_ARM_PCR_SCHEMA	DRTM_EVENT_TYPE(1)
19*91f16700Schasinglulu #define DRTM_EVENT_ARM_DCE		DRTM_EVENT_TYPE(2)
20*91f16700Schasinglulu #define DRTM_EVENT_ARM_DCE_PUBKEY	DRTM_EVENT_TYPE(3)
21*91f16700Schasinglulu #define DRTM_EVENT_ARM_DLME		DRTM_EVENT_TYPE(4)
22*91f16700Schasinglulu #define DRTM_EVENT_ARM_DLME_EP		DRTM_EVENT_TYPE(5)
23*91f16700Schasinglulu #define DRTM_EVENT_ARM_DEBUG_CONFIG	DRTM_EVENT_TYPE(6)
24*91f16700Schasinglulu #define DRTM_EVENT_ARM_NONSECURE_CONFIG	DRTM_EVENT_TYPE(7)
25*91f16700Schasinglulu #define DRTM_EVENT_ARM_DCE_SECONDARY	DRTM_EVENT_TYPE(8)
26*91f16700Schasinglulu #define DRTM_EVENT_ARM_TZFW		DRTM_EVENT_TYPE(9)
27*91f16700Schasinglulu #define DRTM_EVENT_ARM_SEPARATOR	DRTM_EVENT_TYPE(10)
28*91f16700Schasinglulu 
29*91f16700Schasinglulu #define CHECK_RC(rc, func_call) { \
30*91f16700Schasinglulu 	if (rc != 0) { \
31*91f16700Schasinglulu 		ERROR("%s(): " #func_call "failed unexpectedly rc=%d\n",  \
32*91f16700Schasinglulu 		      __func__, rc);  \
33*91f16700Schasinglulu 		panic();  \
34*91f16700Schasinglulu 	}  \
35*91f16700Schasinglulu }
36*91f16700Schasinglulu 
37*91f16700Schasinglulu enum drtm_retc drtm_take_measurements(const struct_drtm_dl_args *a);
38*91f16700Schasinglulu void drtm_serialise_event_log(uint8_t *dst, size_t *event_log_size_out);
39*91f16700Schasinglulu 
40*91f16700Schasinglulu #endif /* DRTM_MEASUREMENTS_H */
41