1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Performance Monitor Drivers 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunmenu "Performance monitor support" 7*4882a593Smuzhiyun depends on PERF_EVENTS 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunconfig ARM_CCI_PMU 10*4882a593Smuzhiyun tristate "ARM CCI PMU driver" 11*4882a593Smuzhiyun depends on (ARM && CPU_V7) || ARM64 12*4882a593Smuzhiyun select ARM_CCI 13*4882a593Smuzhiyun help 14*4882a593Smuzhiyun Support for PMU events monitoring on the ARM CCI (Cache Coherent 15*4882a593Smuzhiyun Interconnect) family of products. 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun If compiled as a module, it will be called arm-cci. 18*4882a593Smuzhiyun 19*4882a593Smuzhiyunconfig ARM_CCI400_PMU 20*4882a593Smuzhiyun bool "support CCI-400" 21*4882a593Smuzhiyun default y 22*4882a593Smuzhiyun depends on ARM_CCI_PMU 23*4882a593Smuzhiyun select ARM_CCI400_COMMON 24*4882a593Smuzhiyun help 25*4882a593Smuzhiyun CCI-400 provides 4 independent event counters counting events related 26*4882a593Smuzhiyun to the connected slave/master interfaces, plus a cycle counter. 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunconfig ARM_CCI5xx_PMU 29*4882a593Smuzhiyun bool "support CCI-500/CCI-550" 30*4882a593Smuzhiyun default y 31*4882a593Smuzhiyun depends on ARM_CCI_PMU 32*4882a593Smuzhiyun help 33*4882a593Smuzhiyun CCI-500/CCI-550 both provide 8 independent event counters, which can 34*4882a593Smuzhiyun count events pertaining to the slave/master interfaces as well as the 35*4882a593Smuzhiyun internal events to the CCI. 36*4882a593Smuzhiyun 37*4882a593Smuzhiyunconfig ARM_CCN 38*4882a593Smuzhiyun tristate "ARM CCN driver support" 39*4882a593Smuzhiyun depends on ARM || ARM64 40*4882a593Smuzhiyun help 41*4882a593Smuzhiyun PMU (perf) driver supporting the ARM CCN (Cache Coherent Network) 42*4882a593Smuzhiyun interconnect. 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunconfig ARM_CMN 45*4882a593Smuzhiyun tristate "Arm CMN-600 PMU support" 46*4882a593Smuzhiyun depends on ARM64 || (COMPILE_TEST && 64BIT) 47*4882a593Smuzhiyun help 48*4882a593Smuzhiyun Support for PMU events monitoring on the Arm CMN-600 Coherent Mesh 49*4882a593Smuzhiyun Network interconnect. 50*4882a593Smuzhiyun 51*4882a593Smuzhiyunconfig ARM_PMU 52*4882a593Smuzhiyun depends on ARM || ARM64 53*4882a593Smuzhiyun bool "ARM PMU framework" 54*4882a593Smuzhiyun default y 55*4882a593Smuzhiyun help 56*4882a593Smuzhiyun Say y if you want to use CPU performance monitors on ARM-based 57*4882a593Smuzhiyun systems. 58*4882a593Smuzhiyun 59*4882a593Smuzhiyunconfig ARM_PMU_ACPI 60*4882a593Smuzhiyun depends on ARM_PMU && ACPI 61*4882a593Smuzhiyun def_bool y 62*4882a593Smuzhiyun 63*4882a593Smuzhiyunconfig ARM_SMMU_V3_PMU 64*4882a593Smuzhiyun tristate "ARM SMMUv3 Performance Monitors Extension" 65*4882a593Smuzhiyun depends on ARM64 && ACPI && ARM_SMMU_V3 66*4882a593Smuzhiyun help 67*4882a593Smuzhiyun Provides support for the ARM SMMUv3 Performance Monitor Counter 68*4882a593Smuzhiyun Groups (PMCG), which provide monitoring of transactions passing 69*4882a593Smuzhiyun through the SMMU and allow the resulting information to be filtered 70*4882a593Smuzhiyun based on the Stream ID of the corresponding master. 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunconfig ARM_DSU_PMU 73*4882a593Smuzhiyun tristate "ARM DynamIQ Shared Unit (DSU) PMU" 74*4882a593Smuzhiyun depends on ARM64 75*4882a593Smuzhiyun help 76*4882a593Smuzhiyun Provides support for performance monitor unit in ARM DynamIQ Shared 77*4882a593Smuzhiyun Unit (DSU). The DSU integrates one or more cores with an L3 memory 78*4882a593Smuzhiyun system, control logic. The PMU allows counting various events related 79*4882a593Smuzhiyun to DSU. 80*4882a593Smuzhiyun 81*4882a593Smuzhiyunconfig FSL_IMX8_DDR_PMU 82*4882a593Smuzhiyun tristate "Freescale i.MX8 DDR perf monitor" 83*4882a593Smuzhiyun depends on ARCH_MXC 84*4882a593Smuzhiyun help 85*4882a593Smuzhiyun Provides support for the DDR performance monitor in i.MX8, which 86*4882a593Smuzhiyun can give information about memory throughput and other related 87*4882a593Smuzhiyun events. 88*4882a593Smuzhiyun 89*4882a593Smuzhiyunconfig QCOM_L2_PMU 90*4882a593Smuzhiyun bool "Qualcomm Technologies L2-cache PMU" 91*4882a593Smuzhiyun depends on ARCH_QCOM && ARM64 && ACPI 92*4882a593Smuzhiyun select QCOM_KRYO_L2_ACCESSORS 93*4882a593Smuzhiyun help 94*4882a593Smuzhiyun Provides support for the L2 cache performance monitor unit (PMU) 95*4882a593Smuzhiyun in Qualcomm Technologies processors. 96*4882a593Smuzhiyun Adds the L2 cache PMU into the perf events subsystem for 97*4882a593Smuzhiyun monitoring L2 cache events. 98*4882a593Smuzhiyun 99*4882a593Smuzhiyunconfig QCOM_L3_PMU 100*4882a593Smuzhiyun bool "Qualcomm Technologies L3-cache PMU" 101*4882a593Smuzhiyun depends on ARCH_QCOM && ARM64 && ACPI 102*4882a593Smuzhiyun select QCOM_IRQ_COMBINER 103*4882a593Smuzhiyun help 104*4882a593Smuzhiyun Provides support for the L3 cache performance monitor unit (PMU) 105*4882a593Smuzhiyun in Qualcomm Technologies processors. 106*4882a593Smuzhiyun Adds the L3 cache PMU into the perf events subsystem for 107*4882a593Smuzhiyun monitoring L3 cache events. 108*4882a593Smuzhiyun 109*4882a593Smuzhiyunconfig THUNDERX2_PMU 110*4882a593Smuzhiyun tristate "Cavium ThunderX2 SoC PMU UNCORE" 111*4882a593Smuzhiyun depends on ARCH_THUNDER2 && ARM64 && ACPI && NUMA 112*4882a593Smuzhiyun default m 113*4882a593Smuzhiyun help 114*4882a593Smuzhiyun Provides support for ThunderX2 UNCORE events. 115*4882a593Smuzhiyun The SoC has PMU support in its L3 cache controller (L3C) and 116*4882a593Smuzhiyun in the DDR4 Memory Controller (DMC). 117*4882a593Smuzhiyun 118*4882a593Smuzhiyunconfig XGENE_PMU 119*4882a593Smuzhiyun depends on ARCH_XGENE 120*4882a593Smuzhiyun bool "APM X-Gene SoC PMU" 121*4882a593Smuzhiyun default n 122*4882a593Smuzhiyun help 123*4882a593Smuzhiyun Say y if you want to use APM X-Gene SoC performance monitors. 124*4882a593Smuzhiyun 125*4882a593Smuzhiyunconfig ARM_SPE_PMU 126*4882a593Smuzhiyun tristate "Enable support for the ARMv8.2 Statistical Profiling Extension" 127*4882a593Smuzhiyun depends on ARM64 128*4882a593Smuzhiyun help 129*4882a593Smuzhiyun Enable perf support for the ARMv8.2 Statistical Profiling 130*4882a593Smuzhiyun Extension, which provides periodic sampling of operations in 131*4882a593Smuzhiyun the CPU pipeline and reports this via the perf AUX interface. 132*4882a593Smuzhiyun 133*4882a593Smuzhiyunsource "drivers/perf/hisilicon/Kconfig" 134*4882a593Smuzhiyun 135*4882a593Smuzhiyunendmenu 136