485 lines
16 KiB
Text
485 lines
16 KiB
Text
# SPDX-License-Identifier: GPL-2.0-only
|
|
menu "Remoteproc drivers"
|
|
|
|
config REMOTEPROC
|
|
bool "Support for Remote Processor subsystem"
|
|
depends on HAS_DMA
|
|
select CRC32
|
|
select FW_LOADER
|
|
select VIRTIO
|
|
select WANT_DEV_COREDUMP
|
|
help
|
|
Support for remote processors (such as DSP coprocessors). These
|
|
are mainly used on embedded systems.
|
|
|
|
if REMOTEPROC
|
|
|
|
config REMOTEPROC_CDEV
|
|
bool "Remoteproc character device interface"
|
|
help
|
|
Say y here to have a character device interface for the remoteproc
|
|
framework. Userspace can boot/shutdown remote processors through
|
|
this interface.
|
|
|
|
It's safe to say N if you don't want to use this interface.
|
|
|
|
config IMX_REMOTEPROC
|
|
tristate "i.MX remoteproc support"
|
|
depends on ARCH_MXC
|
|
depends on HAVE_ARM_SMCCC
|
|
select MAILBOX
|
|
help
|
|
Say y here to support iMX's remote processors via the remote
|
|
processor framework.
|
|
|
|
It's safe to say N here.
|
|
|
|
config INGENIC_VPU_RPROC
|
|
tristate "Ingenic JZ47xx VPU remoteproc support"
|
|
depends on MIPS || COMPILE_TEST
|
|
help
|
|
Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic.
|
|
|
|
This can be either built-in or a loadable module.
|
|
If unsure say N.
|
|
|
|
config MTK_SCP
|
|
tristate "Mediatek SCP support"
|
|
depends on ARCH_MEDIATEK || COMPILE_TEST
|
|
select RPMSG_MTK_SCP
|
|
help
|
|
Say y here to support Mediatek's System Companion Processor (SCP) via
|
|
the remote processor framework.
|
|
|
|
It's safe to say N here.
|
|
|
|
config OMAP_REMOTEPROC
|
|
tristate "OMAP remoteproc support"
|
|
depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX
|
|
depends on OMAP_IOMMU
|
|
select MAILBOX
|
|
select OMAP2PLUS_MBOX
|
|
help
|
|
Say y here to support OMAP's remote processors (dual M3
|
|
and DSP on OMAP4) via the remote processor framework.
|
|
|
|
Currently only supported on OMAP4.
|
|
|
|
Usually you want to say Y here, in order to enable multimedia
|
|
use-cases to run on your platform (multimedia codecs are
|
|
offloaded to remote DSP processors using this framework).
|
|
|
|
It's safe to say N here if you're not interested in multimedia
|
|
offloading or just want a bare minimum kernel.
|
|
|
|
config OMAP_REMOTEPROC_WATCHDOG
|
|
bool "OMAP remoteproc watchdog timer"
|
|
depends on OMAP_REMOTEPROC
|
|
default n
|
|
help
|
|
Say Y here to enable watchdog timer for remote processors.
|
|
|
|
This option controls the watchdog functionality for the remote
|
|
processors in OMAP. Dedicated OMAP DMTimers are used by the remote
|
|
processors and triggers the timer interrupt upon a watchdog
|
|
detection.
|
|
|
|
config WKUP_M3_RPROC
|
|
tristate "AMx3xx Wakeup M3 remoteproc support"
|
|
depends on SOC_AM33XX || SOC_AM43XX
|
|
help
|
|
Say y here to support Wakeup M3 remote processor on TI AM33xx
|
|
and AM43xx family of SoCs.
|
|
|
|
Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed
|
|
for deep CPUIdle states on AM33xx SoCs. Allows for loading of the
|
|
firmware onto these remote processors.
|
|
If unsure say N.
|
|
|
|
config DA8XX_REMOTEPROC
|
|
tristate "DA8xx/OMAP-L13x remoteproc support"
|
|
depends on ARCH_DAVINCI_DA8XX
|
|
depends on DMA_CMA
|
|
help
|
|
Say y here to support DA8xx/OMAP-L13x remote processors via the
|
|
remote processor framework.
|
|
|
|
You want to say y here in order to enable AMP
|
|
use-cases to run on your platform (multimedia codecs are
|
|
offloaded to remote DSP processors using this framework).
|
|
|
|
This module controls the name of the firmware file that gets
|
|
loaded on the DSP. This file must reside in the /lib/firmware
|
|
directory. It can be specified via the module parameter
|
|
da8xx_fw_name=<filename>, and if not specified will default to
|
|
"rproc-dsp-fw".
|
|
|
|
It's safe to say n here if you're not interested in multimedia
|
|
offloading.
|
|
|
|
config KEYSTONE_REMOTEPROC
|
|
tristate "Keystone Remoteproc support"
|
|
depends on ARCH_KEYSTONE
|
|
help
|
|
Say Y here here to support Keystone remote processors (DSP)
|
|
via the remote processor framework.
|
|
|
|
It's safe to say N here if you're not interested in the Keystone
|
|
DSPs or just want to use a bare minimum kernel.
|
|
|
|
config PRU_REMOTEPROC
|
|
tristate "TI PRU remoteproc support"
|
|
depends on TI_PRUSS
|
|
default TI_PRUSS
|
|
help
|
|
Support for TI PRU remote processors present within a PRU-ICSS
|
|
subsystem via the remote processor framework.
|
|
|
|
Say Y or M here to support the Programmable Realtime Unit (PRU)
|
|
processors on various TI SoCs. It's safe to say N here if you're
|
|
not interested in the PRU or if you are unsure.
|
|
|
|
config QCOM_PIL_INFO
|
|
tristate
|
|
|
|
config QCOM_RPROC_COMMON
|
|
tristate
|
|
|
|
config QCOM_Q6V5_COMMON
|
|
tristate
|
|
depends on ARCH_QCOM
|
|
depends on QCOM_SMEM
|
|
|
|
config QCOM_Q6V5_ADSP
|
|
tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader"
|
|
depends on OF && ARCH_QCOM
|
|
depends on QCOM_SMEM
|
|
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
|
|
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
|
|
depends on QCOM_SYSMON || QCOM_SYSMON=n
|
|
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
|
|
select MFD_SYSCON
|
|
select QCOM_PIL_INFO
|
|
select QCOM_MDT_LOADER
|
|
select QCOM_Q6V5_COMMON
|
|
select QCOM_RPROC_COMMON
|
|
help
|
|
Say y here to support the Peripheral Image Loader
|
|
for the non-TrustZone part of Qualcomm Technology Inc. ADSP and CDSP
|
|
remote processors. The TrustZone part is handled by QCOM_Q6V5_PAS
|
|
driver.
|
|
|
|
config QCOM_ADSP_DEBUG
|
|
bool "enable adsp stability issue debug"
|
|
default n
|
|
help
|
|
Say y here for gettting ramdump when adsp stability issue happen
|
|
disable subsystem recovery to panic kernel
|
|
|
|
config QCOM_Q6V5_MSS
|
|
tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"
|
|
depends on OF && ARCH_QCOM
|
|
depends on QCOM_SMEM
|
|
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
|
|
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
|
|
depends on QCOM_SYSMON || QCOM_SYSMON=n
|
|
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
|
|
select MFD_SYSCON
|
|
select QCOM_MDT_LOADER
|
|
select QCOM_PIL_INFO
|
|
select QCOM_Q6V5_COMMON
|
|
select QCOM_RPROC_COMMON
|
|
select QCOM_SCM
|
|
help
|
|
Say y here to support the Qualcomm self-authenticating modem
|
|
subsystem based on Hexagon V5. The TrustZone based system is
|
|
handled by QCOM_Q6V5_PAS driver.
|
|
|
|
config QCOM_Q6V5_PAS
|
|
tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"
|
|
depends on OF && ARCH_QCOM
|
|
depends on QCOM_SMEM
|
|
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
|
|
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
|
|
depends on QCOM_SYSMON || QCOM_SYSMON=n
|
|
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
|
|
select MFD_SYSCON
|
|
select QCOM_PIL_INFO
|
|
select QCOM_MDT_LOADER
|
|
select QCOM_Q6V5_COMMON
|
|
select QCOM_RPROC_COMMON
|
|
select QCOM_SCM
|
|
help
|
|
Say y here to support the TrustZone based Peripheral Image Loader
|
|
for the Qualcomm Hexagon v5 based remote processors. This is commonly
|
|
used to control subsystems such as ADSP (Audio DSP),
|
|
CDSP (Compute DSP), MPSS (Modem Peripheral SubSystem), and
|
|
SLPI (Sensor Low Power Island).
|
|
|
|
config QCOM_SPSS
|
|
tristate "QTI Secure Subsystem Peripheral loading support"
|
|
depends on OF && ARCH_QCOM
|
|
depends on QCOM_SMEM
|
|
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
|
|
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
|
|
depends on QCOM_SYSMON || QCOM_SYSMON=n
|
|
select MFD_SYSCON
|
|
select QCOM_MDT_LOADER
|
|
select QCOM_Q6V5_COMMON
|
|
select QCOM_RPROC_COMMON
|
|
select QCOM_SCM
|
|
help
|
|
Say y here to support the TrustZone based Peripheral Image
|
|
Loader for the Qualcomm Technologies, Inc. Secure Subsystem
|
|
remote processor. This also supports remote processors that
|
|
are booted before kernel comes up.
|
|
|
|
config QCOM_ESOC
|
|
tristate "External SOCs Control"
|
|
help
|
|
External SOCs can be powered on and monitored by user
|
|
space or kernel drivers. Additionally they can be controlled
|
|
to respond to control commands. This framework provides an
|
|
interface to track events related to the external slave socs.
|
|
|
|
config QCOM_ESOC_DEV
|
|
tristate "ESOC userspace interface"
|
|
help
|
|
Say yes here to enable a userspace representation of the control
|
|
link. Userspace can register a request engine or a command engine
|
|
for the external soc. It can receive event notifications from the
|
|
control link.
|
|
|
|
config QCOM_ESOC_CLIENT
|
|
tristate "ESOC client interface"
|
|
depends on OF
|
|
help
|
|
Say yes here to enable client interface for external socs.
|
|
Clients can specify the external soc that they are interested in
|
|
by using device tree phandles. Based on this, clients can register
|
|
for notifications from a specific soc.
|
|
|
|
config QCOM_ESOC_DEBUG
|
|
tristate "ESOC debug support"
|
|
help
|
|
Say yes here to enable debugging support in the ESOC framework
|
|
and individual esoc drivers. The config basically adds extra
|
|
logging information such that, in the event of a bug, this
|
|
logging information could be helpful to trace it.
|
|
|
|
config QCOM_ESOC_MDM_4X
|
|
tristate "Add support for external modems"
|
|
help
|
|
In some Qualcomm Technologies, Inc. boards, an external modem such
|
|
as mdm9x55 or sdx50m is connected to a primary msm. The primary soc
|
|
can control/monitor the modem via gpios. The data communication
|
|
with such modems can occur over PCIE or HSIC.
|
|
|
|
config QCOM_ESOC_MDM_DRV
|
|
tristate "Command engine for 4x series external modems"
|
|
help
|
|
Provides a command engine to control the behavior of an external
|
|
modems (such as mdm9x55 or sdx50m). That is, it extends the SSR
|
|
framework to power-off, power-on or handle crash scenarios. It
|
|
also listens for events on the external modem.
|
|
|
|
config QCOM_ESOC_DBG_ENG
|
|
tristate "debug engine for 4x series external modems"
|
|
depends on QCOM_ESOC_MDM_DRV
|
|
help
|
|
Mainly used as a debug interface to probe the modem against various
|
|
scenarios. It basically provides a user interface to mask out certain
|
|
commands sent by command engine to the external modem. It also allows
|
|
masking of certain notifications being sent to the external modem.
|
|
|
|
config QCOM_ESOC_DBG_REQ_ENG
|
|
bool "manual request engine for 4x series external modems"
|
|
depends on QCOM_ESOC_DBG_ENG
|
|
help
|
|
Provides a user interface to handle incoming requests from
|
|
the external modem. Allows for debugging of IPC mechanism
|
|
between the external modem and the primary soc.
|
|
|
|
config QCOM_Q6V5_WCSS
|
|
tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
|
|
depends on OF && ARCH_QCOM
|
|
depends on QCOM_SMEM
|
|
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
|
|
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
|
|
depends on QCOM_SYSMON || QCOM_SYSMON=n
|
|
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
|
|
select MFD_SYSCON
|
|
select QCOM_MDT_LOADER
|
|
select QCOM_PIL_INFO
|
|
select QCOM_Q6V5_COMMON
|
|
select QCOM_RPROC_COMMON
|
|
select QCOM_SCM
|
|
help
|
|
Say y here to support the Qualcomm Peripheral Image Loader for the
|
|
Hexagon V5 based WCSS remote processors on e.g. IPQ8074. This is
|
|
a non-TrustZone wireless subsystem.
|
|
|
|
config QCOM_SYSMON
|
|
tristate "Qualcomm sysmon driver"
|
|
depends on RPMSG
|
|
depends on ARCH_QCOM
|
|
depends on NET
|
|
select QCOM_QMI_HELPERS
|
|
help
|
|
The sysmon driver implements a sysmon QMI client and a handler for
|
|
the sys_mon SMD and GLINK channel, which are used for graceful
|
|
shutdown, retrieving failure information and propagating information
|
|
about other subsystems being shut down.
|
|
|
|
Say y here if your system runs firmware on any other subsystems, e.g.
|
|
modem or DSP.
|
|
|
|
config QCOM_WCNSS_PIL
|
|
tristate "Qualcomm WCNSS Peripheral Image Loader"
|
|
depends on OF && ARCH_QCOM
|
|
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
|
|
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
|
|
depends on QCOM_SMEM
|
|
depends on QCOM_SYSMON || QCOM_SYSMON=n
|
|
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
|
|
select QCOM_MDT_LOADER
|
|
select QCOM_PIL_INFO
|
|
select QCOM_RPROC_COMMON
|
|
select QCOM_SCM
|
|
help
|
|
Say y here to support the Peripheral Image Loader for loading WCNSS
|
|
firmware and boot the core on e.g. MSM8974, MSM8916. The firmware is
|
|
verified and booted with the help of the Peripheral Authentication
|
|
System (PAS) in TrustZone.
|
|
|
|
config QCOM_PANIC_ON_NOTIF_TIMEOUT
|
|
bool "Trigger kernel panic when notification timeout expires"
|
|
help
|
|
This is a debug feature where a kernel panic is triggered when
|
|
communication between subsystems through sysmon is taking too
|
|
long. This scneario can happen if the peripheral has died and
|
|
is no longer responsive.
|
|
Also trigger a kernel panic if invoking the callbacks registered
|
|
with a particular subsystem's notifications by the subsystem
|
|
notifier framework is taking too long.
|
|
|
|
config RPROC_SYSMON_NOTIF_TIMEOUT
|
|
int "Sysmon notifications timeout in ms"
|
|
default 10000
|
|
help
|
|
The amount of time, in milliseconds, that should elapse between
|
|
the start and end of sysmon notifications, before a warning
|
|
is emitted.
|
|
|
|
config RPROC_SYSMON_SHUTDOWN_NOTIF_TIMEOUT
|
|
int "Sysmon notifications timeout in ms"
|
|
default 10000
|
|
help
|
|
This is a debug feature where a kernel panic is triggered when
|
|
there is no acknowledgment there from the subsystem shutdown
|
|
request.
|
|
|
|
The amount of time, in milliseconds, that should elapse between
|
|
the start and end of sysmon notifications, before a warning
|
|
is emitted.
|
|
|
|
config RPROC_SSR_NOTIF_TIMEOUT
|
|
int "SSR notifier timeout in ms"
|
|
default 10000
|
|
help
|
|
The amount of time, in milliseconds, that should elapse between
|
|
the start and end of SSR notifications through the subsystem
|
|
notifier, before a warning is emitted.
|
|
|
|
config ST_REMOTEPROC
|
|
tristate "ST remoteproc support"
|
|
depends on ARCH_STI
|
|
select MAILBOX
|
|
select STI_MBOX
|
|
help
|
|
Say y here to support ST's adjunct processors via the remote
|
|
processor framework.
|
|
This can be either built-in or a loadable module.
|
|
|
|
config ST_SLIM_REMOTEPROC
|
|
tristate
|
|
|
|
config STM32_RPROC
|
|
tristate "STM32 remoteproc support"
|
|
depends on ARCH_STM32 || COMPILE_TEST
|
|
depends on REMOTEPROC
|
|
select MAILBOX
|
|
help
|
|
Say y here to support STM32 MCU processors via the
|
|
remote processor framework.
|
|
|
|
You want to say y here in order to enable AMP
|
|
use-cases to run on your platform (dedicated firmware could be
|
|
offloaded to remote MCU processors using this framework).
|
|
|
|
This can be either built-in or a loadable module.
|
|
|
|
config TI_K3_DSP_REMOTEPROC
|
|
tristate "TI K3 DSP remoteproc support"
|
|
depends on ARCH_K3
|
|
select MAILBOX
|
|
select OMAP2PLUS_MBOX
|
|
help
|
|
Say m here to support TI's C66x and C71x DSP remote processor
|
|
subsystems on various TI K3 family of SoCs through the remote
|
|
processor framework.
|
|
|
|
It's safe to say N here if you're not interested in utilizing
|
|
the DSP slave processors.
|
|
|
|
config TI_K3_R5_REMOTEPROC
|
|
tristate "TI K3 R5 remoteproc support"
|
|
depends on ARCH_K3
|
|
select MAILBOX
|
|
select OMAP2PLUS_MBOX
|
|
help
|
|
Say m here to support TI's R5F remote processor subsystems
|
|
on various TI K3 family of SoCs through the remote processor
|
|
framework.
|
|
|
|
It's safe to say N here if you're not interested in utilizing
|
|
a slave processor.
|
|
|
|
config QCOM_RPROC_SLATE
|
|
tristate "QCOM Slate remoteproc support"
|
|
depends on OF && ARCH_QCOM
|
|
select QCOM_PIL_INFO
|
|
select QCOM_MDT_LOADER
|
|
select QCOM_RPROC_COMMON
|
|
select QCOM_SCM
|
|
help
|
|
Say y here to support the TrustZone based Peripheral Image Loader
|
|
for the QCOM Slate.
|
|
|
|
It's safe to say N here if you're not intereseted in utilizing
|
|
a aon processor slate.
|
|
|
|
config MSM_QUIN_SUBSYSTEM_NOTIF_VIRT
|
|
tristate "MSM QUIN Subsystem Notif Virt"
|
|
depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
|
|
select QCOM_RPROC_COMMON
|
|
help
|
|
This option enables the virtual MSM subsystem notification
|
|
framework for the QUIN platform.
|
|
|
|
The virtual MSM subsystem notif framework provides support for
|
|
a subsystem to notify its clients of its state, when the clients
|
|
are in a different virtual machine domain than the subsystem.
|
|
|
|
config QCOM_DS_SKIP_Q6_STOP
|
|
bool "Skip stopping Q6 during Deepsleep"
|
|
help
|
|
This option skips sending the stop notification to Q6 as part
|
|
of Deepsleep flow, based on the assumption that the Q6 is
|
|
already in Low-power state.
|
|
|
|
If not sure, say N.
|
|
|
|
endif # REMOTEPROC
|
|
|
|
endmenu
|