750 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			750 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #
 | |
| # QCOM Soc drivers
 | |
| #
 | |
| config OPTIMIZE_LTE_RX
 | |
|         bool "Optimize lte rx"
 | |
|         help
 | |
|           Say y here to optimize memory for 9x07 with qc wlan.
 | |
| 
 | |
| config QCOM_GSBI
 | |
|         tristate "QCOM General Serial Bus Interface"
 | |
|         depends on ARCH_QCOM
 | |
|         help
 | |
|           Say y here to enable GSBI support.  The GSBI provides control
 | |
|           functions for connecting the underlying serial UART, SPI, and I2C
 | |
|           devices to the output pins.
 | |
| 
 | |
| if ARCH_MSM
 | |
| 
 | |
| config CP_ACCESS64
 | |
| 	depends on ARM64
 | |
|         tristate "CP 64-bit register access tool"
 | |
|         help
 | |
|           Provide support for AARCH64 CP register access using /sys
 | |
|           interface. Read and write to CP registers from userspace
 | |
|           through sysfs interface. A sys file (cp_rw) will be created under
 | |
|           /sys/devices/cpaccess/cpaccess0.
 | |
| 
 | |
|           If unsure, say N.
 | |
| 
 | |
| config MSM_INRUSH_CURRENT_MITIGATION
 | |
|         bool "Inrush-current mitigation Driver"
 | |
|         help
 | |
|          This driver helps in mitigating in-rush current on MSM
 | |
|          chipsets which has voltage droop issues due to sudden
 | |
|          huge load on a rail. This driver introduces an intermediate
 | |
|          load to mitigate the in-rush current.
 | |
| 
 | |
| config MSM_QDSP6_APRV2
 | |
|         bool "Audio QDSP6 APRv2 support"
 | |
|         depends on MSM_SMD
 | |
|         help
 | |
|           Enable APRv2 IPC protocol support between
 | |
|           application processor and QDSP6. APR is
 | |
|           used by audio driver to configure QDSP6's
 | |
|           ASM, ADM and AFE.
 | |
| 
 | |
| config MSM_GLADIATOR_ERP
 | |
| 	tristate "GLADIATOR coherency interconnect error reporting driver"
 | |
| 	help
 | |
| 	  Support dumping debug information for the GLADIATOR
 | |
| 	  cache interconnect in the error interrupt handler.
 | |
| 	  Meant to be used for debug scenarios only.
 | |
| 
 | |
| 	  If unsure, say N.
 | |
| 
 | |
| config PANIC_ON_GLADIATOR_ERROR
 | |
| 	depends on MSM_GLADIATOR_ERP
 | |
| 	bool "Panic on GLADIATOR error report"
 | |
| 	help
 | |
| 	  Panic upon detection of an Gladiator coherency interconnect error
 | |
| 	  in order to support dumping debug information.
 | |
| 	  Meant to be used for debug scenarios only.
 | |
| 
 | |
| 	  If unsure, say N.
 | |
| 
 | |
| config MSM_QDSP6_APRV3
 | |
| 	bool "Audio QDSP6 APRv3 support"
 | |
| 	depends on MSM_SMD
 | |
| 	help
 | |
| 	  Enable APRv3 IPC protocol support between
 | |
| 	  application processor and QDSP6. APR is
 | |
| 	  used by audio driver to configure QDSP6v2's
 | |
| 	  ASM, ADM and AFE.
 | |
| 
 | |
| config MSM_ADSP_LOADER
 | |
| 	tristate "ADSP loader support"
 | |
| 	select SND_SOC_MSM_APRV2_INTF
 | |
| 	depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3
 | |
| 	help
 | |
| 	  Enable ADSP image loader.
 | |
| 	  The ADSP loader brings ADSP out of reset
 | |
| 	  for the platforms that use APRv2.
 | |
| 	  Say M if you want to enable this module.
 | |
| 
 | |
| config MSM_MEMORY_DUMP
 | |
| 	bool "MSM Memory Dump Support"
 | |
| 	help
 | |
| 	  This enables memory dump feature. It allows various client
 | |
| 	  subsystems to register respective dump regions. At the time
 | |
| 	  of deadlocks or cpu hangs these dump regions are captured to
 | |
| 	  give a snapshot of the system at the time of the crash.
 | |
| 
 | |
| config MSM_MEMORY_DUMP_V2
 | |
| 	bool "MSM Memory Dump V2 Support"
 | |
| 	help
 | |
| 	  This enables memory dump feature. It allows various client
 | |
| 	  subsystems to register respective dump regions. At the time
 | |
| 	  of deadlocks or cpu hangs these dump regions are captured to
 | |
| 	  give a snapshot of the system at the time of the crash.
 | |
| 
 | |
| config MSM_DEBUG_LAR_UNLOCK
 | |
| 	bool "MSM Debug LAR Unlock Support"
 | |
| 	depends on MSM_MEMORY_DUMP_V2
 | |
| 	help
 | |
| 	 This allows unlocking Core Debug lock to allow capture
 | |
| 	 of upper 32 bits of program counter at the time of
 | |
| 	 system crash. This is useful in getting correct crash
 | |
| 	 location.
 | |
| 
 | |
| config MSM_JTAG
 | |
| 	bool "Debug and ETM trace support across power collapse"
 | |
| 	help
 | |
| 	  Enables support for debugging (specifically breakpoints) and ETM
 | |
| 	  processor tracing across power collapse both for JTag and OS hosted
 | |
| 	  software running on the target. Enabling this will ensure debug
 | |
| 	  and ETM registers are saved and restored across power collapse.
 | |
| 
 | |
| 	  If unsure, say 'N' here to avoid potential power, performance and
 | |
| 	  memory penalty.
 | |
| 
 | |
| config MSM_JTAG_MM
 | |
| 	bool "Debug and ETM trace support across power collapse using memory mapped access"
 | |
| 	help
 | |
| 	  Enables support for debugging (specifically breakpoints) and ETM
 | |
| 	  processor tracing across power collapse both for JTag and OS hosted
 | |
| 	  software running on the target. Enabling this will ensure debug
 | |
| 	  and ETM registers are saved and restored across power collapse.
 | |
| 
 | |
| 	  Required on targets on which cp14 access to debug and ETM registers is
 | |
| 	  not permitted and so memory mapped access is necessary.
 | |
| 
 | |
| 	  If unsure, say 'N' here to avoid potential power, performance and
 | |
| 	  memory penalty.
 | |
| 
 | |
| config MSM_JTAGV8
 | |
| 	bool "Debug and ETM trace support across power collapse for ARMv8"
 | |
| 	help
 | |
| 	  Enables support for debugging (specifically breakpoints) and ETM
 | |
| 	  processor tracing across power collapse both for JTag and OS hosted
 | |
| 	  software running on ARMv8 target. Enabling this will ensure debug
 | |
| 	  and ETM registers are saved and restored across power collapse.
 | |
| 
 | |
| 	  If unsure, say 'N' here to avoid potential power, performance and
 | |
| 	  memory penalty.
 | |
| 
 | |
| config MSM_BOOT_STATS
 | |
| 	bool "Use MSM boot stats reporting"
 | |
| 	help
 | |
| 	 Use this to report msm boot stats such as bootloader throughput,
 | |
| 	 display init, total boot time.
 | |
| 	 This figures are reported in mpm sleep clock cycles and have a
 | |
| 	 resolution of 31 bits as 1 bit is used as an overflow check.
 | |
| 
 | |
| config MSM_CPUSS_DUMP
 | |
| 	bool "CPU Subsystem Dumping support"
 | |
| 	help
 | |
| 	 Add support to dump various hardware entities such as the instruction
 | |
| 	 and data tlb's as well as the unified tlb, which are a part of the
 | |
| 	 cpu subsystem to an allocated buffer. This allows for analysis of the
 | |
| 	 the entities if corruption is suspected.
 | |
| 	 If unsure, say N
 | |
| 
 | |
| config MSM_COMMON_LOG
 | |
| 	bool "MSM Common Log Support"
 | |
| 	help
 | |
| 	 Use this to export symbols of some log address and variables
 | |
| 	 that need to parse crash dump files to a memory dump table. This
 | |
| 	 table can be used by post analysis tools to extract information
 | |
| 	 from memory when device crashes.
 | |
| 
 | |
| config MSM_DDR_HEALTH
 | |
| 	bool "MSM DDR Health Driver"
 | |
| 	default n
 | |
| 	help
 | |
| 	  This option enables a driver which allocates DDR buffer of requested
 | |
| 	  size and sends it's locatoin to RPM sub system. RPM subsystem can
 | |
| 	  make use of this buffer to monitor DDR health.
 | |
| 
 | |
| config MSM_HYP_DEBUG
 | |
| 	bool "MSM Hypervisor Debug Driver"
 | |
| 	help
 | |
| 	  This enables the Hypervisor Debug driver. It allows the mapping and
 | |
| 	  and unmapping of user defined memory range from stage 2. It also
 | |
| 	  supports mapping and unmapping PIL image load memory range from
 | |
| 	  stage 2 depending upon the PIL image state.
 | |
| 
 | |
| config MSM_WATCHDOG_V2
 | |
| 	bool "MSM Watchdog Support"
 | |
| 	help
 | |
| 	  This enables the watchdog module. It causes kernel panic if the
 | |
| 	  watchdog times out. It allows for detection of cpu hangs and
 | |
| 	  deadlocks. It does not run during the bootup process, so it will
 | |
| 	  not catch any early lockups.
 | |
| 
 | |
| config MSM_FORCE_WDOG_BITE_ON_PANIC
 | |
| 	bool "MSM force watchdog bite"
 | |
| 	depends on MSM_WATCHDOG_V2
 | |
| 	help
 | |
| 	  This forces a watchdog bite when the device restarts due to a
 | |
| 	  kernel panic. On certain MSM SoCs, this provides us
 | |
| 	  additional debugging information.
 | |
| 
 | |
| config MSM_CORE_HANG_DETECT
 | |
| 	tristate "MSM Core Hang Detection Support"
 | |
| 	help
 | |
| 	  This enables the core hang detection module. It causes SoC
 | |
| 	  reset on core hang detection and collects the core context
 | |
| 	  for hang.
 | |
| 
 | |
| config MSM_GLADIATOR_HANG_DETECT
 | |
| 	tristate "MSM Gladiator Hang Detection Support"
 | |
| 	help
 | |
| 	  This enables the gladiator hang detection module.
 | |
| 	  If the configured threshold is reached, it causes SoC reset on
 | |
| 	  gladiator hang detection and collects the context for the
 | |
| 	  gladiator hang.
 | |
| 
 | |
| config MSM_CPU_PWR_CTL
 | |
| 	bool "Cpu subsystem power control"
 | |
| 	depends on SMP && (ARM || ARM64)
 | |
| 	default y
 | |
| 	help
 | |
| 	Provides routines to power on cpu rails and l2 cache
 | |
| 	controller during coldboot.
 | |
| 
 | |
| config MSM_CACHE_M4M_ERP64
 | |
|        bool "Cache and M4M error report"
 | |
|        depends on ARCH_MSM8996
 | |
|        help
 | |
|          Say 'Y' here to enable reporting of cache and M4M errors to the kernel
 | |
|          log. The kernel log contains collected error syndrome and address
 | |
|          registers. These register dumps can be used as useful information
 | |
|          to find out possible hardware problems.
 | |
| 
 | |
| config MSM_CACHE_M4M_ERP64_PANIC_ON_CE
 | |
|        bool "Panic on correctable cache/M4M errors"
 | |
|        depends on MSM_CACHE_M4M_ERP64
 | |
|        help
 | |
|          Say 'Y' here to cause kernel panic when correctable cache/M4M errors
 | |
|          are detected.  Enabling this is useful when you want to dump memory
 | |
|          and system state close to the time when the error occured.
 | |
| 
 | |
|           If unsure, say N.
 | |
| 
 | |
| config MSM_CACHE_M4M_ERP64_PANIC_ON_UE
 | |
|        bool "Panic on uncorrectable cache/M4M errors"
 | |
|        depends on MSM_CACHE_M4M_ERP64
 | |
|        help
 | |
|          Say 'Y' here to cause kernel panic when uncorrectable cache/M4M errors
 | |
|          are detected.
 | |
| 
 | |
| config MSM_RPM_SMD
 | |
| 	bool "RPM driver using SMD protocol"
 | |
| 	help
 | |
| 	  RPM is the dedicated hardware engine for managing shared SoC
 | |
| 	  resources. This config adds driver support for using SMD as a
 | |
| 	  transport layer communication with RPM hardware. It also selects
 | |
| 	  the MSM_MPM config that programs the MPM module to monitor interrupts
 | |
| 	  during sleep modes.
 | |
| 
 | |
| config MSM_RPM_RBCPR_STATS_V2_LOG
 | |
| 	tristate "MSM Resource Power Manager RPBCPR Stat Driver"
 | |
| 	depends on DEBUG_FS
 | |
| 	help
 | |
| 	  This option enables v2 of the rpmrbcpr_stats driver which reads RPM
 | |
| 	  memory for statistics pertaining to RPM's RBCPR(Rapid Bridge Core
 | |
| 	  Power Reduction) driver. The drivers outputs the message via a
 | |
| 	  debugfs node.
 | |
| 
 | |
| config MSM_RPM_LOG
 | |
| 	tristate "MSM Resource Power Manager Log Driver"
 | |
| 	depends on DEBUG_FS
 | |
| 	depends on MSM_RPM_SMD
 | |
| 	default n
 | |
| 	help
 | |
|           This option enables a driver which can read from a circular buffer
 | |
|           of messages produced by the RPM. These messages provide diagnostic
 | |
|           information about RPM operation. The driver outputs the messages
 | |
|           via a debugfs node.
 | |
| 
 | |
| config MSM_RPM_STATS_LOG
 | |
|         tristate "MSM Resource Power Manager Stat Driver"
 | |
|         depends on DEBUG_FS
 | |
|         depends on MSM_RPM_SMD
 | |
|         default n
 | |
|           help
 | |
|           This option enables a driver which reads RPM messages from a shared
 | |
|           memory location. These messages provide statistical information about
 | |
|           the low power modes that RPM enters. The drivers outputs the message
 | |
|           via a debugfs node.
 | |
| 
 | |
| config MSM_RUN_QUEUE_STATS
 | |
| 	bool "Enable collection and exporting of MSM Run Queue stats to userspace"
 | |
| 	help
 | |
| 	 This option enables the driver to periodically collecting the statistics
 | |
| 	 of kernel run queue information and calculate the load of the system.
 | |
| 	 This information is exported to usespace via sysfs entries and userspace
 | |
| 	 algorithms uses info and decide when to turn on/off the cpu cores.
 | |
| 
 | |
| config MSM_SCM
 | |
|        bool "Secure Channel Manager (SCM) support"
 | |
|        default n
 | |
| 
 | |
| menuconfig MSM_SCM_XPU
 | |
| 	bool "MSM XPU configuration driver"
 | |
| 	depends on MSM_SCM
 | |
| 
 | |
| if MSM_SCM_XPU
 | |
| 
 | |
| choice
 | |
| 	prompt "XPU Violation Behavior"
 | |
| 	default MSM_XPU_ERR_FATAL
 | |
| 
 | |
| config MSM_XPU_ERR_FATAL
 | |
| 	bool "Configure XPU violations as fatal errors"
 | |
| 	help
 | |
| 	 Select if XPU violations have to be configured as fatal errors.
 | |
| 
 | |
| config MSM_XPU_ERR_NONFATAL
 | |
| 	bool "Configure XPU violations as non-fatal errors"
 | |
| 	help
 | |
| 	 Select if XPU violations have to be configured as non-fatal errors.
 | |
| 
 | |
| endchoice
 | |
| 
 | |
| endif
 | |
| 
 | |
| config MSM_SCM_ERRATA
 | |
| 	depends on DEBUG_FS
 | |
| 	depends on MSM_SCM
 | |
| 	bool "Support for enabling/disabling errata workarounds via debugfs"
 | |
| 	help
 | |
| 	  Exposes a debugfs interface intended for advanced system debugging
 | |
| 	  where it may be desirable to enable or disable certain hardware
 | |
| 	  errata workarounds at runtime.
 | |
| 
 | |
| 	  If unsure, say N.
 | |
| 
 | |
| config MSM_PFE_WA
 | |
| 	depends on HW_PERF_EVENTS
 | |
| 	bool "Enable a H/W PFE WA"
 | |
| 	help
 | |
| 	  Sometimes the PFTLB entries get stuck in the invalid state and new
 | |
| 	  prefetches get dropped. For a workaround, count L1 prefeches dropped
 | |
| 	  due to PFTLB miss and reset H/W PFE when a overflow happens.
 | |
| 
 | |
| 	  If unsure, say N.
 | |
| 
 | |
| config MSM_MPM_OF
 | |
|        bool "Modem Power Manager"
 | |
|        depends on OF
 | |
|        help
 | |
|         MPM is a dedicated hardware resource responsible for entering and
 | |
|         waking up from a system wide low power mode. The MPM driver tracks
 | |
|         the wakeup interrupts and configures the MPM to monitor the wakeup
 | |
|         interrupts when going to a system wide sleep mode. This config option
 | |
|         enables the MPM driver that supports initialization from a device
 | |
|         tree
 | |
| 
 | |
| config MSM_SMEM
 | |
| 	depends on REMOTE_SPINLOCK_MSM
 | |
| 	bool "MSM Shared Memory (SMEM)"
 | |
| 	help
 | |
| 	  Support for the shared memory interface between the various
 | |
| 	  processors in the System on a Chip (SoC) which allows basic
 | |
| 	  inter-processor communication.
 | |
| 
 | |
| config MSM_SMD
 | |
| 	depends on MSM_SMEM
 | |
| 	bool "MSM Shared Memory Driver (SMD)"
 | |
| 	help
 | |
| 	  Support for the shared memory interprocessor communication protocol
 | |
| 	  which provides virual point to point serial channels between processes
 | |
| 	  on the apps processor and processes on other processors in the SoC.
 | |
| 	  Also includes support for the Shared Memory State Machine (SMSM)
 | |
| 	  protocol which provides a mechanism to publish single bit state
 | |
| 	  information to one or more processors in the SoC.
 | |
| 
 | |
| config MSM_SMD_DEBUG
 | |
| 	depends on MSM_SMD
 | |
| 	bool "MSM SMD debug support"
 | |
| 	help
 | |
| 	  Support for debugging SMD and SMSM communication between apps and
 | |
| 	  other processors in the SoC. Debug support primarily consists of
 | |
| 	  logs consisting of information such as what interrupts were processed,
 | |
| 	  what channels caused interrupt activity, and when internal state
 | |
| 	  change events occur.
 | |
| 
 | |
| config MSM_GLINK
 | |
| 	bool "Generic Link (G-Link)"
 | |
| 	help
 | |
| 	  G-Link is a generic link transport that replaces SMD.  It is used
 | |
| 	  within a System-on-Chip (SoC) for communication between both internal
 | |
| 	  processors and external peripherals.  The actual physical transport
 | |
| 	  is handled by transport plug-ins that can be individually enabled and
 | |
| 	  configured separately.
 | |
| 
 | |
| config MSM_GLINK_LOOPBACK_SERVER
 | |
| 	bool "Generic Link (G-Link) Loopback Server"
 | |
| 	help
 | |
| 	  G-Link Loopback Server that enable loopback test framework to test
 | |
| 	  and validate the G-Link protocol stack. It support both local and
 | |
| 	  remote clients to configure the loopback server and echo back the
 | |
| 	  data received from the clients.
 | |
| 
 | |
| config MSM_GLINK_SMD_XPRT
 | |
| 	depends on MSM_SMD
 | |
| 	depends on MSM_GLINK
 | |
| 	bool "Generic Link (G-Link) SMD Transport"
 | |
| 	help
 | |
| 	  G-Link SMD Transport is a G-Link Transport plug-in.  It allows G-Link
 | |
| 	  communication to remote entities through a SMD physical transport
 | |
| 	  channel.  The remote side is assumed to be pure SMD.  The nature of
 | |
| 	  SMD limits this G-Link transport to only connecting with entities
 | |
| 	  internal to the System-on-Chip.
 | |
| 
 | |
| config MSM_GLINK_SMEM_NATIVE_XPRT
 | |
| 	depends on MSM_SMEM
 | |
| 	depends on MSM_GLINK
 | |
| 	bool "Generic Link (G-Link) SMEM Native Transport"
 | |
| 	help
 | |
| 	  G-Link SMEM Native Transport is a G-Link Transport plug-in.  It allows
 | |
| 	  G-Link communication to remote entities through a shared memory
 | |
| 	  physical transport.  The nature of shared memory limits this G-Link
 | |
| 	  transport to only connecting with entities internal to the
 | |
| 	  System-on-Chip.
 | |
| 
 | |
| config MSM_SPCOM
 | |
| 	depends on MSM_GLINK
 | |
| 	bool "Secure Processor Communication over GLINK"
 | |
| 	help
 | |
| 	  spcom driver allows loading Secure Processor Applications and
 | |
| 	  sending messages to Secure Processor Applications.
 | |
| 	  spcom provides interface to both user space app and kernel driver.
 | |
| 	  It is using glink as the transport layer, which provides multiple
 | |
| 	  logical channels over signle physical channel.
 | |
| 	  The physical layer is based on shared memory and interrupts.
 | |
| 	  spcom provides clients/server API, although currently only one client
 | |
| 	  or server is allowed per logical channel.
 | |
| 
 | |
| config MSM_SMEM_LOGGING
 | |
| 	depends on MSM_SMEM
 | |
| 	bool "MSM Shared Memory Logger"
 | |
| 	help
 | |
| 	  Enable the shared memory logging to log the events between
 | |
| 	  the various processors in the system. This option exposes
 | |
| 	  the shared memory logger at /dev/smem_log and a debugfs node
 | |
| 	  named smem_log.
 | |
| 
 | |
| config MSM_SMP2P
 | |
| 	bool "SMSM Point-to-Point (SMP2P)"
 | |
| 	depends on MSM_SMEM
 | |
| 	help
 | |
| 	  Provide point-to-point remote signaling support.
 | |
| 	  SMP2P enables transferring 32-bit values between
 | |
| 	  the local and a remote system using shared
 | |
| 	  memory and interrupts. A client can open multiple
 | |
| 	  32-bit values by specifying a unique string and
 | |
| 	  remote processor ID.
 | |
| 
 | |
| config MSM_SMP2P_TEST
 | |
| 	bool "SMSM Point-to-Point Test"
 | |
| 	depends on MSM_SMP2P
 | |
| 	help
 | |
| 	  Enables loopback and unit testing support for
 | |
| 	  SMP2P. Loopback support is used by other
 | |
| 	  processors to do unit testing. Unit tests
 | |
| 	  are used to verify the local and remote
 | |
| 	  implementations.
 | |
| 
 | |
| config MSM_SPM
 | |
| 	bool "Driver support for SPM Version 2"
 | |
| 	help
 | |
| 	  Enables the support for Version 2 of the SPM driver. SPM hardware is
 | |
| 	  used to manage the processor power during sleep. The driver allows
 | |
| 	  configuring SPM to allow different low power modes for both core and
 | |
| 	  L2.
 | |
| 
 | |
| config MSM_L2_SPM
 | |
| 	bool "SPM support for L2 cache"
 | |
| 	help
 | |
| 	  Enable SPM driver support for L2 cache. Some MSM chipsets allow
 | |
| 	  control of L2 cache low power mode with a Subsystem Power manager.
 | |
| 	  Enabling this driver allows configuring L2 SPM for low power modes
 | |
| 	  on supported chipsets
 | |
| 
 | |
| config MSM_QMI_INTERFACE
 | |
| 	depends on IPC_ROUTER
 | |
| 	depends on QMI_ENCDEC
 | |
| 	bool "MSM QMI Interface Library"
 | |
| 	help
 | |
| 	  Library to send and receive QMI messages over IPC Router.
 | |
| 	  This library provides interface functions to the kernel drivers
 | |
| 	  to perform QMI message marshaling and transport them over IPC
 | |
| 	  Router.
 | |
| 
 | |
| config MSM_DCC
 | |
| 	bool "MSM Data Capture and Compare enigne support"
 | |
| 	help
 | |
| 	  This option enables driver for Data Capture and Compare engine. DCC
 | |
| 	  driver provides interface to configure DCC block and read back
 | |
| 	  captured data from DCC's internal SRAM.
 | |
| 
 | |
| config MSM_HVC
 | |
| 	bool "MSM Hypervisor Call Support"
 | |
| 	help
 | |
| 	  This enables the Hypervisor Call module. It provides apis to call
 | |
| 	  into the hypervisor thereby allowing access to services exposed by
 | |
| 	  the hypervisor. It is primarily intended to be used for Silicon
 | |
| 	  Partner/Manufacturer function identifier subrange but supports other
 | |
| 	  service call subranges as well.
 | |
| 
 | |
| config MSM_IPC_ROUTER_SMD_XPRT
 | |
| 	depends on MSM_SMD
 | |
| 	depends on IPC_ROUTER
 | |
| 	bool "MSM SMD XPRT Layer"
 | |
| 	help
 | |
| 	  SMD Transport Layer that enables IPC Router communication within
 | |
| 	  a System-on-Chip(SoC). When the SMD channels become available,
 | |
| 	  this layer registers a transport with IPC Router and enable
 | |
| 	  message exchange.
 | |
| 
 | |
| config MSM_EVENT_TIMER
 | |
| 	bool "Event timer"
 | |
| 	help
 | |
| 	  This option enables a modules that manages a list of event timers that
 | |
| 	  need to be monitored by the PM. The enables the PM code to monitor
 | |
| 	  events that require the core to be awake and ready to handle the
 | |
| 	  event.
 | |
| 
 | |
| config MSM_IPC_ROUTER_HSIC_XPRT
 | |
| 	depends on USB_QCOM_IPC_BRIDGE
 | |
| 	depends on IPC_ROUTER
 | |
| 	bool "MSM HSIC XPRT Layer"
 | |
| 	help
 | |
| 	  HSIC Transport Layer that enables off-chip communication of
 | |
| 	  IPC Router. When the HSIC endpoint becomes available, this layer
 | |
| 	  registers the transport with IPC Router and enable message
 | |
| 	  exchange.
 | |
| 
 | |
| config MSM_SYSMON_GLINK_COMM
 | |
| 	bool "MSM System Monitor communication support using GLINK transport"
 | |
| 	depends on MSM_GLINK && MSM_SUBSYSTEM_RESTART
 | |
| 	help
 | |
| 	  This option adds support for MSM System Monitor APIs using the GLINK
 | |
| 	  transport layer. The APIs provided may be used for notifying
 | |
| 	  subsystems within the SoC about other subsystems' power-up/down
 | |
| 	  state-changes.
 | |
| 
 | |
| config MSM_IPC_ROUTER_GLINK_XPRT
 | |
| 	depends on MSM_GLINK
 | |
| 	depends on IPC_ROUTER
 | |
| 	bool "MSM GLINK XPRT Layer"
 | |
| 	help
 | |
| 	  GLINK Transport Layer that enables IPC Router communication within
 | |
| 	  a System-on-Chip(SoC). When the GLINK channels become available,
 | |
| 	  this layer registers a transport with IPC Router and enable
 | |
| 	  message exchange.
 | |
| 
 | |
| config MSM_SYSTEM_HEALTH_MONITOR
 | |
| 	bool "System Health Monitor"
 | |
| 	depends on MSM_QMI_INTERFACE && MSM_SUBSYSTEM_RESTART
 | |
| 	help
 | |
| 	  System Health Monitor (SHM) passively monitors the health of the
 | |
| 	  peripherals connected to the application processor. Software
 | |
| 	  components in the application processor that experience
 | |
| 	  communication failure can request the SHM to perform a system-wide
 | |
| 	  health check. If any failures are detected during the health-check,
 | |
| 	  then a subsystem restart will be triggered for the failed subsystem.
 | |
| 
 | |
| config MSM_GLINK_PKT
 | |
| 	bool "Enable device interface for GLINK packet channels"
 | |
| 	depends on MSM_GLINK
 | |
| 	help
 | |
| 	  G-link packet driver provides the interface for the userspace
 | |
| 	  clients to communicate over G-Link via deivce nodes.
 | |
| 	  This enable the usersapce clients to read and write to
 | |
| 	  some glink packets channel.
 | |
| 
 | |
| config MSM_TZ_SMMU
 | |
| 	bool "Helper functions for SMMU configuration through TZ"
 | |
| 	depends on ARCH_MSMTHULIUM
 | |
| 	help
 | |
| 	  Say 'Y' here for targets that need to call into TZ to configure
 | |
| 	  SMMUs for any reason (for example, for errata workarounds or
 | |
| 	  configuration of SMMU virtualization).
 | |
| 
 | |
| 	  If unsure, say N.
 | |
| 
 | |
| config MSM_SUBSYSTEM_RESTART
 | |
| 	bool "MSM Subsystem Restart"
 | |
| 	help
 | |
| 	  This option enables the MSM subsystem restart framework.
 | |
| 
 | |
| 	  The MSM subsystem restart framework provides support to boot,
 | |
| 	  shutdown, and restart subsystems with a reference counted API.
 | |
| 	  It also notifies userspace of transitions between these states via
 | |
| 	  sysfs.
 | |
| 
 | |
| config MSM_PIL
 | |
| 	bool "Peripheral image loading"
 | |
| 	select FW_LOADER
 | |
| 	default n
 | |
| 	help
 | |
| 	  Some peripherals need to be loaded into memory before they can be
 | |
| 	  brought out of reset.
 | |
| 
 | |
| 	  Say yes to support these devices.
 | |
| 
 | |
| config MSM_PIL_SSR_GENERIC
 | |
| 	tristate "MSM Subsystem Boot Support"
 | |
| 	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
 | |
| 	help
 | |
| 	  Support for booting and shutting down MSM Subsystem processors.
 | |
| 	  This driver also monitors the SMSM status bits and the watchdog
 | |
| 	  interrupt for the subsystem and restarts it on a watchdog bite
 | |
| 	  or a fatal error. Subsystems include LPASS, Venus, VPU, WCNSS and
 | |
| 	  BCSS.
 | |
| 
 | |
| config MSM_PIL_MSS_QDSP6V5
 | |
| 	tristate "MSS QDSP6v5 (Hexagon) Boot Support"
 | |
| 	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
 | |
| 	help
 | |
| 	  Support for booting and shutting down QDSP6v5 (Hexagon) processors
 | |
| 	  in modem subsystems. If you would like to make or receive phone
 | |
| 	  calls then say Y here.
 | |
| 
 | |
| 	  If unsure, say N.
 | |
| 
 | |
| config MSM_SHARED_HEAP_ACCESS
 | |
| 	bool "Shared Heap access"
 | |
| 	help
 | |
| 	 Enable support to provide access to clients to certain HLOS regions
 | |
| 	 which are protected by the secure environment.
 | |
| 
 | |
| config TRACER_PKT
 | |
| 	bool "Tracer Packet"
 | |
| 	help
 | |
| 	  Tracer Packet helps in profiling the performance of inter-
 | |
| 	  processor communication protocols. The profiling information
 | |
| 	  can be logged into the tracer packet itself.
 | |
| 
 | |
| config MSM_SECURE_BUFFER
 | |
| 	bool "Helper functions for securing buffers through TZ"
 | |
| 	help
 | |
| 	 Say 'Y' here for targets that need to call into TZ to secure
 | |
| 	 memory buffers. This ensures that only the correct clients can
 | |
| 	 use this memory and no unauthorized access is made to the
 | |
| 	 buffer
 | |
| 
 | |
| config ICNSS
 | |
| 	tristate "Platform driver for Q6 integrated connectivity"
 | |
| 	---help---
 | |
| 	  This module adds support for Q6 integrated WLAN connectivity
 | |
| 	  subsystem. This module is responsible for communicating WLAN on/off
 | |
| 	  control messages to FW over QMI channel. It is also responsible for
 | |
| 	  handling WLAN PD restart notifications.
 | |
| 
 | |
| config MSM_CORE_CTL_HELPER
 | |
| 	tristate "Core control helper functions for dynamically hotplug CPUs"
 | |
| 	help
 | |
| 	  Provide helper functions for core control driver. Core control
 | |
| 	  driver dynamically hotplugs CPUs from kernel based on current
 | |
| 	  system load and state. It also supports limiting min and
 | |
| 	  max online CPUs from userspace.
 | |
| 
 | |
| config MSM_BAM_DMUX
 | |
| 	bool "BAM Data Mux Driver"
 | |
| 	depends on SPS
 | |
| 	help
 | |
| 	  Support Muxed Data Channels over BAM interface.
 | |
| 	  BAM has a limited number of pipes.  This driver
 | |
| 	  provides a means to support more logical channels
 | |
| 	  via muxing than BAM could without muxing.
 | |
| 
 | |
| config MSM_PERFORMANCE
 | |
| 	tristate "Core control driver to support userspace hotplug requests"
 | |
| 	help
 | |
| 	  This driver is used to provide CPU hotplug support to userspace.
 | |
| 	  It ensures that no more than a user specified number of CPUs stay
 | |
| 	  online at any given point in time.
 | |
| 
 | |
| config MSM_PERFORMANCE_HOTPLUG_ON
 | |
| 	bool "Hotplug functionality through msm_performance turned on"
 | |
| 	depends on MSM_PERFORMANCE
 | |
| 	default y
 | |
| 	help
 | |
| 	  If some other core-control driver is present turn off the core-control
 | |
| 	  capability of msm_performance driver. Setting this flag to false will
 | |
| 	  compile out the nodes needed for core-control functionality through
 | |
| 	  msm_performance.
 | |
| 
 | |
| config MSM_SERVICE_LOCATOR
 | |
| 	bool "Service Locator"
 | |
| 	depends on MSM_QMI_INTERFACE
 | |
| 	help
 | |
| 	  The Service Locator provides a library to retrieve location
 | |
| 	  information given a service identifier. Location here translates
 | |
| 	  to what process domain exports the service, and which subsystem
 | |
| 	  that process domain will execute in.
 | |
| 
 | |
| config MSM_SERVICE_NOTIFIER
 | |
| 	bool "Service Notifier"
 | |
| 	depends on MSM_SERVICE_LOCATOR && MSM_SUBSYSTEM_RESTART
 | |
| 	help
 | |
| 	  The Service Notifier provides a library for a kernel client to
 | |
| 	  register for state change notifications regarding a remote service.
 | |
| 	  A remote service here refers to a process providing certain services
 | |
| 	  like audio, the identifier for which is provided by the service
 | |
| 	  locator.
 | |
| 
 | |
| config MSM_QBT1000
 | |
| 	bool "QBT1000 Ultrasonic Fingerprint Sensor"
 | |
| 	help
 | |
| 	  This driver is used to enable clocks and marshal buffers for trusted
 | |
| 	  applications running in the trusted execution environment.
 | |
| 
 | |
| config MSM_PACMAN
 | |
| 	tristate "Enable the Peripheral Access Control Manager (PACMan)"
 | |
| 	help
 | |
| 	  Add support for the Peripheral Access Control Manager (PACMan). This
 | |
| 	  driver allows reconfiguration of the Bus Access Manager Low Speed
 | |
| 	  peripheral (BLSP) ownership.
 | |
| 
 | |
| config MSM_KERNEL_PROTECT
 | |
| 	bool "Protect kernel text by removing write permissions in stage-2"
 | |
|         depends on !FUNCTION_TRACER
 | |
|         help
 | |
|           On hypervisor-enabled targets, this option will make a call into
 | |
|           the hypervisor to request that the kernel text be remapped
 | |
|           without write permissions.  This protects against malicious
 | |
|           devices rewriting kernel code.
 | |
| 
 | |
|           Note that this will BREAK any runtime patching of the kernel text
 | |
|           (i.e. anything that uses apply_alternatives,
 | |
|           aarch64_insn_patch_text_nosync, etc. including the various CPU
 | |
|           errata workarounds in arch/arm64/kernel/cpu_errata.c).
 | |
| 
 | |
| config MSM_KERNEL_PROTECT_TEST
 | |
| 	bool "Bootup test of kernel protection (INTENTIONAL CRASH)"
 | |
|         depends on MSM_KERNEL_PROTECT
 | |
|         help
 | |
|           Attempts to write to the kernel text after making the kernel text
 | |
|           read-only.  This test is FATAL whether it passes or fails!
 | |
|           Success is signaled by a stage-2 fault.
 | |
| 
 | |
| source "drivers/soc/qcom/memshare/Kconfig"
 | |
| 
 | |
| endif # ARCH_MSM
 | 
