| .. | .. |
|---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | # |
|---|
| 2 | 3 | # Coresight configuration |
|---|
| 3 | 4 | # |
|---|
| 4 | 5 | menuconfig CORESIGHT |
|---|
| 5 | | - bool "CoreSight Tracing Support" |
|---|
| 6 | + tristate "CoreSight Tracing Support" |
|---|
| 7 | + depends on ARM || ARM64 |
|---|
| 8 | + depends on OF || ACPI |
|---|
| 6 | 9 | select ARM_AMBA |
|---|
| 7 | 10 | select PERF_EVENTS |
|---|
| 8 | 11 | help |
|---|
| .. | .. |
|---|
| 12 | 15 | specification and configure the right series of components when a |
|---|
| 13 | 16 | trace source gets enabled. |
|---|
| 14 | 17 | |
|---|
| 18 | + To compile this driver as a module, choose M here: the |
|---|
| 19 | + module will be called coresight. |
|---|
| 20 | + |
|---|
| 15 | 21 | if CORESIGHT |
|---|
| 16 | 22 | config CORESIGHT_LINKS_AND_SINKS |
|---|
| 17 | | - bool "CoreSight Link and Sink drivers" |
|---|
| 23 | + tristate "CoreSight Link and Sink drivers" |
|---|
| 18 | 24 | help |
|---|
| 19 | 25 | This enables support for CoreSight link and sink drivers that are |
|---|
| 20 | 26 | responsible for transporting and collecting the trace data |
|---|
| 21 | 27 | respectively. Link and sinks are dynamically aggregated with a trace |
|---|
| 22 | 28 | entity at run time to form a complete trace path. |
|---|
| 23 | 29 | |
|---|
| 30 | + To compile these drivers as modules, choose M here: the |
|---|
| 31 | + modules will be called coresight-funnel and coresight-replicator. |
|---|
| 32 | + |
|---|
| 24 | 33 | config CORESIGHT_LINK_AND_SINK_TMC |
|---|
| 25 | | - bool "Coresight generic TMC driver" |
|---|
| 34 | + tristate "Coresight generic TMC driver" |
|---|
| 35 | + |
|---|
| 26 | 36 | depends on CORESIGHT_LINKS_AND_SINKS |
|---|
| 27 | 37 | help |
|---|
| 28 | 38 | This enables support for the Trace Memory Controller driver. |
|---|
| .. | .. |
|---|
| 31 | 41 | complies with the generic implementation of the component without |
|---|
| 32 | 42 | special enhancement or added features. |
|---|
| 33 | 43 | |
|---|
| 44 | + To compile this driver as a module, choose M here: the |
|---|
| 45 | + module will be called coresight-tmc. |
|---|
| 46 | + |
|---|
| 34 | 47 | config CORESIGHT_CATU |
|---|
| 35 | | - bool "Coresight Address Translation Unit (CATU) driver" |
|---|
| 48 | + tristate "Coresight Address Translation Unit (CATU) driver" |
|---|
| 36 | 49 | depends on CORESIGHT_LINK_AND_SINK_TMC |
|---|
| 37 | 50 | help |
|---|
| 38 | 51 | Enable support for the Coresight Address Translation Unit (CATU). |
|---|
| .. | .. |
|---|
| 42 | 55 | by looking up the provided table. CATU can also be used in pass-through |
|---|
| 43 | 56 | mode where the address is not translated. |
|---|
| 44 | 57 | |
|---|
| 58 | + To compile this driver as a module, choose M here: the |
|---|
| 59 | + module will be called coresight-catu. |
|---|
| 60 | + |
|---|
| 45 | 61 | config CORESIGHT_SINK_TPIU |
|---|
| 46 | | - bool "Coresight generic TPIU driver" |
|---|
| 62 | + tristate "Coresight generic TPIU driver" |
|---|
| 47 | 63 | depends on CORESIGHT_LINKS_AND_SINKS |
|---|
| 48 | 64 | help |
|---|
| 49 | 65 | This enables support for the Trace Port Interface Unit driver, |
|---|
| .. | .. |
|---|
| 53 | 69 | connected to an external host for use case capturing more traces than |
|---|
| 54 | 70 | the on-board coresight memory can handle. |
|---|
| 55 | 71 | |
|---|
| 72 | + To compile this driver as a module, choose M here: the |
|---|
| 73 | + module will be called coresight-tpiu. |
|---|
| 74 | + |
|---|
| 56 | 75 | config CORESIGHT_SINK_ETBV10 |
|---|
| 57 | | - bool "Coresight ETBv1.0 driver" |
|---|
| 76 | + tristate "Coresight ETBv1.0 driver" |
|---|
| 58 | 77 | depends on CORESIGHT_LINKS_AND_SINKS |
|---|
| 59 | 78 | help |
|---|
| 60 | 79 | This enables support for the Embedded Trace Buffer version 1.0 driver |
|---|
| 61 | 80 | that complies with the generic implementation of the component without |
|---|
| 62 | 81 | special enhancement or added features. |
|---|
| 63 | 82 | |
|---|
| 83 | + To compile this driver as a module, choose M here: the |
|---|
| 84 | + module will be called coresight-etb10. |
|---|
| 85 | + |
|---|
| 64 | 86 | config CORESIGHT_SOURCE_ETM3X |
|---|
| 65 | | - bool "CoreSight Embedded Trace Macrocell 3.x driver" |
|---|
| 87 | + tristate "CoreSight Embedded Trace Macrocell 3.x driver" |
|---|
| 66 | 88 | depends on !ARM64 |
|---|
| 67 | 89 | select CORESIGHT_LINKS_AND_SINKS |
|---|
| 68 | 90 | help |
|---|
| .. | .. |
|---|
| 71 | 93 | This is primarily useful for instruction level tracing. Depending |
|---|
| 72 | 94 | the ETM version data tracing may also be available. |
|---|
| 73 | 95 | |
|---|
| 96 | + To compile this driver as a module, choose M here: the |
|---|
| 97 | + module will be called coresight-etm3x. |
|---|
| 98 | + |
|---|
| 74 | 99 | config CORESIGHT_SOURCE_ETM4X |
|---|
| 75 | | - bool "CoreSight Embedded Trace Macrocell 4.x driver" |
|---|
| 100 | + tristate "CoreSight ETMv4.x / ETE driver" |
|---|
| 76 | 101 | depends on ARM64 |
|---|
| 77 | 102 | select CORESIGHT_LINKS_AND_SINKS |
|---|
| 78 | 103 | select PID_IN_CONTEXTIDR |
|---|
| 79 | 104 | help |
|---|
| 80 | | - This driver provides support for the ETM4.x tracer module, tracing the |
|---|
| 81 | | - instructions that a processor is executing. This is primarily useful |
|---|
| 82 | | - for instruction level tracing. Depending on the implemented version |
|---|
| 83 | | - data tracing may also be available. |
|---|
| 105 | + This driver provides support for the CoreSight Embedded Trace Macrocell |
|---|
| 106 | + version 4.x and the Embedded Trace Extensions (ETE). Both are CPU tracer |
|---|
| 107 | + modules, tracing the instructions that a processor is executing. This is |
|---|
| 108 | + primarily useful for instruction level tracing. |
|---|
| 84 | 109 | |
|---|
| 85 | | -config CORESIGHT_DYNAMIC_REPLICATOR |
|---|
| 86 | | - bool "CoreSight Programmable Replicator driver" |
|---|
| 87 | | - depends on CORESIGHT_LINKS_AND_SINKS |
|---|
| 110 | + To compile this driver as a module, choose M here: the |
|---|
| 111 | + module will be called coresight-etm4x. |
|---|
| 112 | + |
|---|
| 113 | +config ETM4X_IMPDEF_FEATURE |
|---|
| 114 | + bool "Control implementation defined overflow support in ETM 4.x driver" |
|---|
| 115 | + depends on CORESIGHT_SOURCE_ETM4X |
|---|
| 88 | 116 | help |
|---|
| 89 | | - This enables support for dynamic CoreSight replicator link driver. |
|---|
| 90 | | - The programmable ATB replicator allows independent filtering of the |
|---|
| 91 | | - trace data based on the traceid. |
|---|
| 117 | + This control provides implementation define control for CoreSight |
|---|
| 118 | + ETM 4.x tracer module that can't reduce commit rate automatically. |
|---|
| 119 | + This avoids overflow between the ETM tracer module and the cpu core. |
|---|
| 92 | 120 | |
|---|
| 93 | 121 | config CORESIGHT_STM |
|---|
| 94 | | - bool "CoreSight System Trace Macrocell driver" |
|---|
| 122 | + tristate "CoreSight System Trace Macrocell driver" |
|---|
| 95 | 123 | depends on (ARM && !(CPU_32v3 || CPU_32v4 || CPU_32v4T)) || ARM64 |
|---|
| 96 | 124 | select CORESIGHT_LINKS_AND_SINKS |
|---|
| 97 | 125 | select STM |
|---|
| .. | .. |
|---|
| 100 | 128 | instrumentation based tracing. This is primarily used for |
|---|
| 101 | 129 | logging useful software events or data coming from various entities |
|---|
| 102 | 130 | in the system, possibly running different OSs |
|---|
| 131 | + |
|---|
| 132 | + To compile this driver as a module, choose M here: the |
|---|
| 133 | + module will be called coresight-stm. |
|---|
| 103 | 134 | |
|---|
| 104 | 135 | config CORESIGHT_CPU_DEBUG |
|---|
| 105 | 136 | tristate "CoreSight CPU Debug driver" |
|---|
| .. | .. |
|---|
| 112 | 143 | can quickly get to know program counter (PC), secure state, |
|---|
| 113 | 144 | exception level, etc. Before use debugging functionality, platform |
|---|
| 114 | 145 | needs to ensure the clock domain and power domain are enabled |
|---|
| 115 | | - properly, please refer Documentation/trace/coresight-cpu-debug.txt |
|---|
| 146 | + properly, please refer Documentation/trace/coresight/coresight-cpu-debug.rst |
|---|
| 116 | 147 | for detailed description and the example for usage. |
|---|
| 117 | 148 | |
|---|
| 149 | + To compile this driver as a module, choose M here: the |
|---|
| 150 | + module will be called coresight-cpu-debug. |
|---|
| 151 | + |
|---|
| 152 | +config CORESIGHT_CTI |
|---|
| 153 | + tristate "CoreSight Cross Trigger Interface (CTI) driver" |
|---|
| 154 | + depends on ARM || ARM64 |
|---|
| 155 | + help |
|---|
| 156 | + This driver provides support for CoreSight CTI and CTM components. |
|---|
| 157 | + These provide hardware triggering events between CoreSight trace |
|---|
| 158 | + source and sink components. These can be used to halt trace or |
|---|
| 159 | + inject events into the trace stream. CTI also provides a software |
|---|
| 160 | + control to trigger the same halt events. This can provide fast trace |
|---|
| 161 | + halt compared to disabling sources and sinks normally in driver |
|---|
| 162 | + software. |
|---|
| 163 | + |
|---|
| 164 | + To compile this driver as a module, choose M here: the |
|---|
| 165 | + module will be called coresight-cti. |
|---|
| 166 | + |
|---|
| 167 | +config CORESIGHT_CTI_INTEGRATION_REGS |
|---|
| 168 | + bool "Access CTI CoreSight Integration Registers" |
|---|
| 169 | + depends on CORESIGHT_CTI |
|---|
| 170 | + help |
|---|
| 171 | + This option adds support for the CoreSight integration registers on |
|---|
| 172 | + this device. The integration registers allow the exploration of the |
|---|
| 173 | + CTI trigger connections between this and other devices.These |
|---|
| 174 | + registers are not used in normal operation and can leave devices in |
|---|
| 175 | + an inconsistent state. |
|---|
| 176 | + |
|---|
| 177 | +config CORESIGHT_TRBE |
|---|
| 178 | + tristate "Trace Buffer Extension (TRBE) driver" |
|---|
| 179 | + depends on ARM64 && CORESIGHT_SOURCE_ETM4X |
|---|
| 180 | + help |
|---|
| 181 | + This driver provides support for percpu Trace Buffer Extension (TRBE). |
|---|
| 182 | + TRBE always needs to be used along with it's corresponding percpu ETE |
|---|
| 183 | + component. ETE generates trace data which is then captured with TRBE. |
|---|
| 184 | + Unlike traditional sink devices, TRBE is a CPU feature accessible via |
|---|
| 185 | + system registers. But it's explicit dependency with trace unit (ETE) |
|---|
| 186 | + requires it to be plugged in as a coresight sink device. |
|---|
| 187 | + |
|---|
| 188 | + To compile this driver as a module, choose M here: the module will be |
|---|
| 189 | + called coresight-trbe. |
|---|
| 118 | 190 | endif |
|---|