2019-05-19 15:07:45 +03:00
# SPDX-License-Identifier: GPL-2.0-only
2013-01-17 06:53:51 +04:00
menu "Remoteproc drivers"
2011-12-14 15:01:59 +04:00
2011-10-20 18:52:46 +04:00
config REMOTEPROC
2019-08-30 09:43:12 +03:00
bool "Support for Remote Processor subsystem"
2012-09-13 22:03:58 +04:00
depends on HAS_DMA
2013-04-07 15:06:07 +04:00
select CRC32
2013-03-29 05:41:43 +04:00
select FW_LOADER
2012-09-30 12:25:34 +04:00
select VIRTIO
2018-01-06 03:04:17 +03:00
select WANT_DEV_COREDUMP
2016-12-19 12:22:50 +03:00
help
Support for remote processors (such as DSP coprocessors). These
are mainly used on embedded systems.
2011-10-20 20:53:35 +04:00
2016-10-18 12:39:08 +03:00
if REMOTEPROC
2017-08-17 10:15:26 +03:00
config IMX_REMOTEPROC
tristate "IMX6/7 remoteproc support"
2019-06-04 02:46:27 +03:00
depends on ARCH_MXC
2017-08-17 10:15:26 +03:00
help
Say y here to support iMX's remote processors (Cortex M4
on iMX7D) via the remote processor framework.
It's safe to say N here.
2011-10-20 20:53:35 +04:00
config OMAP_REMOTEPROC
tristate "OMAP remoteproc support"
2013-02-18 15:06:52 +04:00
depends on ARCH_OMAP4 || SOC_OMAP5
2012-02-28 15:04:33 +04:00
depends on OMAP_IOMMU
2013-03-13 02:55:29 +04:00
select MAILBOX
select OMAP2PLUS_MBOX
2011-10-20 20:53:35 +04:00
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.
2016-12-19 12:22:50 +03:00
Usually you want to say Y here, in order to enable multimedia
2011-10-20 20:53:35 +04:00
use-cases to run on your platform (multimedia codecs are
offloaded to remote DSP processors using this framework).
2016-12-19 12:22:50 +03:00
It's safe to say N here if you're not interested in multimedia
2011-10-20 20:53:35 +04:00
offloading or just want a bare minimum kernel.
2011-12-14 15:01:59 +04:00
2015-05-22 23:45:30 +03:00
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.
2013-04-10 01:20:21 +04:00
config DA8XX_REMOTEPROC
tristate "DA8xx/OMAP-L13x remoteproc support"
depends on ARCH_DAVINCI_DA8XX
2017-05-19 01:08:59 +03:00
depends on DMA_CMA
2013-04-10 01:20:21 +04:00
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.
remoteproc/keystone: Add a remoteproc driver for Keystone 2 DSPs
The Texas Instrument's Keystone 2 family of SoCs has 1 or more
TMS320C66x DSP Core Subsystems (C66x CorePacs). Each subsystem has
a C66x Fixed/Floating-Point DSP Core, with 32KB of L1P and L1D SRAMs,
that can be configured and partitioned as either RAM and/or Cache,
and 1 MB of L2 SRAM. The CorePac also includes an Internal DMA (IDMA),
External Memory Controller (EMC), Extended Memory Controller (XMC)
with a Memory Protection and Address Extension (MPAX) unit, a Bandwidth
Management (BWM) unit, an Interrupt Controller (INTC) and a Powerdown
Controller (PDC).
A new remoteproc module is added to perform the device management of
these DSP devices. The driver expects the firmware names to be of the
form "keystone-dsp<X>-fw", where X is the corresponding DSP number, and
uses the standard remoteproc core ELF loader. The support is limited
to images only using the DSP internal memories at the moment. This
remoteproc driver is also designed to work with virtio, and uses the
IPC Generation registers for performing the virtio signalling and
getting notified of exceptions.
The driver currently supports the 66AK2H/66AK2K, 66AK2L and 66AK2E
SoCs.
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Sam Nelson <sam.nelson@ti.com>
Signed-off-by: Andrew F. Davis <afd@ti.com>
Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2017-06-14 02:45:12 +03:00
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.
2018-09-25 02:45:25 +03:00
config QCOM_RPROC_COMMON
tristate
config QCOM_Q6V5_COMMON
tristate
depends on ARCH_QCOM
depends on QCOM_SMEM
2018-09-24 14:07:50 +03:00
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
select MFD_SYSCON
select QCOM_MDT_LOADER
select QCOM_Q6V5_COMMON
select QCOM_RPROC_COMMON
help
Say y here to support the Peripheral Image Loader
for the Qualcomm Technology Inc. ADSP remote processors.
2018-09-25 02:45:26 +03:00
config QCOM_Q6V5_MSS
tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"
2016-08-23 08:57:44 +03:00
depends on OF && ARCH_QCOM
depends on QCOM_SMEM
2017-03-28 08:26:34 +03:00
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
2017-08-30 02:13:35 +03:00
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
2017-08-28 07:51:38 +03:00
depends on QCOM_SYSMON || QCOM_SYSMON=n
2016-08-23 08:57:44 +03:00
select MFD_SYSCON
2019-07-04 09:46:49 +03:00
select QCOM_MDT_LOADER
2018-06-04 23:30:37 +03:00
select QCOM_Q6V5_COMMON
2017-01-27 13:28:32 +03:00
select QCOM_RPROC_COMMON
2016-12-09 14:47:02 +03:00
select QCOM_SCM
2016-08-23 08:57:44 +03:00
help
2018-09-25 02:45:26 +03:00
Say y here to support the Qualcomm self-authenticating modem
subsystem based on Hexagon V5.
2018-06-04 23:30:36 +03:00
2018-09-25 02:45:26 +03:00
config QCOM_Q6V5_PAS
tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"
2016-06-21 00:28:41 +03:00
depends on OF && ARCH_QCOM
depends on QCOM_SMEM
2017-03-28 08:26:34 +03:00
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
2017-09-11 22:54:17 +03:00
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
2017-08-28 07:51:38 +03:00
depends on QCOM_SYSMON || QCOM_SYSMON=n
2016-06-21 00:28:41 +03:00
select MFD_SYSCON
2018-09-25 02:45:26 +03:00
select QCOM_MDT_LOADER
2018-06-04 23:30:38 +03:00
select QCOM_Q6V5_COMMON
2017-01-27 13:28:32 +03:00
select QCOM_RPROC_COMMON
2016-12-09 14:47:02 +03:00
select QCOM_SCM
2016-06-21 00:28:41 +03:00
help
2018-09-25 02:45:25 +03:00
Say y here to support the TrustZone based Peripherial Image Loader
for the Qualcomm Hexagon v5 based remote processors. This is commonly
used to control subsystems such as ADSP, Compute and Sensor.
2016-06-21 00:28:41 +03:00
2018-06-07 20:27:11 +03:00
config QCOM_Q6V5_WCSS
tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
depends on OF && ARCH_QCOM
depends on QCOM_SMEM
2018-07-18 14:16:26 +03:00
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
2018-06-07 20:27:11 +03:00
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 Qualcomm Peripheral Image Loader for the
Hexagon V5 based WCSS remote processors.
2017-08-28 07:51:38 +03:00
config QCOM_SYSMON
tristate "Qualcomm sysmon driver"
depends on RPMSG
depends on ARCH_QCOM
2018-02-22 18:57:38 +03:00
depends on NET
2017-08-28 07:51:38 +03:00
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.
2016-08-13 04:18:59 +03:00
config QCOM_WCNSS_PIL
tristate "Qualcomm WCNSS Peripheral Image Loader"
depends on OF && ARCH_QCOM
2017-03-28 08:26:34 +03:00
depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
2017-09-11 22:54:17 +03:00
depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
2016-08-13 04:18:59 +03:00
depends on QCOM_SMEM
2017-08-28 07:51:38 +03:00
depends on QCOM_SYSMON || QCOM_SYSMON=n
2016-08-13 04:18:59 +03:00
select QCOM_MDT_LOADER
2017-01-27 13:28:32 +03:00
select QCOM_RPROC_COMMON
2016-08-13 04:18:59 +03:00
select QCOM_SCM
help
Say y here to support the Peripheral Image Loader for the Qualcomm
Wireless Connectivity Subsystem.
2016-01-12 15:46:18 +03:00
config ST_REMOTEPROC
tristate "ST remoteproc support"
depends on ARCH_STI
2017-01-31 15:35:54 +03:00
select MAILBOX
select STI_MBOX
2016-01-12 15:46:18 +03:00
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.
2016-10-18 12:39:06 +03:00
config ST_SLIM_REMOTEPROC
tristate
2016-10-18 12:39:08 +03:00
2019-05-14 11:26:58 +03:00
config STM32_RPROC
tristate "STM32 remoteproc support"
depends on ARCH_STM32
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.
2016-10-18 12:39:08 +03:00
endif # REMOTEPROC
2016-10-18 12:39:06 +03:00
2011-12-14 15:01:59 +04:00
endmenu