| # When adding new entries keep the list in alphabetical order |
| |
| 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_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_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_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_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_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_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_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_IPC_ROUTER_MHI_XPRT |
| depends on MSM_MHI |
| depends on IPC_ROUTER |
| bool "MSM MHI XPRT Layer" |
| help |
| MHI Transport Layer that enables off-chip communication of |
| IPC Router. When the MHI endpoint becomes available, this layer |
| registers the transport with IPC Router and enable message |
| exchange. |
| |
| 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_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_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_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_RPM_SMD |
| select MSM_MPM_OF |
| 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" |
| default n |
| 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_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_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" |
| depends on MSM_SPM |
| 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_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_QDSP6_APRV3 |
| bool "Audio QDSP6 APRv3 support" |
| depends on MSM_SMD |
| help |
| Enable APRv2 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_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_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_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_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_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_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_SYSMON_COMM |
| bool "MSM System Monitor communication support" |
| depends on MSM_SMD && MSM_SUBSYSTEM_RESTART |
| help |
| This option adds support for MSM System Monitor library, which |
| provides an API that may be used for notifying subsystems within |
| the SoC about other subsystems' power-up/down state-changes. |
| |
| 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_PIL_FEMTO |
| tristate "FSM9900 and FSM9010 Boot Support" |
| depends on MSM_PIL && (ARCH_FSM9900 || ARCH_FSM9010) |
| help |
| Support for loading and booting firmware images for multiple |
| modems on the FSM9900 and FSM9010 family targets. |
| Select Y if you want the modems to boot. |
| If unsure, select N. |
| |
| config MSM_OCMEM |
| bool "MSM On-Chip memory driver (OCMEM)" |
| help |
| Enable support for On-Chip Memory available on certain MSM chipsets. |
| OCMEM is a low latency, high performance pool shared by subsystems. |
| |
| config MSM_OCMEM_LOCAL_POWER_CTRL |
| bool "OCMEM Local Power Control" |
| depends on MSM_OCMEM |
| help |
| Enable direct power management of the OCMEM core by the |
| OCMEM driver. By default power management is delegated to |
| the RPM. Selecting this option causes the OCMEM driver to |
| directly handle the various macro power transitions. |
| |
| config MSM_OCMEM_DEBUG |
| bool "OCMEM Debug Support" |
| depends on MSM_OCMEM |
| help |
| Enable debug options for On-chip Memory (OCMEM) driver. |
| Various debug options include memory, power and latency. |
| Choosing one of these options allows debugging of each |
| individual subsystem separately. |
| |
| config MSM_OCMEM_NONSECURE |
| bool "OCMEM Non Secure Mode" |
| depends on MSM_OCMEM_DEBUG |
| help |
| Disable OCMEM interaction with secure processor. |
| By default OCMEM is secured and accesses for each master |
| is requested by the OCMEM driver. Selecting this option |
| causes the OCMEM memory to be in non-secure state unless |
| its locked down by the secure processor. |
| |
| config MSM_OCMEM_POWER_DEBUG |
| bool "OCMEM Power Debug Support" |
| depends on MSM_OCMEM_DEBUG |
| help |
| Enable debug support for OCMEM power management. |
| This adds support for verifying all power management |
| related operations of OCMEM. Both local power management |
| and RPM assisted power management operations are supported. |
| |
| config MSM_OCMEM_DEBUG_ALWAYS_ON |
| bool "Keep OCMEM always turned ON" |
| depends on MSM_OCMEM_DEBUG |
| help |
| Always vote for all OCMEM clocks and keep all OCMEM |
| macros turned ON and never allow them to be turned OFF. |
| Both local power management and RPM assisted power modes |
| are supported for individual macro power control operations. |
| |
| config MSM_OCMEM_POWER_DISABLE |
| bool "OCMEM Disable Power Control" |
| depends on MSM_OCMEM |
| help |
| Disable all OCMEM power management. |
| Skip all OCMEM power operations that turn ON or |
| turn OFF the macros. Both local power management and |
| RPM assisted power management operations are skipped. |
| Enable this configuration if OCMEM is being exclusively |
| used as GMEM or OCIMEM. |
| |
| 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_SCM |
| bool "Secure Channel Manager (SCM) support" |
| default n |
| |
| config MAXIMUM_CURRENT_THROTTLING |
| tristate "CPU current throttling driver" |
| help |
| Say Y to enable maximum current throttling. |
| The maximum current throttling driver enables application to |
| turn on/off CPU based current throttling by setting the |
| credit/upper limit in the CPU registers. |
| |
| 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_XPU_ERR_FATAL |
| bool "Configure XPU violations as fatal errors" |
| help |
| Select if XPU violations have to be configured as fatal errors. |
| |
| config MSM_CACHE_DUMP |
| bool "Cache dumping support" |
| help |
| Add infrastructure to dump the L1 and L2 caches to an allocated buffer. |
| This allows for analysis of the caches in case cache corruption is |
| suspected. |
| If unsure, say N |
| |
| config MSM_CACHE_DUMP_ON_PANIC |
| bool "Dump caches on panic" |
| depends on MSM_CACHE_DUMP |
| help |
| By default, the caches are flushed on panic. This means that trying to |
| look at them in a RAM dump will give useless data. Select this if you |
| want to dump the L1 and L2 caches on panic before any flush occurs. |
| If unsure, say N |
| |
| 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_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 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 QCOM_EARLY_RANDOM |
| bool "Initialize random pool very early" |
| help |
| The standard random pool may not initialize until late in the boot |
| process which means that any calls to get random numbers before then |
| may not be truly random. Select this option to make an early call |
| to get some random data to put in the pool. If unsure, say N. |
| |
| config MSM_PACMAN |
| bool "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_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_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 QCOM_NPA_DUMP |
| bool "Read NPA dump from the RPM memory" |
| depends on DEBUG_FS |
| help |
| Read the NPA dump from RPM memory through debugfs. |
| |
| config KERNEL_TEXT_MPU_PROT |
| bool "Enable xpu protection of kernel r/o sections" |
| help |
| Enables xpu protection of kernel code and read-only data |
| sections early in boot. Read access is permitted to |
| all masters; Write access is only permited to the |
| secure world. |
| |
| source "drivers/soc/qcom/memshare/Kconfig" |
| |
| endif # ARCH_MSM |