| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- # 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_CTCU
- tristate "CoreSight TMC Control Unit driver"
- depends on CORESIGHT_LINK_AND_SINK_TMC
- help
- This driver provides support for CoreSight TMC Control Unit
- that hosts miscellaneous configuration registers. This is
- primarily used for controlling the behaviors of the TMC
- ETR device.
- To compile this driver as a module, choose M here: the
- module will be called coresight-ctcu.
- 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.
- config CORESIGHT_DUMMY
- tristate "Dummy driver support"
- help
- Enables support for dummy driver. Dummy driver can be used for
- CoreSight sources/sinks that are owned and configured by some
- other subsystem and use Linux drivers to configure rest of trace
- path.
- To compile this driver as a module, choose M here: the module will be
- called coresight-dummy.
- config CORESIGHT_KUNIT_TESTS
- tristate "Enable Coresight unit tests"
- depends on KUNIT
- default KUNIT_ALL_TESTS
- help
- Enable Coresight unit tests. Only useful for development and not
- intended for production.
- config CORESIGHT_TNOC
- tristate "Coresight Trace Network On Chip driver"
- help
- This driver provides support for Trace Network On Chip (TNOC) component.
- TNOC is an interconnect used to collect traces from various subsystems
- and transport to a coresight trace sink. It sits in the different
- tiles of SOC and aggregates the trace local to the tile and transports
- it another tile or to coresight trace sink eventually.
- To compile this driver as a module, choose M here: the module will be
- called coresight-tnoc.
- endif
|