1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Arm v8 Self-Hosted trace support.
5 * Copyright (C) 2021 ARM Ltd.
8 #ifndef __CORESIGHT_SELF_HOSTED_TRACE_H
9 #define __CORESIGHT_SELF_HOSTED_TRACE_H
11 #include <asm/sysreg.h>
13 static inline u64 read_trfcr(void)
15 return read_sysreg_s(SYS_TRFCR_EL1);
18 static inline void write_trfcr(u64 val)
20 write_sysreg_s(val, SYS_TRFCR_EL1);
24 static inline u64 cpu_prohibit_trace(void)
26 u64 trfcr = read_trfcr();
28 /* Prohibit tracing at EL0 & the kernel EL */
29 write_trfcr(trfcr & ~(TRFCR_ELx_ExTRE | TRFCR_ELx_E0TRE));
30 /* Return the original value of the TRFCR */
33 #endif /* __CORESIGHT_SELF_HOSTED_TRACE_H */