mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-03 23:37:40 -04:00
ETM_OPT_* definitions duplicate the PMU format attributes that have always been published in sysfs. Hardcoding them here makes it misleading as to what the 'real' PMU API is and prevents attributes from being rearranged in the future. ETM4_CFG_BIT_* definitions just define what the Arm Architecture is which is not the responsibility of the kernel to do and doesn't scale to other registers or versions of ETM. It's not an actual software ABI/API and these definitions here mislead that it is. Any tools using the first ones would be broken anyway as they won't work when attributes are moved, so removing them is the right thing to do and will prompt a fix. Tools using the second ones can trivially redefine them locally. Perf also has its own copy of the headers so both of these things can be fixed up at a later date. Reviewed-by: Leo Yan <leo.yan@arm.com> Reviewed-by: Mike Leach <mike.leach@linaro.org> Tested-by: Leo Yan <leo.yan@arm.com> Signed-off-by: James Clark <james.clark@linaro.org> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Link: https://lore.kernel.org/r/20251128-james-cs-syncfreq-v8-10-4d319764cc58@linaro.org
46 lines
1.6 KiB
C
46 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright(C) 2015 Linaro Limited. All rights reserved.
|
|
* Author: Mathieu Poirier <mathieu.poirier@linaro.org>
|
|
*/
|
|
|
|
#ifndef _LINUX_CORESIGHT_PMU_H
|
|
#define _LINUX_CORESIGHT_PMU_H
|
|
|
|
#include <linux/bits.h>
|
|
|
|
#define CORESIGHT_ETM_PMU_NAME "cs_etm"
|
|
|
|
/*
|
|
* The legacy Trace ID system based on fixed calculation from the cpu
|
|
* number. This has been replaced by drivers using a dynamic allocation
|
|
* system - but need to retain the legacy algorithm for backward comparibility
|
|
* in certain situations:-
|
|
* a) new perf running on older systems that generate the legacy mapping
|
|
* b) older tools that may not update at the same time as the kernel.
|
|
*/
|
|
#define CORESIGHT_LEGACY_CPU_TRACE_ID(cpu) (0x10 + (cpu * 2))
|
|
|
|
/*
|
|
* Interpretation of the PERF_RECORD_AUX_OUTPUT_HW_ID payload.
|
|
* Used to associate a CPU with the CoreSight Trace ID.
|
|
* [07:00] - Trace ID - uses 8 bits to make value easy to read in file.
|
|
* [39:08] - Sink ID - as reported in /sys/bus/event_source/devices/cs_etm/sinks/
|
|
* Added in minor version 1.
|
|
* [55:40] - Unused (SBZ)
|
|
* [59:56] - Minor Version - previously existing fields are compatible with
|
|
* all minor versions.
|
|
* [63:60] - Major Version - previously existing fields mean different things
|
|
* in new major versions.
|
|
*/
|
|
#define CS_AUX_HW_ID_TRACE_ID_MASK GENMASK_ULL(7, 0)
|
|
#define CS_AUX_HW_ID_SINK_ID_MASK GENMASK_ULL(39, 8)
|
|
|
|
#define CS_AUX_HW_ID_MINOR_VERSION_MASK GENMASK_ULL(59, 56)
|
|
#define CS_AUX_HW_ID_MAJOR_VERSION_MASK GENMASK_ULL(63, 60)
|
|
|
|
#define CS_AUX_HW_ID_MAJOR_VERSION 0
|
|
#define CS_AUX_HW_ID_MINOR_VERSION 1
|
|
|
|
#endif
|