# 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_SRM_CORE tristate "Remoteproc System Resource Manager core" depends on RPMSG help Say y here to enable the core driver of the remoteproc System Resource Manager (SRM). The SRM handles resources allocated to remote processors. The core part is in charge of controlling the device children. config REMOTEPROC_SRM_DEV tristate "Remoteproc System Resource Manager device" depends on REMOTEPROC_SRM_CORE help Say y here to enable the device driver of the remoteproc System Resource Manager (SRM). The SRM handles resources allocated to remote processors. The device part is in charge of reserving and initializing resources for a peripheral assigned to a coprocessor. config IMX_REMOTEPROC tristate "IMX6/7 remoteproc support" depends on ARCH_MXC 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. config OMAP_REMOTEPROC tristate "OMAP remoteproc support" depends on ARCH_OMAP4 || SOC_OMAP5 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 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=, 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 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 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. 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 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 self-authenticating modem subsystem based on Hexagon V5. 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 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 Peripherial Image Loader for the Qualcomm Hexagon v5 based remote processors. This is commonly used to control subsystems such as ADSP, Compute and Sensor. 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 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. 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 select QCOM_MDT_LOADER select QCOM_RPROC_COMMON select QCOM_SCM help Say y here to support the Peripheral Image Loader for the Qualcomm Wireless Connectivity Subsystem. 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 depends on REMOTEPROC select MAILBOX select REMOTEPROC_SRM_CORE select REMOTEPROC_SRM_DEV 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. endif # REMOTEPROC endmenu