SMCInvoke driver is a misc driver to support communication between secure and non-secure world, based on new capability based model. Earlier, QSEECom driver had several problems such as exposing many interfaces to accomplish various tasks on secure world side. Ideally, driver should work as transparent as possible and provide just tunnel to communicate between secure and non secure world. SMCInvoke driver aims to achieve that. Change-Id: I439f8ad817ba66210c934115979c276577194c11 Signed-off-by: Dinesh K Garg <dineshg@codeaurora.org>
779 lines
27 KiB
Text
779 lines
27 KiB
Text
#
|
|
# QCOM Soc drivers
|
|
#
|
|
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_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 QCOM_COMMON_LOG
|
|
bool "QCOM 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_SMEM
|
|
depends on ARCH_QCOM
|
|
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 QPNP_HAPTIC
|
|
tristate "Haptic support for QPNP PMIC"
|
|
depends on ARCH_QCOM
|
|
help
|
|
This option enables device driver support for the Haptic
|
|
on the Qualcomm Technologies' QPNP PMICs. It uses the android
|
|
timed-output framework.
|
|
|
|
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_GLINK_SPI_XPRT
|
|
depends on MSM_GLINK
|
|
tristate "Generic Link (G-Link) SPI Transport"
|
|
help
|
|
G-Link SPI Transport is a Transport plug-in developed over SPI
|
|
bus. This transport plug-in performs marshaling of G-Link
|
|
commands & data to the appropriate SPI bus wire format and
|
|
allows for G-Link communication with remote subsystems that are
|
|
external 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_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_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 QCOM_BUS_SCALING
|
|
bool "Bus scaling driver"
|
|
help
|
|
This option enables bus scaling on MSM devices. Bus scaling
|
|
allows devices to request the clocks be set to rates sufficient
|
|
for the active devices needs without keeping the clocks at max
|
|
frequency when a slower speed is sufficient.
|
|
|
|
config QCOM_GSBI
|
|
tristate "QCOM General Serial Bus Interface"
|
|
depends on ARCH_QCOM
|
|
select MFD_SYSCON
|
|
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.
|
|
|
|
config QCOM_PM
|
|
bool "Qualcomm Power Management"
|
|
depends on ARCH_QCOM && !ARM64
|
|
select QCOM_SCM
|
|
help
|
|
QCOM Platform specific power driver to manage cores and L2 low power
|
|
modes. It interface with various system drivers to put the cores in
|
|
low power modes.
|
|
|
|
config QCOM_SMEM
|
|
tristate "Qualcomm Shared Memory Manager (SMEM)"
|
|
depends on ARCH_QCOM
|
|
depends on HWSPINLOCK
|
|
help
|
|
Say y here to enable support for the Qualcomm Shared Memory Manager.
|
|
The driver provides an interface to items in a heap shared among all
|
|
processors in a Qualcomm platform.
|
|
|
|
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_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 QCOM_DCC
|
|
bool "QCOM 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_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_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_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_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_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 QCOM_SMD
|
|
tristate "Qualcomm Shared Memory Driver (SMD)"
|
|
depends on QCOM_SMEM
|
|
help
|
|
Say y here to enable support for the Qualcomm Shared Memory Driver
|
|
providing communication channels to remote processors in Qualcomm
|
|
platforms.
|
|
|
|
config QCOM_SMD_RPM
|
|
tristate "Qualcomm Resource Power Manager (RPM) over SMD"
|
|
depends on QCOM_SMD && OF
|
|
help
|
|
If you say yes to this option, support will be included for the
|
|
Resource Power Manager system found in the Qualcomm 8974 based
|
|
devices.
|
|
|
|
This is required to access many regulators, clocks and bus
|
|
frequencies controlled by the RPM on these devices.
|
|
|
|
Say M here if you want to include support for the Qualcomm RPM as a
|
|
module. This will build a module called "qcom-smd-rpm".
|
|
|
|
config MSM_SPM
|
|
bool "Driver support for SPM and AVS wrapper hardware"
|
|
help
|
|
Enables the support SAW and AVS wrapper hardware on MSMs 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 QCOM_SCM
|
|
bool "Secure Channel Manager (SCM) support"
|
|
default n
|
|
|
|
menuconfig QCOM_SCM_XPU
|
|
bool "Qualcomm XPU configuration driver"
|
|
depends on QCOM_SCM
|
|
|
|
if QCOM_SCM_XPU
|
|
|
|
choice
|
|
prompt "XPU Violation Behavior"
|
|
default QCOM_XPU_ERR_FATAL
|
|
|
|
config QCOM_XPU_ERR_FATAL
|
|
bool "Configure XPU violations as fatal errors"
|
|
help
|
|
Select if XPU violations have to be configured as fatal errors.
|
|
|
|
config QCOM_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 QCOM_SCM_ERRATA
|
|
depends on DEBUG_FS
|
|
depends on QCOM_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.
|
|
|
|
if ARCH_QCOM
|
|
|
|
config QCOM_WATCHDOG_V2
|
|
bool "Qualcomm 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 QCOM_IRQ_HELPER
|
|
bool "QCOM Irq Helper"
|
|
help
|
|
This enables the irq helper module. It exposes two APIs
|
|
int irq_blacklist_on(void) and int irq_blacklist_off(void)
|
|
to other kernel module.
|
|
These two apis will be used to control the black list used
|
|
by the irq balancer.
|
|
|
|
config QCOM_MEMORY_DUMP
|
|
bool "Qualcomm 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 QCOM_MEMORY_DUMP_V2
|
|
bool "QCOM 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 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_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 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_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 MSM_GLADIATOR_ERP_V2
|
|
tristate "GLADIATOR coherency interconnect error reporting driver v2"
|
|
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_V2
|
|
depends on MSM_GLADIATOR_ERP_V2
|
|
bool "Panic on GLADIATOR error report v2"
|
|
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_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_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_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_JTAGV8
|
|
bool "Debug and ETM trace support across power collapse for ARMv8"
|
|
default y if CORESIGHT_SOURCE_ETM4X
|
|
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 QCOM_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_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 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_QDSP6_APRV2_GLINK
|
|
bool "Audio QDSP6 APRv2 over Glink support"
|
|
depends on MSM_GLINK
|
|
help
|
|
Enable APRv2 IPC protocol support over
|
|
Glink between application processor and
|
|
QDSP6. APR is used by audio driver to
|
|
configure QDSP6's ASM, ADM and AFE.
|
|
|
|
config MSM_QDSP6_APRV3_GLINK
|
|
bool "Audio QDSP6 APRv3 over Glink support"
|
|
depends on MSM_GLINK
|
|
help
|
|
Enable APRv3 IPC protocol support over
|
|
Glink 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 || \
|
|
MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
|
|
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_PERFORMANCE
|
|
tristate "msm_performance driver to support perflock request"
|
|
help
|
|
This driver is used to set minfreq/maxfreq for CPUs from userspace via
|
|
perflock. It also add 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. It also provides CPU/IO intensive workload
|
|
detection for userspace.
|
|
|
|
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.
|
|
|
|
endif # ARCH_QCOM
|
|
|
|
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 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 QCOM_FORCE_WDOG_BITE_ON_PANIC
|
|
bool "QCOM force watchdog bite"
|
|
depends on QCOM_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_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_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_AVTIMER
|
|
tristate "Avtimer Driver"
|
|
depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || MSM_QDSP6_APRV2_GLINK
|
|
help
|
|
This driver gets the Q6 out of power collapsed state and
|
|
exposes ioctl control to read avtimer tick.
|
|
|
|
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.
|
|
|
|
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 QCOM_REMOTEQDSS
|
|
bool "Allow debug tools to enable events on other processors"
|
|
depends on QCOM_SCM && DEBUG_FS
|
|
help
|
|
Other onchip processors/execution environments may support debug
|
|
events. Provide a sysfs interface for debug tools to dynamically
|
|
enable/disable these events. Interface located in
|
|
/sys/class/remoteqdss.
|
|
|
|
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_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 QSEE_IPC_IRQ_BRIDGE
|
|
tristate "QSEE IPC Interrupt Bridge"
|
|
help
|
|
This module enables bridging an Inter-Processor Communication(IPC)
|
|
interrupt from a remote subsystem directed towards Qualcomm
|
|
Technologies, Inc. Secure Execution Environment(QSEE).
|
|
|
|
config WCD_DSP_GLINK
|
|
tristate "WCD DSP GLINK Driver"
|
|
depends on MSM_GLINK
|
|
default y if SND_SOC_WCD934X=y
|
|
help
|
|
This option enables driver which provides communication interface
|
|
between MSM and WCD DSP over glink transport protocol. This driver
|
|
provides read and write interface via char device.
|
|
|
|
config QCOM_SMCINVOKE
|
|
bool "Secure QSEE Support"
|
|
help
|
|
Enable SMCInvoke driver which supports capability based secure
|
|
communication between QSEE and HLOS.
|
|
|
|
source "drivers/soc/qcom/memshare/Kconfig"
|