205 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			8.0 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.
 | |
| endif
 |