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_PIL_INFO 120 tristate 121 122config QCOM_RPROC_COMMON 123 tristate 124 125config QCOM_Q6V5_COMMON 126 tristate 127 depends on ARCH_QCOM 128 depends on QCOM_SMEM 129 130config QCOM_Q6V5_ADSP 131 tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader" 132 depends on OF && ARCH_QCOM 133 depends on QCOM_SMEM 134 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 135 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 136 depends on QCOM_SYSMON || QCOM_SYSMON=n 137 select MFD_SYSCON 138 select QCOM_PIL_INFO 139 select QCOM_MDT_LOADER 140 select QCOM_Q6V5_COMMON 141 select QCOM_RPROC_COMMON 142 help 143 Say y here to support the Peripheral Image Loader 144 for the Qualcomm Technology Inc. ADSP remote processors. 145 146config QCOM_Q6V5_MSS 147 tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support" 148 depends on OF && ARCH_QCOM 149 depends on QCOM_SMEM 150 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 151 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 152 depends on QCOM_SYSMON || QCOM_SYSMON=n 153 select MFD_SYSCON 154 select QCOM_MDT_LOADER 155 select QCOM_PIL_INFO 156 select QCOM_Q6V5_COMMON 157 select QCOM_Q6V5_IPA_NOTIFY 158 select QCOM_RPROC_COMMON 159 select QCOM_SCM 160 help 161 Say y here to support the Qualcomm self-authenticating modem 162 subsystem based on Hexagon V5. 163 164config QCOM_Q6V5_PAS 165 tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support" 166 depends on OF && ARCH_QCOM 167 depends on QCOM_SMEM 168 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 169 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 170 depends on QCOM_SYSMON || QCOM_SYSMON=n 171 select MFD_SYSCON 172 select QCOM_PIL_INFO 173 select QCOM_MDT_LOADER 174 select QCOM_Q6V5_COMMON 175 select QCOM_RPROC_COMMON 176 select QCOM_SCM 177 help 178 Say y here to support the TrustZone based Peripherial Image Loader 179 for the Qualcomm Hexagon v5 based remote processors. This is commonly 180 used to control subsystems such as ADSP, Compute and Sensor. 181 182config QCOM_Q6V5_WCSS 183 tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader" 184 depends on OF && ARCH_QCOM 185 depends on QCOM_SMEM 186 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 187 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 188 depends on QCOM_SYSMON || QCOM_SYSMON=n 189 select MFD_SYSCON 190 select QCOM_MDT_LOADER 191 select QCOM_PIL_INFO 192 select QCOM_Q6V5_COMMON 193 select QCOM_RPROC_COMMON 194 select QCOM_SCM 195 help 196 Say y here to support the Qualcomm Peripheral Image Loader for the 197 Hexagon V5 based WCSS remote processors. 198 199config QCOM_Q6V5_IPA_NOTIFY 200 tristate 201 202config QCOM_SYSMON 203 tristate "Qualcomm sysmon driver" 204 depends on RPMSG 205 depends on ARCH_QCOM 206 depends on NET 207 select QCOM_QMI_HELPERS 208 help 209 The sysmon driver implements a sysmon QMI client and a handler for 210 the sys_mon SMD and GLINK channel, which are used for graceful 211 shutdown, retrieving failure information and propagating information 212 about other subsystems being shut down. 213 214 Say y here if your system runs firmware on any other subsystems, e.g. 215 modem or DSP. 216 217config QCOM_WCNSS_PIL 218 tristate "Qualcomm WCNSS Peripheral Image Loader" 219 depends on OF && ARCH_QCOM 220 depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 221 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 222 depends on QCOM_SMEM 223 depends on QCOM_SYSMON || QCOM_SYSMON=n 224 select QCOM_MDT_LOADER 225 select QCOM_PIL_INFO 226 select QCOM_RPROC_COMMON 227 select QCOM_SCM 228 help 229 Say y here to support the Peripheral Image Loader for the Qualcomm 230 Wireless Connectivity Subsystem. 231 232config ST_REMOTEPROC 233 tristate "ST remoteproc support" 234 depends on ARCH_STI 235 select MAILBOX 236 select STI_MBOX 237 help 238 Say y here to support ST's adjunct processors via the remote 239 processor framework. 240 This can be either built-in or a loadable module. 241 242config ST_SLIM_REMOTEPROC 243 tristate 244 245config STM32_RPROC 246 tristate "STM32 remoteproc support" 247 depends on ARCH_STM32 248 depends on REMOTEPROC 249 select MAILBOX 250 help 251 Say y here to support STM32 MCU processors via the 252 remote processor framework. 253 254 You want to say y here in order to enable AMP 255 use-cases to run on your platform (dedicated firmware could be 256 offloaded to remote MCU processors using this framework). 257 258 This can be either built-in or a loadable module. 259 260endif # REMOTEPROC 261 262endmenu 263