# # 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