18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_cimenu "Remoteproc drivers"
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciconfig REMOTEPROC
58c2ecf20Sopenharmony_ci	bool "Support for Remote Processor subsystem"
68c2ecf20Sopenharmony_ci	depends on HAS_DMA
78c2ecf20Sopenharmony_ci	select CRC32
88c2ecf20Sopenharmony_ci	select FW_LOADER
98c2ecf20Sopenharmony_ci	select VIRTIO
108c2ecf20Sopenharmony_ci	select WANT_DEV_COREDUMP
118c2ecf20Sopenharmony_ci	help
128c2ecf20Sopenharmony_ci	  Support for remote processors (such as DSP coprocessors). These
138c2ecf20Sopenharmony_ci	  are mainly used on embedded systems.
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciif REMOTEPROC
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciconfig REMOTEPROC_CDEV
188c2ecf20Sopenharmony_ci	bool "Remoteproc character device interface"
198c2ecf20Sopenharmony_ci	help
208c2ecf20Sopenharmony_ci	  Say y here to have a character device interface for the remoteproc
218c2ecf20Sopenharmony_ci	  framework. Userspace can boot/shutdown remote processors through
228c2ecf20Sopenharmony_ci	  this interface.
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci	  It's safe to say N if you don't want to use this interface.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciconfig IMX_REMOTEPROC
278c2ecf20Sopenharmony_ci	tristate "IMX6/7 remoteproc support"
288c2ecf20Sopenharmony_ci	depends on ARCH_MXC
298c2ecf20Sopenharmony_ci	help
308c2ecf20Sopenharmony_ci	  Say y here to support iMX's remote processors (Cortex M4
318c2ecf20Sopenharmony_ci	  on iMX7D) via the remote processor framework.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci	  It's safe to say N here.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciconfig INGENIC_VPU_RPROC
368c2ecf20Sopenharmony_ci	tristate "Ingenic JZ47xx VPU remoteproc support"
378c2ecf20Sopenharmony_ci	depends on MIPS || COMPILE_TEST
388c2ecf20Sopenharmony_ci	help
398c2ecf20Sopenharmony_ci	  Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	  This can be either built-in or a loadable module.
428c2ecf20Sopenharmony_ci	  If unsure say N.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ciconfig MTK_SCP
458c2ecf20Sopenharmony_ci	tristate "Mediatek SCP support"
468c2ecf20Sopenharmony_ci	depends on ARCH_MEDIATEK || COMPILE_TEST
478c2ecf20Sopenharmony_ci	select RPMSG_MTK_SCP
488c2ecf20Sopenharmony_ci	help
498c2ecf20Sopenharmony_ci	  Say y here to support Mediatek's System Companion Processor (SCP) via
508c2ecf20Sopenharmony_ci	  the remote processor framework.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci	  It's safe to say N here.
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ciconfig OMAP_REMOTEPROC
558c2ecf20Sopenharmony_ci	tristate "OMAP remoteproc support"
568c2ecf20Sopenharmony_ci	depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX
578c2ecf20Sopenharmony_ci	depends on OMAP_IOMMU
588c2ecf20Sopenharmony_ci	select MAILBOX
598c2ecf20Sopenharmony_ci	select OMAP2PLUS_MBOX
608c2ecf20Sopenharmony_ci	help
618c2ecf20Sopenharmony_ci	  Say y here to support OMAP's remote processors (dual M3
628c2ecf20Sopenharmony_ci	  and DSP on OMAP4) via the remote processor framework.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci	  Currently only supported on OMAP4.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci	  Usually you want to say Y here, in order to enable multimedia
678c2ecf20Sopenharmony_ci	  use-cases to run on your platform (multimedia codecs are
688c2ecf20Sopenharmony_ci	  offloaded to remote DSP processors using this framework).
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci	  It's safe to say N here if you're not interested in multimedia
718c2ecf20Sopenharmony_ci	  offloading or just want a bare minimum kernel.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ciconfig OMAP_REMOTEPROC_WATCHDOG
748c2ecf20Sopenharmony_ci	bool "OMAP remoteproc watchdog timer"
758c2ecf20Sopenharmony_ci	depends on OMAP_REMOTEPROC
768c2ecf20Sopenharmony_ci	default n
778c2ecf20Sopenharmony_ci	help
788c2ecf20Sopenharmony_ci	  Say Y here to enable watchdog timer for remote processors.
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci	  This option controls the watchdog functionality for the remote
818c2ecf20Sopenharmony_ci	  processors in OMAP. Dedicated OMAP DMTimers are used by the remote
828c2ecf20Sopenharmony_ci	  processors and triggers the timer interrupt upon a watchdog
838c2ecf20Sopenharmony_ci	  detection.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ciconfig WKUP_M3_RPROC
868c2ecf20Sopenharmony_ci	tristate "AMx3xx Wakeup M3 remoteproc support"
878c2ecf20Sopenharmony_ci	depends on SOC_AM33XX || SOC_AM43XX
888c2ecf20Sopenharmony_ci	help
898c2ecf20Sopenharmony_ci	  Say y here to support Wakeup M3 remote processor on TI AM33xx
908c2ecf20Sopenharmony_ci	  and AM43xx family of SoCs.
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci	  Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed
938c2ecf20Sopenharmony_ci	  for deep CPUIdle states on AM33xx SoCs. Allows for loading of the
948c2ecf20Sopenharmony_ci	  firmware onto these remote processors.
958c2ecf20Sopenharmony_ci	  If unsure say N.
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ciconfig DA8XX_REMOTEPROC
988c2ecf20Sopenharmony_ci	tristate "DA8xx/OMAP-L13x remoteproc support"
998c2ecf20Sopenharmony_ci	depends on ARCH_DAVINCI_DA8XX
1008c2ecf20Sopenharmony_ci	depends on DMA_CMA
1018c2ecf20Sopenharmony_ci	help
1028c2ecf20Sopenharmony_ci	  Say y here to support DA8xx/OMAP-L13x remote processors via the
1038c2ecf20Sopenharmony_ci	  remote processor framework.
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci	  You want to say y here in order to enable AMP
1068c2ecf20Sopenharmony_ci	  use-cases to run on your platform (multimedia codecs are
1078c2ecf20Sopenharmony_ci	  offloaded to remote DSP processors using this framework).
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	  This module controls the name of the firmware file that gets
1108c2ecf20Sopenharmony_ci	  loaded on the DSP.  This file must reside in the /lib/firmware
1118c2ecf20Sopenharmony_ci	  directory.  It can be specified via the module parameter
1128c2ecf20Sopenharmony_ci	  da8xx_fw_name=<filename>, and if not specified will default to
1138c2ecf20Sopenharmony_ci	  "rproc-dsp-fw".
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci	  It's safe to say n here if you're not interested in multimedia
1168c2ecf20Sopenharmony_ci	  offloading.
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ciconfig KEYSTONE_REMOTEPROC
1198c2ecf20Sopenharmony_ci	tristate "Keystone Remoteproc support"
1208c2ecf20Sopenharmony_ci	depends on ARCH_KEYSTONE
1218c2ecf20Sopenharmony_ci	help
1228c2ecf20Sopenharmony_ci	  Say Y here here to support Keystone remote processors (DSP)
1238c2ecf20Sopenharmony_ci	  via the remote processor framework.
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci	  It's safe to say N here if you're not interested in the Keystone
1268c2ecf20Sopenharmony_ci	  DSPs or just want to use a bare minimum kernel.
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ciconfig QCOM_PIL_INFO
1298c2ecf20Sopenharmony_ci	tristate
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ciconfig QCOM_RPROC_COMMON
1328c2ecf20Sopenharmony_ci	tristate
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ciconfig QCOM_Q6V5_COMMON
1358c2ecf20Sopenharmony_ci	tristate
1368c2ecf20Sopenharmony_ci	depends on ARCH_QCOM
1378c2ecf20Sopenharmony_ci	depends on QCOM_SMEM
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ciconfig QCOM_Q6V5_ADSP
1408c2ecf20Sopenharmony_ci	tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader"
1418c2ecf20Sopenharmony_ci	depends on OF && ARCH_QCOM
1428c2ecf20Sopenharmony_ci	depends on QCOM_SMEM
1438c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
1448c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
1458c2ecf20Sopenharmony_ci	depends on QCOM_SYSMON || QCOM_SYSMON=n
1468c2ecf20Sopenharmony_ci	select MFD_SYSCON
1478c2ecf20Sopenharmony_ci	select QCOM_PIL_INFO
1488c2ecf20Sopenharmony_ci	select QCOM_MDT_LOADER
1498c2ecf20Sopenharmony_ci	select QCOM_Q6V5_COMMON
1508c2ecf20Sopenharmony_ci	select QCOM_RPROC_COMMON
1518c2ecf20Sopenharmony_ci	help
1528c2ecf20Sopenharmony_ci	  Say y here to support the Peripheral Image Loader
1538c2ecf20Sopenharmony_ci	  for the Qualcomm Technology Inc. ADSP remote processors.
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ciconfig QCOM_Q6V5_MSS
1568c2ecf20Sopenharmony_ci	tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"
1578c2ecf20Sopenharmony_ci	depends on OF && ARCH_QCOM
1588c2ecf20Sopenharmony_ci	depends on QCOM_SMEM
1598c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
1608c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
1618c2ecf20Sopenharmony_ci	depends on QCOM_SYSMON || QCOM_SYSMON=n
1628c2ecf20Sopenharmony_ci	select MFD_SYSCON
1638c2ecf20Sopenharmony_ci	select QCOM_MDT_LOADER
1648c2ecf20Sopenharmony_ci	select QCOM_PIL_INFO
1658c2ecf20Sopenharmony_ci	select QCOM_Q6V5_COMMON
1668c2ecf20Sopenharmony_ci	select QCOM_RPROC_COMMON
1678c2ecf20Sopenharmony_ci	select QCOM_SCM
1688c2ecf20Sopenharmony_ci	help
1698c2ecf20Sopenharmony_ci	  Say y here to support the Qualcomm self-authenticating modem
1708c2ecf20Sopenharmony_ci	  subsystem based on Hexagon V5.
1718c2ecf20Sopenharmony_ci
1728c2ecf20Sopenharmony_ciconfig QCOM_Q6V5_PAS
1738c2ecf20Sopenharmony_ci	tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"
1748c2ecf20Sopenharmony_ci	depends on OF && ARCH_QCOM
1758c2ecf20Sopenharmony_ci	depends on QCOM_SMEM
1768c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
1778c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
1788c2ecf20Sopenharmony_ci	depends on QCOM_SYSMON || QCOM_SYSMON=n
1798c2ecf20Sopenharmony_ci	select MFD_SYSCON
1808c2ecf20Sopenharmony_ci	select QCOM_PIL_INFO
1818c2ecf20Sopenharmony_ci	select QCOM_MDT_LOADER
1828c2ecf20Sopenharmony_ci	select QCOM_Q6V5_COMMON
1838c2ecf20Sopenharmony_ci	select QCOM_RPROC_COMMON
1848c2ecf20Sopenharmony_ci	select QCOM_SCM
1858c2ecf20Sopenharmony_ci	help
1868c2ecf20Sopenharmony_ci	  Say y here to support the TrustZone based Peripherial Image Loader
1878c2ecf20Sopenharmony_ci	  for the Qualcomm Hexagon v5 based remote processors. This is commonly
1888c2ecf20Sopenharmony_ci	  used to control subsystems such as ADSP, Compute and Sensor.
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ciconfig QCOM_Q6V5_WCSS
1918c2ecf20Sopenharmony_ci	tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
1928c2ecf20Sopenharmony_ci	depends on OF && ARCH_QCOM
1938c2ecf20Sopenharmony_ci	depends on QCOM_SMEM
1948c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
1958c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
1968c2ecf20Sopenharmony_ci	depends on QCOM_SYSMON || QCOM_SYSMON=n
1978c2ecf20Sopenharmony_ci	select MFD_SYSCON
1988c2ecf20Sopenharmony_ci	select QCOM_MDT_LOADER
1998c2ecf20Sopenharmony_ci	select QCOM_PIL_INFO
2008c2ecf20Sopenharmony_ci	select QCOM_Q6V5_COMMON
2018c2ecf20Sopenharmony_ci	select QCOM_RPROC_COMMON
2028c2ecf20Sopenharmony_ci	select QCOM_SCM
2038c2ecf20Sopenharmony_ci	help
2048c2ecf20Sopenharmony_ci	  Say y here to support the Qualcomm Peripheral Image Loader for the
2058c2ecf20Sopenharmony_ci	  Hexagon V5 based WCSS remote processors.
2068c2ecf20Sopenharmony_ci
2078c2ecf20Sopenharmony_ciconfig QCOM_SYSMON
2088c2ecf20Sopenharmony_ci	tristate "Qualcomm sysmon driver"
2098c2ecf20Sopenharmony_ci	depends on RPMSG
2108c2ecf20Sopenharmony_ci	depends on ARCH_QCOM
2118c2ecf20Sopenharmony_ci	depends on NET
2128c2ecf20Sopenharmony_ci	select QCOM_QMI_HELPERS
2138c2ecf20Sopenharmony_ci	help
2148c2ecf20Sopenharmony_ci	  The sysmon driver implements a sysmon QMI client and a handler for
2158c2ecf20Sopenharmony_ci	  the sys_mon SMD and GLINK channel, which are used for graceful
2168c2ecf20Sopenharmony_ci	  shutdown, retrieving failure information and propagating information
2178c2ecf20Sopenharmony_ci	  about other subsystems being shut down.
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci	  Say y here if your system runs firmware on any other subsystems, e.g.
2208c2ecf20Sopenharmony_ci	  modem or DSP.
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ciconfig QCOM_WCNSS_PIL
2238c2ecf20Sopenharmony_ci	tristate "Qualcomm WCNSS Peripheral Image Loader"
2248c2ecf20Sopenharmony_ci	depends on OF && ARCH_QCOM
2258c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
2268c2ecf20Sopenharmony_ci	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
2278c2ecf20Sopenharmony_ci	depends on QCOM_SMEM
2288c2ecf20Sopenharmony_ci	depends on QCOM_SYSMON || QCOM_SYSMON=n
2298c2ecf20Sopenharmony_ci	select QCOM_MDT_LOADER
2308c2ecf20Sopenharmony_ci	select QCOM_PIL_INFO
2318c2ecf20Sopenharmony_ci	select QCOM_RPROC_COMMON
2328c2ecf20Sopenharmony_ci	select QCOM_SCM
2338c2ecf20Sopenharmony_ci	help
2348c2ecf20Sopenharmony_ci	  Say y here to support the Peripheral Image Loader for the Qualcomm
2358c2ecf20Sopenharmony_ci	  Wireless Connectivity Subsystem.
2368c2ecf20Sopenharmony_ci
2378c2ecf20Sopenharmony_ciconfig ST_REMOTEPROC
2388c2ecf20Sopenharmony_ci	tristate "ST remoteproc support"
2398c2ecf20Sopenharmony_ci	depends on ARCH_STI
2408c2ecf20Sopenharmony_ci	select MAILBOX
2418c2ecf20Sopenharmony_ci	select STI_MBOX
2428c2ecf20Sopenharmony_ci	help
2438c2ecf20Sopenharmony_ci	  Say y here to support ST's adjunct processors via the remote
2448c2ecf20Sopenharmony_ci	  processor framework.
2458c2ecf20Sopenharmony_ci	  This can be either built-in or a loadable module.
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ciconfig ST_SLIM_REMOTEPROC
2488c2ecf20Sopenharmony_ci	tristate
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ciconfig STM32_RPROC
2518c2ecf20Sopenharmony_ci	tristate "STM32 remoteproc support"
2528c2ecf20Sopenharmony_ci	depends on ARCH_STM32
2538c2ecf20Sopenharmony_ci	depends on REMOTEPROC
2548c2ecf20Sopenharmony_ci	select MAILBOX
2558c2ecf20Sopenharmony_ci	help
2568c2ecf20Sopenharmony_ci	  Say y here to support STM32 MCU processors via the
2578c2ecf20Sopenharmony_ci	  remote processor framework.
2588c2ecf20Sopenharmony_ci
2598c2ecf20Sopenharmony_ci	  You want to say y here in order to enable AMP
2608c2ecf20Sopenharmony_ci	  use-cases to run on your platform (dedicated firmware could be
2618c2ecf20Sopenharmony_ci	  offloaded to remote MCU processors using this framework).
2628c2ecf20Sopenharmony_ci
2638c2ecf20Sopenharmony_ci	  This can be either built-in or a loadable module.
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_ciconfig TI_K3_DSP_REMOTEPROC
2668c2ecf20Sopenharmony_ci	tristate "TI K3 DSP remoteproc support"
2678c2ecf20Sopenharmony_ci	depends on ARCH_K3
2688c2ecf20Sopenharmony_ci	select MAILBOX
2698c2ecf20Sopenharmony_ci	select OMAP2PLUS_MBOX
2708c2ecf20Sopenharmony_ci	help
2718c2ecf20Sopenharmony_ci	  Say m here to support TI's C66x and C71x DSP remote processor
2728c2ecf20Sopenharmony_ci	  subsystems on various TI K3 family of SoCs through the remote
2738c2ecf20Sopenharmony_ci	  processor framework.
2748c2ecf20Sopenharmony_ci
2758c2ecf20Sopenharmony_ci	  It's safe to say N here if you're not interested in utilizing
2768c2ecf20Sopenharmony_ci	  the DSP slave processors.
2778c2ecf20Sopenharmony_ci
2788c2ecf20Sopenharmony_ciconfig TI_K3_R5_REMOTEPROC
2798c2ecf20Sopenharmony_ci	tristate "TI K3 R5 remoteproc support"
2808c2ecf20Sopenharmony_ci	depends on ARCH_K3
2818c2ecf20Sopenharmony_ci	select MAILBOX
2828c2ecf20Sopenharmony_ci	select OMAP2PLUS_MBOX
2838c2ecf20Sopenharmony_ci	help
2848c2ecf20Sopenharmony_ci	  Say m here to support TI's R5F remote processor subsystems
2858c2ecf20Sopenharmony_ci	  on various TI K3 family of SoCs through the remote processor
2868c2ecf20Sopenharmony_ci	  framework.
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_ci	  It's safe to say N here if you're not interested in utilizing
2898c2ecf20Sopenharmony_ci	  a slave processor.
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ciendif # REMOTEPROC
2928c2ecf20Sopenharmony_ci
2938c2ecf20Sopenharmony_ciendmenu
294