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 PRU_REMOTEPROC 131 tristate "TI PRU remoteproc support" 132 depends on TI_PRUSS 133 default TI_PRUSS 134 help 135 Support for TI PRU remote processors present within a PRU-ICSS 136 subsystem via the remote processor framework. 137 138 Say Y or M here to support the Programmable Realtime Unit (PRU) 139 processors on various TI SoCs. It's safe to say N here if you're 140 not interested in the PRU or if you are unsure. 141 142config QCOM_PIL_INFO 143 tristate 144 145config QCOM_RPROC_COMMON 146 tristate 147 148config QCOM_Q6V5_COMMON 149 tristate 150 depends on ARCH_QCOM 151 depends on QCOM_SMEM 152 153config QCOM_Q6V5_ADSP 154 tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader" 155 depends on OF && ARCH_QCOM 156 depends on QCOM_SMEM 157 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 158 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 159 depends on QCOM_SYSMON || QCOM_SYSMON=n 160 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 161 select MFD_SYSCON 162 select QCOM_PIL_INFO 163 select QCOM_MDT_LOADER 164 select QCOM_Q6V5_COMMON 165 select QCOM_RPROC_COMMON 166 help 167 Say y here to support the Peripheral Image Loader 168 for the non-TrustZone part of Qualcomm Technology Inc. ADSP and CDSP 169 remote processors. The TrustZone part is handled by QCOM_Q6V5_PAS 170 driver. 171 172config QCOM_Q6V5_MSS 173 tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support" 174 depends on OF && ARCH_QCOM 175 depends on QCOM_SMEM 176 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 177 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 178 depends on QCOM_SYSMON || QCOM_SYSMON=n 179 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 180 select MFD_SYSCON 181 select QCOM_MDT_LOADER 182 select QCOM_PIL_INFO 183 select QCOM_Q6V5_COMMON 184 select QCOM_RPROC_COMMON 185 select QCOM_SCM 186 help 187 Say y here to support the Qualcomm self-authenticating modem 188 subsystem based on Hexagon V5. The TrustZone based system is 189 handled by QCOM_Q6V5_PAS driver. 190 191config QCOM_Q6V5_PAS 192 tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support" 193 depends on OF && ARCH_QCOM 194 depends on QCOM_SMEM 195 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 196 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 197 depends on QCOM_SYSMON || QCOM_SYSMON=n 198 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 199 select MFD_SYSCON 200 select QCOM_PIL_INFO 201 select QCOM_MDT_LOADER 202 select QCOM_Q6V5_COMMON 203 select QCOM_RPROC_COMMON 204 select QCOM_SCM 205 help 206 Say y here to support the TrustZone based Peripheral Image Loader 207 for the Qualcomm Hexagon v5 based remote processors. This is commonly 208 used to control subsystems such as ADSP (Audio DSP), 209 CDSP (Compute DSP), MPSS (Modem Peripheral SubSystem), and 210 SLPI (Sensor Low Power Island). 211 212config QCOM_Q6V5_WCSS 213 tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader" 214 depends on OF && ARCH_QCOM 215 depends on QCOM_SMEM 216 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 217 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 218 depends on QCOM_SYSMON || QCOM_SYSMON=n 219 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 220 select MFD_SYSCON 221 select QCOM_MDT_LOADER 222 select QCOM_PIL_INFO 223 select QCOM_Q6V5_COMMON 224 select QCOM_RPROC_COMMON 225 select QCOM_SCM 226 help 227 Say y here to support the Qualcomm Peripheral Image Loader for the 228 Hexagon V5 based WCSS remote processors on e.g. IPQ8074. This is 229 a non-TrustZone wireless subsystem. 230 231config QCOM_SYSMON 232 tristate "Qualcomm sysmon driver" 233 depends on RPMSG 234 depends on ARCH_QCOM 235 depends on NET 236 select QCOM_QMI_HELPERS 237 help 238 The sysmon driver implements a sysmon QMI client and a handler for 239 the sys_mon SMD and GLINK channel, which are used for graceful 240 shutdown, retrieving failure information and propagating information 241 about other subsystems being shut down. 242 243 Say y here if your system runs firmware on any other subsystems, e.g. 244 modem or DSP. 245 246config QCOM_WCNSS_PIL 247 tristate "Qualcomm WCNSS Peripheral Image Loader" 248 depends on OF && ARCH_QCOM 249 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 250 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 251 depends on QCOM_SMEM 252 depends on QCOM_SYSMON || QCOM_SYSMON=n 253 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n 254 select QCOM_MDT_LOADER 255 select QCOM_PIL_INFO 256 select QCOM_RPROC_COMMON 257 select QCOM_SCM 258 help 259 Say y here to support the Peripheral Image Loader for loading WCNSS 260 firmware and boot the core on e.g. MSM8974, MSM8916. The firmware is 261 verified and booted with the help of the Peripheral Authentication 262 System (PAS) in TrustZone. 263 264config ST_REMOTEPROC 265 tristate "ST remoteproc support" 266 depends on ARCH_STI 267 select MAILBOX 268 select STI_MBOX 269 help 270 Say y here to support ST's adjunct processors via the remote 271 processor framework. 272 This can be either built-in or a loadable module. 273 274config ST_SLIM_REMOTEPROC 275 tristate 276 277config STM32_RPROC 278 tristate "STM32 remoteproc support" 279 depends on ARCH_STM32 280 depends on REMOTEPROC 281 select MAILBOX 282 help 283 Say y here to support STM32 MCU processors via the 284 remote processor framework. 285 286 You want to say y here in order to enable AMP 287 use-cases to run on your platform (dedicated firmware could be 288 offloaded to remote MCU processors using this framework). 289 290 This can be either built-in or a loadable module. 291 292config TI_K3_DSP_REMOTEPROC 293 tristate "TI K3 DSP remoteproc support" 294 depends on ARCH_K3 295 select MAILBOX 296 select OMAP2PLUS_MBOX 297 help 298 Say m here to support TI's C66x and C71x DSP remote processor 299 subsystems on various TI K3 family of SoCs through the remote 300 processor framework. 301 302 It's safe to say N here if you're not interested in utilizing 303 the DSP slave processors. 304 305config TI_K3_R5_REMOTEPROC 306 tristate "TI K3 R5 remoteproc support" 307 depends on ARCH_K3 308 select MAILBOX 309 select OMAP2PLUS_MBOX 310 help 311 Say m here to support TI's R5F remote processor subsystems 312 on various TI K3 family of SoCs through the remote processor 313 framework. 314 315 It's safe to say N here if you're not interested in utilizing 316 a slave processor. 317 318endif # REMOTEPROC 319 320endmenu 321