xref: /linux/tools/include/linux/coresight-pmu.h (revision d1857f8296dceb75d00ab857fc3c61bc00c7f5c6)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright(C) 2015 Linaro Limited. All rights reserved.
4  * Author: Mathieu Poirier <mathieu.poirier@linaro.org>
5  */
6 
7 #ifndef _LINUX_CORESIGHT_PMU_H
8 #define _LINUX_CORESIGHT_PMU_H
9 
10 #include <linux/bits.h>
11 
12 #define CORESIGHT_ETM_PMU_NAME "cs_etm"
13 
14 /*
15  * The legacy Trace ID system based on fixed calculation from the cpu
16  * number. This has been replaced by drivers using a dynamic allocation
17  * system - but need to retain the legacy algorithm for backward comparibility
18  * in certain situations:-
19  * a) new perf running on older systems that generate the legacy mapping
20  * b) older tools that may not update at the same time as the kernel.
21  */
22 #define CORESIGHT_LEGACY_CPU_TRACE_ID(cpu)  (0x10 + (cpu * 2))
23 
24 /*
25  * Interpretation of the PERF_RECORD_AUX_OUTPUT_HW_ID payload.
26  * Used to associate a CPU with the CoreSight Trace ID.
27  * [07:00] - Trace ID - uses 8 bits to make value easy to read in file.
28  * [39:08] - Sink ID - as reported in /sys/bus/event_source/devices/cs_etm/sinks/
29  *	      Added in minor version 1.
30  * [55:40] - Unused (SBZ)
31  * [59:56] - Minor Version - previously existing fields are compatible with
32  *	      all minor versions.
33  * [63:60] - Major Version - previously existing fields mean different things
34  *	      in new major versions.
35  */
36 #define CS_AUX_HW_ID_TRACE_ID_MASK	GENMASK_ULL(7, 0)
37 #define CS_AUX_HW_ID_SINK_ID_MASK	GENMASK_ULL(39, 8)
38 
39 #define CS_AUX_HW_ID_MINOR_VERSION_MASK	GENMASK_ULL(59, 56)
40 #define CS_AUX_HW_ID_MAJOR_VERSION_MASK	GENMASK_ULL(63, 60)
41 
42 #define CS_AUX_HW_ID_MAJOR_VERSION 0
43 #define CS_AUX_HW_ID_MINOR_VERSION 1
44 
45 #endif
46