brintos

brintos / linux-shallow public Read only

0
0
Text · 686 B · 53840a2 Raw
34 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Arm v8 Self-Hosted trace support.4 *5 * Copyright (C) 2021 ARM Ltd.6 */7 8#ifndef __CORESIGHT_SELF_HOSTED_TRACE_H9#define __CORESIGHT_SELF_HOSTED_TRACE_H10 11#include <asm/sysreg.h>12 13static inline u64 read_trfcr(void)14{15	return read_sysreg_s(SYS_TRFCR_EL1);16}17 18static inline void write_trfcr(u64 val)19{20	write_sysreg_s(val, SYS_TRFCR_EL1);21	isb();22}23 24static inline u64 cpu_prohibit_trace(void)25{26	u64 trfcr = read_trfcr();27 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 */31	return trfcr;32}33#endif /*  __CORESIGHT_SELF_HOSTED_TRACE_H */34