| # 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 AMD_MBV_BRAM_REMOTEPROC | |
| tristate "AMD MicroBlaze/V BRAM-based remoteproc support" | |
| depends on OF && COMMON_CLK && (GPIOLIB || COMPILE_TEST) | |
| help | |
| Say y or m here to support a MicroBlaze/V BRAM-based remote | |
| processor managed through the remoteproc framework. | |
| If unsure, say N. | |
| config IMX_REMOTEPROC | |
| tristate "i.MX remoteproc support" | |
| depends on ARCH_MXC | |
| depends on HAVE_ARM_SMCCC | |
| depends on IMX_SCMI_CPU_DRV || !IMX_SCMI_CPU_DRV | |
| depends on IMX_SCMI_LMM_DRV || !IMX_SCMI_LMM_DRV | |
| 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 IMX_DSP_REMOTEPROC | |
| tristate "i.MX DSP remoteproc support" | |
| depends on ARCH_MXC | |
| depends on HAVE_ARM_SMCCC | |
| select MAILBOX | |
| help | |
| Say y here to support iMX's DSP 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 MESON_MX_AO_ARC_REMOTEPROC | |
| tristate "Amlogic Meson6/8/8b/8m2 AO ARC remote processor support" | |
| depends on HAS_IOMEM | |
| depends on (ARM && ARCH_MESON) || COMPILE_TEST | |
| select GENERIC_ALLOCATOR | |
| help | |
| Say m or y here to have support for the AO ARC remote processor | |
| on Amlogic Meson6/Meson8/Meson8b/Meson8m2 SoCs. This is | |
| typically used for system suspend. | |
| If unsure say N. | |
| 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 | |
| select AUXILIARY_BUS | |
| config QCOM_Q6V5_COMMON | |
| tristate | |
| depends on ARCH_QCOM | |
| depends on QCOM_SMEM | |
| config QCOM_Q6V5_ADSP | |
| tristate "Qualcomm ADSP Peripheral Image Loader" | |
| depends on OF && ARCH_QCOM | |
| depends on QCOM_SMEM | |
| depends on RPMSG_QCOM_SMD || 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 | |
| depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=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_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 || 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 | |
| depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n | |
| select MFD_SYSCON | |
| select QCOM_MDT_LOADER | |
| select QCOM_PIL_INFO | |
| select QCOM_Q6V5_COMMON | |
| select QCOM_RPROC_COMMON | |
| select QCOM_SCM | |
| select QCOM_PAS | |
| 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 Peripheral Authentication Service support" | |
| depends on OF && ARCH_QCOM | |
| depends on QCOM_SMEM | |
| depends on RPMSG_QCOM_SMD || 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 | |
| depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n | |
| select MFD_SYSCON | |
| select QCOM_PIL_INFO | |
| select QCOM_MDT_LOADER | |
| select QCOM_Q6V5_COMMON | |
| select QCOM_RPROC_COMMON | |
| select QCOM_SCM | |
| select QCOM_PAS | |
| help | |
| Say y here to support the TrustZone based Peripheral Image Loader for | |
| the Qualcomm 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_Q6V5_WCSS | |
| tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader" | |
| depends on OF && ARCH_QCOM | |
| depends on QCOM_SMEM | |
| depends on RPMSG_QCOM_SMD || 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 | |
| depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=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 || 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_PAS | |
| 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 RCAR_REMOTEPROC | |
| tristate "Renesas R-Car Gen3 remoteproc support" | |
| depends on ARCH_RENESAS || COMPILE_TEST | |
| help | |
| Say y here to support R-Car realtime processor via the | |
| remote processor framework. An ELF firmware can be loaded | |
| thanks to sysfs remoteproc entries. The remote processor | |
| can be started and stopped. | |
| This can be either built-in or a loadable module. | |
| If compiled as module (M), the module name is rcar_rproc. | |
| 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 | |
| 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 || COMPILE_TEST | |
| depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n) | |
| depends on 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_M4_REMOTEPROC | |
| tristate "TI K3 M4 remoteproc support" | |
| depends on ARCH_K3 || COMPILE_TEST | |
| depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n) | |
| depends on OMAP2PLUS_MBOX | |
| help | |
| Say m here to support TI's M4 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 remote processor. | |
| config TI_K3_R5_REMOTEPROC | |
| tristate "TI K3 R5 remoteproc support" | |
| depends on ARCH_K3 || COMPILE_TEST | |
| depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=n) | |
| depends on 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 XLNX_R5_REMOTEPROC | |
| tristate "Xilinx R5 remoteproc support" | |
| depends on PM && ARCH_ZYNQMP | |
| select ZYNQMP_FIRMWARE | |
| select RPMSG_VIRTIO | |
| select MAILBOX | |
| select ZYNQMP_IPI_MBOX | |
| help | |
| Say y or m here to support Xilinx R5 remote processors via the remote | |
| processor framework. | |
| It's safe to say N if not interested in using RPU r5f cores. | |
| endif # REMOTEPROC | |
| endmenu |