1# SPDX-License-Identifier: GPL-2.0-only 2menu "Remoteproc drivers" 3 4config REMOTEPROC 5 bool "Support for Remote Processor subsystem" 6 depends on HAS_DMA 7 select CRC32 8 select FW_LOADER 9 select VIRTIO 10 select WANT_DEV_COREDUMP 11 help 12 Support for remote processors (such as DSP coprocessors). These 13 are mainly used on embedded systems. 14 15if REMOTEPROC 16 17config IMX_REMOTEPROC 18 tristate "IMX6/7 remoteproc support" 19 depends on ARCH_MXC 20 help 21 Say y here to support iMX's remote processors (Cortex M4 22 on iMX7D) via the remote processor framework. 23 24 It's safe to say N here. 25 26config INGENIC_VPU_RPROC 27 tristate "Ingenic JZ47xx VPU remoteproc support" 28 depends on MIPS || COMPILE_TEST 29 help 30 Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic. 31 32 This can be either built-in or a loadable module. 33 If unsure say N. 34 35config MTK_SCP 36 tristate "Mediatek SCP support" 37 depends on ARCH_MEDIATEK 38 select RPMSG_MTK_SCP 39 help 40 Say y here to support Mediatek's System Companion Processor (SCP) via 41 the remote processor framework. 42 43 It's safe to say N here. 44 45config OMAP_REMOTEPROC 46 tristate "OMAP remoteproc support" 47 depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX 48 depends on OMAP_IOMMU 49 select MAILBOX 50 select OMAP2PLUS_MBOX 51 help 52 Say y here to support OMAP's remote processors (dual M3 53 and DSP on OMAP4) via the remote processor framework. 54 55 Currently only supported on OMAP4. 56 57 Usually you want to say Y here, in order to enable multimedia 58 use-cases to run on your platform (multimedia codecs are 59 offloaded to remote DSP processors using this framework). 60 61 It's safe to say N here if you're not interested in multimedia 62 offloading or just want a bare minimum kernel. 63 64config OMAP_REMOTEPROC_WATCHDOG 65 bool "OMAP remoteproc watchdog timer" 66 depends on OMAP_REMOTEPROC 67 default n 68 help 69 Say Y here to enable watchdog timer for remote processors. 70 71 This option controls the watchdog functionality for the remote 72 processors in OMAP. Dedicated OMAP DMTimers are used by the remote 73 processors and triggers the timer interrupt upon a watchdog 74 detection. 75 76config WKUP_M3_RPROC 77 tristate "AMx3xx Wakeup M3 remoteproc support" 78 depends on SOC_AM33XX || SOC_AM43XX 79 help 80 Say y here to support Wakeup M3 remote processor on TI AM33xx 81 and AM43xx family of SoCs. 82 83 Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed 84 for deep CPUIdle states on AM33xx SoCs. Allows for loading of the 85 firmware onto these remote processors. 86 If unsure say N. 87 88config DA8XX_REMOTEPROC 89 tristate "DA8xx/OMAP-L13x remoteproc support" 90 depends on ARCH_DAVINCI_DA8XX 91 depends on DMA_CMA 92 help 93 Say y here to support DA8xx/OMAP-L13x remote processors via the 94 remote processor framework. 95 96 You want to say y here in order to enable AMP 97 use-cases to run on your platform (multimedia codecs are 98 offloaded to remote DSP processors using this framework). 99 100 This module controls the name of the firmware file that gets 101 loaded on the DSP. This file must reside in the /lib/firmware 102 directory. It can be specified via the module parameter 103 da8xx_fw_name=<filename>, and if not specified will default to 104 "rproc-dsp-fw". 105 106 It's safe to say n here if you're not interested in multimedia 107 offloading. 108 109config KEYSTONE_REMOTEPROC 110 tristate "Keystone Remoteproc support" 111 depends on ARCH_KEYSTONE 112 help 113 Say Y here here to support Keystone remote processors (DSP) 114 via the remote processor framework. 115 116 It's safe to say N here if you're not interested in the Keystone 117 DSPs or just want to use a bare minimum kernel. 118 119config QCOM_RPROC_COMMON 120 tristate 121 122config QCOM_Q6V5_COMMON 123 tristate 124 depends on ARCH_QCOM 125 depends on QCOM_SMEM 126 127config QCOM_Q6V5_ADSP 128 tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader" 129 depends on OF && ARCH_QCOM 130 depends on QCOM_SMEM 131 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 132 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 133 depends on QCOM_SYSMON || QCOM_SYSMON=n 134 select MFD_SYSCON 135 select QCOM_MDT_LOADER 136 select QCOM_Q6V5_COMMON 137 select QCOM_RPROC_COMMON 138 help 139 Say y here to support the Peripheral Image Loader 140 for the Qualcomm Technology Inc. ADSP remote processors. 141 142config QCOM_Q6V5_MSS 143 tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support" 144 depends on OF && ARCH_QCOM 145 depends on QCOM_SMEM 146 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 147 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 148 depends on QCOM_SYSMON || QCOM_SYSMON=n 149 select MFD_SYSCON 150 select QCOM_MDT_LOADER 151 select QCOM_Q6V5_COMMON 152 select QCOM_Q6V5_IPA_NOTIFY 153 select QCOM_RPROC_COMMON 154 select QCOM_SCM 155 help 156 Say y here to support the Qualcomm self-authenticating modem 157 subsystem based on Hexagon V5. 158 159config QCOM_Q6V5_PAS 160 tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support" 161 depends on OF && ARCH_QCOM 162 depends on QCOM_SMEM 163 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 164 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 165 depends on QCOM_SYSMON || QCOM_SYSMON=n 166 select MFD_SYSCON 167 select QCOM_MDT_LOADER 168 select QCOM_Q6V5_COMMON 169 select QCOM_RPROC_COMMON 170 select QCOM_SCM 171 help 172 Say y here to support the TrustZone based Peripherial Image Loader 173 for the Qualcomm Hexagon v5 based remote processors. This is commonly 174 used to control subsystems such as ADSP, Compute and Sensor. 175 176config QCOM_Q6V5_WCSS 177 tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader" 178 depends on OF && ARCH_QCOM 179 depends on QCOM_SMEM 180 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 181 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 182 depends on QCOM_SYSMON || QCOM_SYSMON=n 183 select MFD_SYSCON 184 select QCOM_MDT_LOADER 185 select QCOM_Q6V5_COMMON 186 select QCOM_RPROC_COMMON 187 select QCOM_SCM 188 help 189 Say y here to support the Qualcomm Peripheral Image Loader for the 190 Hexagon V5 based WCSS remote processors. 191 192config QCOM_Q6V5_IPA_NOTIFY 193 tristate 194 195config QCOM_SYSMON 196 tristate "Qualcomm sysmon driver" 197 depends on RPMSG 198 depends on ARCH_QCOM 199 depends on NET 200 select QCOM_QMI_HELPERS 201 help 202 The sysmon driver implements a sysmon QMI client and a handler for 203 the sys_mon SMD and GLINK channel, which are used for graceful 204 shutdown, retrieving failure information and propagating information 205 about other subsystems being shut down. 206 207 Say y here if your system runs firmware on any other subsystems, e.g. 208 modem or DSP. 209 210config QCOM_WCNSS_PIL 211 tristate "Qualcomm WCNSS Peripheral Image Loader" 212 depends on OF && ARCH_QCOM 213 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 214 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 215 depends on QCOM_SMEM 216 depends on QCOM_SYSMON || QCOM_SYSMON=n 217 select QCOM_MDT_LOADER 218 select QCOM_RPROC_COMMON 219 select QCOM_SCM 220 help 221 Say y here to support the Peripheral Image Loader for the Qualcomm 222 Wireless Connectivity Subsystem. 223 224config ST_REMOTEPROC 225 tristate "ST remoteproc support" 226 depends on ARCH_STI 227 select MAILBOX 228 select STI_MBOX 229 help 230 Say y here to support ST's adjunct processors via the remote 231 processor framework. 232 This can be either built-in or a loadable module. 233 234config ST_SLIM_REMOTEPROC 235 tristate 236 237config STM32_RPROC 238 tristate "STM32 remoteproc support" 239 depends on ARCH_STM32 240 depends on REMOTEPROC 241 select MAILBOX 242 help 243 Say y here to support STM32 MCU processors via the 244 remote processor framework. 245 246 You want to say y here in order to enable AMP 247 use-cases to run on your platform (dedicated firmware could be 248 offloaded to remote MCU processors using this framework). 249 250 This can be either built-in or a loadable module. 251 252endif # REMOTEPROC 253 254endmenu 255