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 REMOTEPROC_CDEV 18 bool "Remoteproc character device interface" 19 help 20 Say y here to have a character device interface for the remoteproc 21 framework. Userspace can boot/shutdown remote processors through 22 this interface. 23 24 It's safe to say N if you don't want to use this interface. 25 26config IMX_REMOTEPROC 27 tristate "i.MX remoteproc support" 28 depends on ARCH_MXC 29 depends on HAVE_ARM_SMCCC 30 select MAILBOX 31 help 32 Say y here to support iMX's remote processors via the remote 33 processor framework. 34 35 It's safe to say N here. 36 37config INGENIC_VPU_RPROC 38 tristate "Ingenic JZ47xx VPU remoteproc support" 39 depends on MIPS || COMPILE_TEST 40 help 41 Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic. 42 43 This can be either built-in or a loadable module. 44 If unsure say N. 45 46config MTK_SCP 47 tristate "Mediatek SCP support" 48 depends on ARCH_MEDIATEK || COMPILE_TEST 49 select RPMSG_MTK_SCP 50 help 51 Say y here to support Mediatek's System Companion Processor (SCP) via 52 the remote processor framework. 53 54 It's safe to say N here. 55 56config OMAP_REMOTEPROC 57 tristate "OMAP remoteproc support" 58 depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX 59 depends on OMAP_IOMMU 60 select MAILBOX 61 select OMAP2PLUS_MBOX 62 help 63 Say y here to support OMAP's remote processors (dual M3 64 and DSP on OMAP4) via the remote processor framework. 65 66 Currently only supported on OMAP4. 67 68 Usually you want to say Y here, in order to enable multimedia 69 use-cases to run on your platform (multimedia codecs are 70 offloaded to remote DSP processors using this framework). 71 72 It's safe to say N here if you're not interested in multimedia 73 offloading or just want a bare minimum kernel. 74 75config OMAP_REMOTEPROC_WATCHDOG 76 bool "OMAP remoteproc watchdog timer" 77 depends on OMAP_REMOTEPROC 78 default n 79 help 80 Say Y here to enable watchdog timer for remote processors. 81 82 This option controls the watchdog functionality for the remote 83 processors in OMAP. Dedicated OMAP DMTimers are used by the remote 84 processors and triggers the timer interrupt upon a watchdog 85 detection. 86 87config WKUP_M3_RPROC 88 tristate "AMx3xx Wakeup M3 remoteproc support" 89 depends on SOC_AM33XX || SOC_AM43XX 90 help 91 Say y here to support Wakeup M3 remote processor on TI AM33xx 92 and AM43xx family of SoCs. 93 94 Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed 95 for deep CPUIdle states on AM33xx SoCs. Allows for loading of the 96 firmware onto these remote processors. 97 If unsure say N. 98 99config DA8XX_REMOTEPROC 100 tristate "DA8xx/OMAP-L13x remoteproc support" 101 depends on ARCH_DAVINCI_DA8XX 102 depends on DMA_CMA 103 help 104 Say y here to support DA8xx/OMAP-L13x remote processors via the 105 remote processor framework. 106 107 You want to say y here in order to enable AMP 108 use-cases to run on your platform (multimedia codecs are 109 offloaded to remote DSP processors using this framework). 110 111 This module controls the name of the firmware file that gets 112 loaded on the DSP. This file must reside in the /lib/firmware 113 directory. It can be specified via the module parameter 114 da8xx_fw_name=<filename>, and if not specified will default to 115 "rproc-dsp-fw". 116 117 It's safe to say n here if you're not interested in multimedia 118 offloading. 119 120config KEYSTONE_REMOTEPROC 121 tristate "Keystone Remoteproc support" 122 depends on ARCH_KEYSTONE 123 help 124 Say Y here here to support Keystone remote processors (DSP) 125 via the remote processor framework. 126 127 It's safe to say N here if you're not interested in the Keystone 128 DSPs or just want to use a bare minimum kernel. 129 130config MESON_MX_AO_ARC_REMOTEPROC 131 tristate "Amlogic Meson6/8/8b/8m2 AO ARC remote processor support" 132 depends on HAS_IOMEM 133 depends on (ARM && ARCH_MESON) || COMPILE_TEST 134 select GENERIC_ALLOCATOR 135 help 136 Say m or y here to have support for the AO ARC remote processor 137 on Amlogic Meson6/Meson8/Meson8b/Meson8m2 SoCs. This is 138 typically used for system suspend. 139 If unsure say N. 140 141config PRU_REMOTEPROC 142 tristate "TI PRU remoteproc support" 143 depends on TI_PRUSS 144 default TI_PRUSS 145 help 146 Support for TI PRU remote processors present within a PRU-ICSS 147 subsystem via the remote processor framework. 148 149 Say Y or M here to support the Programmable Realtime Unit (PRU) 150 processors on various TI SoCs. It's safe to say N here if you're 151 not interested in the PRU or if you are unsure. 152 153config QCOM_PIL_INFO 154 tristate 155 156config QCOM_RPROC_COMMON 157 tristate 158 159config QCOM_Q6V5_COMMON 160 tristate 161 depends on ARCH_QCOM 162 depends on QCOM_SMEM 163 164config QCOM_Q6V5_ADSP 165 tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader" 166 depends on OF && ARCH_QCOM 167 depends on QCOM_SMEM 168 depends on RPMSG_QCOM_SMD || 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 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 172 select MFD_SYSCON 173 select QCOM_PIL_INFO 174 select QCOM_MDT_LOADER 175 select QCOM_Q6V5_COMMON 176 select QCOM_RPROC_COMMON 177 help 178 Say y here to support the Peripheral Image Loader 179 for the non-TrustZone part of Qualcomm Technology Inc. ADSP and CDSP 180 remote processors. The TrustZone part is handled by QCOM_Q6V5_PAS 181 driver. 182 183config QCOM_Q6V5_MSS 184 tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support" 185 depends on OF && ARCH_QCOM 186 depends on QCOM_SMEM 187 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 188 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 189 depends on QCOM_SYSMON || QCOM_SYSMON=n 190 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 191 select MFD_SYSCON 192 select QCOM_MDT_LOADER 193 select QCOM_PIL_INFO 194 select QCOM_Q6V5_COMMON 195 select QCOM_RPROC_COMMON 196 select QCOM_SCM 197 help 198 Say y here to support the Qualcomm self-authenticating modem 199 subsystem based on Hexagon V5. The TrustZone based system is 200 handled by QCOM_Q6V5_PAS driver. 201 202config QCOM_Q6V5_PAS 203 tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support" 204 depends on OF && ARCH_QCOM 205 depends on QCOM_SMEM 206 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 207 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 208 depends on QCOM_SYSMON || QCOM_SYSMON=n 209 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 210 select MFD_SYSCON 211 select QCOM_PIL_INFO 212 select QCOM_MDT_LOADER 213 select QCOM_Q6V5_COMMON 214 select QCOM_RPROC_COMMON 215 select QCOM_SCM 216 help 217 Say y here to support the TrustZone based Peripheral Image Loader 218 for the Qualcomm Hexagon v5 based remote processors. This is commonly 219 used to control subsystems such as ADSP (Audio DSP), 220 CDSP (Compute DSP), MPSS (Modem Peripheral SubSystem), and 221 SLPI (Sensor Low Power Island). 222 223config QCOM_Q6V5_WCSS 224 tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader" 225 depends on OF && ARCH_QCOM 226 depends on QCOM_SMEM 227 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 228 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 229 depends on QCOM_SYSMON || QCOM_SYSMON=n 230 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 231 select MFD_SYSCON 232 select QCOM_MDT_LOADER 233 select QCOM_PIL_INFO 234 select QCOM_Q6V5_COMMON 235 select QCOM_RPROC_COMMON 236 select QCOM_SCM 237 help 238 Say y here to support the Qualcomm Peripheral Image Loader for the 239 Hexagon V5 based WCSS remote processors on e.g. IPQ8074. This is 240 a non-TrustZone wireless subsystem. 241 242config QCOM_SYSMON 243 tristate "Qualcomm sysmon driver" 244 depends on RPMSG 245 depends on ARCH_QCOM 246 depends on NET 247 select QCOM_QMI_HELPERS 248 help 249 The sysmon driver implements a sysmon QMI client and a handler for 250 the sys_mon SMD and GLINK channel, which are used for graceful 251 shutdown, retrieving failure information and propagating information 252 about other subsystems being shut down. 253 254 Say y here if your system runs firmware on any other subsystems, e.g. 255 modem or DSP. 256 257config QCOM_WCNSS_PIL 258 tristate "Qualcomm WCNSS Peripheral Image Loader" 259 depends on OF && ARCH_QCOM 260 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 261 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 262 depends on QCOM_SMEM 263 depends on QCOM_SYSMON || QCOM_SYSMON=n 264 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 265 select QCOM_MDT_LOADER 266 select QCOM_PIL_INFO 267 select QCOM_RPROC_COMMON 268 select QCOM_SCM 269 help 270 Say y here to support the Peripheral Image Loader for loading WCNSS 271 firmware and boot the core on e.g. MSM8974, MSM8916. The firmware is 272 verified and booted with the help of the Peripheral Authentication 273 System (PAS) in TrustZone. 274 275config ST_REMOTEPROC 276 tristate "ST remoteproc support" 277 depends on ARCH_STI 278 select MAILBOX 279 select STI_MBOX 280 help 281 Say y here to support ST's adjunct processors via the remote 282 processor framework. 283 This can be either built-in or a loadable module. 284 285config ST_SLIM_REMOTEPROC 286 tristate 287 288config STM32_RPROC 289 tristate "STM32 remoteproc support" 290 depends on ARCH_STM32 291 depends on REMOTEPROC 292 select MAILBOX 293 help 294 Say y here to support STM32 MCU processors via the 295 remote processor framework. 296 297 You want to say y here in order to enable AMP 298 use-cases to run on your platform (dedicated firmware could be 299 offloaded to remote MCU processors using this framework). 300 301 This can be either built-in or a loadable module. 302 303config TI_K3_DSP_REMOTEPROC 304 tristate "TI K3 DSP remoteproc support" 305 depends on ARCH_K3 306 select MAILBOX 307 select OMAP2PLUS_MBOX 308 help 309 Say m here to support TI's C66x and C71x DSP remote processor 310 subsystems on various TI K3 family of SoCs through the remote 311 processor framework. 312 313 It's safe to say N here if you're not interested in utilizing 314 the DSP slave processors. 315 316config TI_K3_R5_REMOTEPROC 317 tristate "TI K3 R5 remoteproc support" 318 depends on ARCH_K3 319 select MAILBOX 320 select OMAP2PLUS_MBOX 321 help 322 Say m here to support TI's R5F remote processor subsystems 323 on various TI K3 family of SoCs through the remote processor 324 framework. 325 326 It's safe to say N here if you're not interested in utilizing 327 a slave processor. 328 329endif # REMOTEPROC 330 331endmenu 332