240 lines
9.3 KiB
Plaintext
240 lines
9.3 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Coresight configuration
|
|
#
|
|
menuconfig CORESIGHT
|
|
tristate "CoreSight Tracing Support"
|
|
depends on ARM || ARM64
|
|
depends on OF || ACPI
|
|
select ARM_AMBA
|
|
select PERF_EVENTS
|
|
select CONFIGFS_FS
|
|
help
|
|
This framework provides a kernel interface for the CoreSight debug
|
|
and trace drivers to register themselves with. It's intended to build
|
|
a topological view of the CoreSight components based on a DT
|
|
specification and configure the right series of components when a
|
|
trace source gets enabled.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight.
|
|
|
|
if CORESIGHT
|
|
config CORESIGHT_LINKS_AND_SINKS
|
|
tristate "CoreSight Link and Sink drivers"
|
|
help
|
|
This enables support for CoreSight link and sink drivers that are
|
|
responsible for transporting and collecting the trace data
|
|
respectively. Link and sinks are dynamically aggregated with a trace
|
|
entity at run time to form a complete trace path.
|
|
|
|
To compile these drivers as modules, choose M here: the
|
|
modules will be called coresight-funnel and coresight-replicator.
|
|
|
|
config CORESIGHT_LINK_AND_SINK_TMC
|
|
tristate "Coresight generic TMC driver"
|
|
|
|
depends on CORESIGHT_LINKS_AND_SINKS
|
|
help
|
|
This enables support for the Trace Memory Controller driver.
|
|
Depending on its configuration the device can act as a link (embedded
|
|
trace router - ETR) or sink (embedded trace FIFO). The driver
|
|
complies with the generic implementation of the component without
|
|
special enhancement or added features.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight-tmc.
|
|
|
|
config CORESIGHT_CATU
|
|
tristate "Coresight Address Translation Unit (CATU) driver"
|
|
depends on CORESIGHT_LINK_AND_SINK_TMC
|
|
help
|
|
Enable support for the Coresight Address Translation Unit (CATU).
|
|
CATU supports a scatter gather table of 4K pages, with forward/backward
|
|
lookup. CATU helps TMC ETR to use a large physically non-contiguous trace
|
|
buffer by translating the addresses used by ETR to the physical address
|
|
by looking up the provided table. CATU can also be used in pass-through
|
|
mode where the address is not translated.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight-catu.
|
|
|
|
config CORESIGHT_SINK_TPIU
|
|
tristate "Coresight generic TPIU driver"
|
|
depends on CORESIGHT_LINKS_AND_SINKS
|
|
help
|
|
This enables support for the Trace Port Interface Unit driver,
|
|
responsible for bridging the gap between the on-chip coresight
|
|
components and a trace for bridging the gap between the on-chip
|
|
coresight components and a trace port collection engine, typically
|
|
connected to an external host for use case capturing more traces than
|
|
the on-board coresight memory can handle.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight-tpiu.
|
|
|
|
config CORESIGHT_SINK_ETBV10
|
|
tristate "Coresight ETBv1.0 driver"
|
|
depends on CORESIGHT_LINKS_AND_SINKS
|
|
help
|
|
This enables support for the Embedded Trace Buffer version 1.0 driver
|
|
that complies with the generic implementation of the component without
|
|
special enhancement or added features.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight-etb10.
|
|
|
|
config CORESIGHT_SOURCE_ETM3X
|
|
tristate "CoreSight Embedded Trace Macrocell 3.x driver"
|
|
depends on !ARM64
|
|
select CORESIGHT_LINKS_AND_SINKS
|
|
help
|
|
This driver provides support for processor ETM3.x and PTM1.x modules,
|
|
which allows tracing the instructions that a processor is executing
|
|
This is primarily useful for instruction level tracing. Depending
|
|
the ETM version data tracing may also be available.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight-etm3x.
|
|
|
|
config CORESIGHT_SOURCE_ETM4X
|
|
tristate "CoreSight ETMv4.x / ETE driver"
|
|
depends on ARM64
|
|
select CORESIGHT_LINKS_AND_SINKS
|
|
select PID_IN_CONTEXTIDR
|
|
help
|
|
This driver provides support for the CoreSight Embedded Trace Macrocell
|
|
version 4.x and the Embedded Trace Extensions (ETE). Both are CPU tracer
|
|
modules, tracing the instructions that a processor is executing. This is
|
|
primarily useful for instruction level tracing.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight-etm4x.
|
|
|
|
config ETM4X_IMPDEF_FEATURE
|
|
bool "Control implementation defined overflow support in ETM 4.x driver"
|
|
depends on CORESIGHT_SOURCE_ETM4X
|
|
help
|
|
This control provides implementation define control for CoreSight
|
|
ETM 4.x tracer module that can't reduce commit rate automatically.
|
|
This avoids overflow between the ETM tracer module and the cpu core.
|
|
|
|
config CORESIGHT_STM
|
|
tristate "CoreSight System Trace Macrocell driver"
|
|
depends on (ARM && !(CPU_32v3 || CPU_32v4 || CPU_32v4T)) || ARM64
|
|
select CORESIGHT_LINKS_AND_SINKS
|
|
select STM
|
|
help
|
|
This driver provides support for hardware assisted software
|
|
instrumentation based tracing. This is primarily used for
|
|
logging useful software events or data coming from various entities
|
|
in the system, possibly running different OSs
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight-stm.
|
|
|
|
config CORESIGHT_CPU_DEBUG
|
|
tristate "CoreSight CPU Debug driver"
|
|
depends on ARM || ARM64
|
|
depends on DEBUG_FS
|
|
help
|
|
This driver provides support for coresight debugging module. This
|
|
is primarily used to dump sample-based profiling registers when
|
|
system triggers panic, the driver will parse context registers so
|
|
can quickly get to know program counter (PC), secure state,
|
|
exception level, etc. Before use debugging functionality, platform
|
|
needs to ensure the clock domain and power domain are enabled
|
|
properly, please refer Documentation/trace/coresight/coresight-cpu-debug.rst
|
|
for detailed description and the example for usage.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight-cpu-debug.
|
|
|
|
config CORESIGHT_CPU_DEBUG_DEFAULT_ON
|
|
bool "Enable CoreSight CPU Debug by default"
|
|
depends on CORESIGHT_CPU_DEBUG
|
|
help
|
|
Say Y here to enable the CoreSight Debug panic-debug by default. This
|
|
can also be enabled via debugfs, but this ensures the debug feature
|
|
is enabled as early as possible.
|
|
|
|
Has the same effect as setting coresight_cpu_debug.enable=1 on the
|
|
kernel command line.
|
|
|
|
Say N if unsure.
|
|
|
|
config CORESIGHT_CTI
|
|
tristate "CoreSight Cross Trigger Interface (CTI) driver"
|
|
depends on ARM || ARM64
|
|
help
|
|
This driver provides support for CoreSight CTI and CTM components.
|
|
These provide hardware triggering events between CoreSight trace
|
|
source and sink components. These can be used to halt trace or
|
|
inject events into the trace stream. CTI also provides a software
|
|
control to trigger the same halt events. This can provide fast trace
|
|
halt compared to disabling sources and sinks normally in driver
|
|
software.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called coresight-cti.
|
|
|
|
config CORESIGHT_CTI_INTEGRATION_REGS
|
|
bool "Access CTI CoreSight Integration Registers"
|
|
depends on CORESIGHT_CTI
|
|
help
|
|
This option adds support for the CoreSight integration registers on
|
|
this device. The integration registers allow the exploration of the
|
|
CTI trigger connections between this and other devices.These
|
|
registers are not used in normal operation and can leave devices in
|
|
an inconsistent state.
|
|
|
|
config CORESIGHT_TRBE
|
|
tristate "Trace Buffer Extension (TRBE) driver"
|
|
depends on ARM64 && CORESIGHT_SOURCE_ETM4X
|
|
help
|
|
This driver provides support for percpu Trace Buffer Extension (TRBE).
|
|
TRBE always needs to be used along with its corresponding percpu ETE
|
|
component. ETE generates trace data which is then captured with TRBE.
|
|
Unlike traditional sink devices, TRBE is a CPU feature accessible via
|
|
system registers. But its explicit dependency with trace unit (ETE)
|
|
requires it to be plugged in as a coresight sink device.
|
|
|
|
To compile this driver as a module, choose M here: the module will be
|
|
called coresight-trbe.
|
|
|
|
config ULTRASOC_SMB
|
|
tristate "Ultrasoc system memory buffer drivers"
|
|
depends on ACPI || COMPILE_TEST
|
|
depends on ARM64 && CORESIGHT_LINKS_AND_SINKS
|
|
help
|
|
This driver provides support for the Ultrasoc system memory buffer (SMB).
|
|
SMB is responsible for receiving the trace data from Coresight ETM devices
|
|
and storing them to a system buffer.
|
|
|
|
To compile this driver as a module, choose M here: the module will be
|
|
called ultrasoc-smb.
|
|
|
|
config CORESIGHT_TPDM
|
|
tristate "CoreSight Trace, Profiling & Diagnostics Monitor driver"
|
|
select CORESIGHT_LINKS_AND_SINKS
|
|
select CORESIGHT_TPDA
|
|
help
|
|
This driver provides support for configuring monitor. Monitors are
|
|
primarily responsible for data set collection and support the
|
|
ability to collect any permutation of data set types.
|
|
|
|
To compile this driver as a module, choose M here: the module will be
|
|
called coresight-tpdm.
|
|
|
|
config CORESIGHT_TPDA
|
|
tristate "CoreSight Trace, Profiling & Diagnostics Aggregator driver"
|
|
help
|
|
This driver provides support for configuring aggregator. This is
|
|
primarily useful for pulling the data sets from one or more
|
|
attached monitors and pushing the resultant data out. Multiple
|
|
monitors are connected on different input ports of TPDA.
|
|
|
|
To compile this driver as a module, choose M here: the module will be
|
|
called coresight-tpda.
|
|
endif
|