383 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2menu "Remoteproc drivers"3 4config REMOTEPROC5 bool "Support for Remote Processor subsystem"6 depends on HAS_DMA7 select CRC328 select FW_LOADER9 select VIRTIO10 select WANT_DEV_COREDUMP11 help12 Support for remote processors (such as DSP coprocessors). These13 are mainly used on embedded systems.14 15if REMOTEPROC16 17config REMOTEPROC_CDEV18 bool "Remoteproc character device interface"19 help20 Say y here to have a character device interface for the remoteproc21 framework. Userspace can boot/shutdown remote processors through22 this interface.23 24 It's safe to say N if you don't want to use this interface.25 26config IMX_REMOTEPROC27 tristate "i.MX remoteproc support"28 depends on ARCH_MXC29 depends on HAVE_ARM_SMCCC30 select MAILBOX31 help32 Say y here to support iMX's remote processors via the remote33 processor framework.34 35 It's safe to say N here.36 37config IMX_DSP_REMOTEPROC38 tristate "i.MX DSP remoteproc support"39 depends on ARCH_MXC40 depends on HAVE_ARM_SMCCC41 select MAILBOX42 help43 Say y here to support iMX's DSP remote processors via the remote44 processor framework.45 46 It's safe to say N here.47 48config INGENIC_VPU_RPROC49 tristate "Ingenic JZ47xx VPU remoteproc support"50 depends on MIPS || COMPILE_TEST51 help52 Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic.53 54 This can be either built-in or a loadable module.55 If unsure say N.56 57config MTK_SCP58 tristate "Mediatek SCP support"59 depends on ARCH_MEDIATEK || COMPILE_TEST60 select RPMSG_MTK_SCP61 help62 Say y here to support Mediatek's System Companion Processor (SCP) via63 the remote processor framework.64 65 It's safe to say N here.66 67config OMAP_REMOTEPROC68 tristate "OMAP remoteproc support"69 depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX70 depends on OMAP_IOMMU71 select MAILBOX72 select OMAP2PLUS_MBOX73 help74 Say y here to support OMAP's remote processors (dual M375 and DSP on OMAP4) via the remote processor framework.76 77 Currently only supported on OMAP4.78 79 Usually you want to say Y here, in order to enable multimedia80 use-cases to run on your platform (multimedia codecs are81 offloaded to remote DSP processors using this framework).82 83 It's safe to say N here if you're not interested in multimedia84 offloading or just want a bare minimum kernel.85 86config OMAP_REMOTEPROC_WATCHDOG87 bool "OMAP remoteproc watchdog timer"88 depends on OMAP_REMOTEPROC89 default n90 help91 Say Y here to enable watchdog timer for remote processors.92 93 This option controls the watchdog functionality for the remote94 processors in OMAP. Dedicated OMAP DMTimers are used by the remote95 processors and triggers the timer interrupt upon a watchdog96 detection.97 98config WKUP_M3_RPROC99 tristate "AMx3xx Wakeup M3 remoteproc support"100 depends on SOC_AM33XX || SOC_AM43XX101 help102 Say y here to support Wakeup M3 remote processor on TI AM33xx103 and AM43xx family of SoCs.104 105 Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed106 for deep CPUIdle states on AM33xx SoCs. Allows for loading of the107 firmware onto these remote processors.108 If unsure say N.109 110config DA8XX_REMOTEPROC111 tristate "DA8xx/OMAP-L13x remoteproc support"112 depends on ARCH_DAVINCI_DA8XX113 depends on DMA_CMA114 help115 Say y here to support DA8xx/OMAP-L13x remote processors via the116 remote processor framework.117 118 You want to say y here in order to enable AMP119 use-cases to run on your platform (multimedia codecs are120 offloaded to remote DSP processors using this framework).121 122 This module controls the name of the firmware file that gets123 loaded on the DSP. This file must reside in the /lib/firmware124 directory. It can be specified via the module parameter125 da8xx_fw_name=<filename>, and if not specified will default to126 "rproc-dsp-fw".127 128 It's safe to say n here if you're not interested in multimedia129 offloading.130 131config KEYSTONE_REMOTEPROC132 tristate "Keystone Remoteproc support"133 depends on ARCH_KEYSTONE134 help135 Say Y here here to support Keystone remote processors (DSP)136 via the remote processor framework.137 138 It's safe to say N here if you're not interested in the Keystone139 DSPs or just want to use a bare minimum kernel.140 141config MESON_MX_AO_ARC_REMOTEPROC142 tristate "Amlogic Meson6/8/8b/8m2 AO ARC remote processor support"143 depends on HAS_IOMEM144 depends on (ARM && ARCH_MESON) || COMPILE_TEST145 select GENERIC_ALLOCATOR146 help147 Say m or y here to have support for the AO ARC remote processor148 on Amlogic Meson6/Meson8/Meson8b/Meson8m2 SoCs. This is149 typically used for system suspend.150 If unsure say N.151 152config PRU_REMOTEPROC153 tristate "TI PRU remoteproc support"154 depends on TI_PRUSS155 default TI_PRUSS156 help157 Support for TI PRU remote processors present within a PRU-ICSS158 subsystem via the remote processor framework.159 160 Say Y or M here to support the Programmable Realtime Unit (PRU)161 processors on various TI SoCs. It's safe to say N here if you're162 not interested in the PRU or if you are unsure.163 164config QCOM_PIL_INFO165 tristate166 167config QCOM_RPROC_COMMON168 tristate169 select AUXILIARY_BUS170 171config QCOM_Q6V5_COMMON172 tristate173 depends on ARCH_QCOM174 depends on QCOM_SMEM175 176config QCOM_Q6V5_ADSP177 tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader"178 depends on OF && ARCH_QCOM179 depends on QCOM_SMEM180 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n181 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n182 depends on QCOM_SYSMON || QCOM_SYSMON=n183 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n184 depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n185 select MFD_SYSCON186 select QCOM_PIL_INFO187 select QCOM_MDT_LOADER188 select QCOM_Q6V5_COMMON189 select QCOM_RPROC_COMMON190 help191 Say y here to support the Peripheral Image Loader192 for the non-TrustZone part of Qualcomm Technology Inc. ADSP and CDSP193 remote processors. The TrustZone part is handled by QCOM_Q6V5_PAS194 driver.195 196config QCOM_Q6V5_MSS197 tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"198 depends on OF && ARCH_QCOM199 depends on QCOM_SMEM200 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n201 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n202 depends on QCOM_SYSMON || QCOM_SYSMON=n203 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n204 depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n205 select MFD_SYSCON206 select QCOM_MDT_LOADER207 select QCOM_PIL_INFO208 select QCOM_Q6V5_COMMON209 select QCOM_RPROC_COMMON210 select QCOM_SCM211 help212 Say y here to support the Qualcomm self-authenticating modem213 subsystem based on Hexagon V5. The TrustZone based system is214 handled by QCOM_Q6V5_PAS driver.215 216config QCOM_Q6V5_PAS217 tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"218 depends on OF && ARCH_QCOM219 depends on QCOM_SMEM220 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n221 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n222 depends on QCOM_SYSMON || QCOM_SYSMON=n223 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n224 depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n225 select MFD_SYSCON226 select QCOM_PIL_INFO227 select QCOM_MDT_LOADER228 select QCOM_Q6V5_COMMON229 select QCOM_RPROC_COMMON230 select QCOM_SCM231 help232 Say y here to support the TrustZone based Peripheral Image Loader233 for the Qualcomm Hexagon v5 based remote processors. This is commonly234 used to control subsystems such as ADSP (Audio DSP),235 CDSP (Compute DSP), MPSS (Modem Peripheral SubSystem), and236 SLPI (Sensor Low Power Island).237 238config QCOM_Q6V5_WCSS239 tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"240 depends on OF && ARCH_QCOM241 depends on QCOM_SMEM242 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n243 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n244 depends on QCOM_SYSMON || QCOM_SYSMON=n245 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n246 depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n247 select MFD_SYSCON248 select QCOM_MDT_LOADER249 select QCOM_PIL_INFO250 select QCOM_Q6V5_COMMON251 select QCOM_RPROC_COMMON252 select QCOM_SCM253 help254 Say y here to support the Qualcomm Peripheral Image Loader for the255 Hexagon V5 based WCSS remote processors on e.g. IPQ8074. This is256 a non-TrustZone wireless subsystem.257 258config QCOM_SYSMON259 tristate "Qualcomm sysmon driver"260 depends on RPMSG261 depends on ARCH_QCOM262 depends on NET263 select QCOM_QMI_HELPERS264 help265 The sysmon driver implements a sysmon QMI client and a handler for266 the sys_mon SMD and GLINK channel, which are used for graceful267 shutdown, retrieving failure information and propagating information268 about other subsystems being shut down.269 270 Say y here if your system runs firmware on any other subsystems, e.g.271 modem or DSP.272 273config QCOM_WCNSS_PIL274 tristate "Qualcomm WCNSS Peripheral Image Loader"275 depends on OF && ARCH_QCOM276 depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n277 depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n278 depends on QCOM_SMEM279 depends on QCOM_SYSMON || QCOM_SYSMON=n280 depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n281 select QCOM_MDT_LOADER282 select QCOM_PIL_INFO283 select QCOM_RPROC_COMMON284 select QCOM_SCM285 help286 Say y here to support the Peripheral Image Loader for loading WCNSS287 firmware and boot the core on e.g. MSM8974, MSM8916. The firmware is288 verified and booted with the help of the Peripheral Authentication289 System (PAS) in TrustZone.290 291config RCAR_REMOTEPROC292 tristate "Renesas R-Car Gen3 remoteproc support"293 depends on ARCH_RENESAS || COMPILE_TEST294 help295 Say y here to support R-Car realtime processor via the296 remote processor framework. An ELF firmware can be loaded297 thanks to sysfs remoteproc entries. The remote processor298 can be started and stopped.299 This can be either built-in or a loadable module.300 If compiled as module (M), the module name is rcar_rproc.301 302config ST_REMOTEPROC303 tristate "ST remoteproc support"304 depends on ARCH_STI305 select MAILBOX306 select STI_MBOX307 help308 Say y here to support ST's adjunct processors via the remote309 processor framework.310 This can be either built-in or a loadable module.311 312config ST_SLIM_REMOTEPROC313 tristate314 315config STM32_RPROC316 tristate "STM32 remoteproc support"317 depends on ARCH_STM32 || COMPILE_TEST318 depends on REMOTEPROC319 select MAILBOX320 help321 Say y here to support STM32 MCU processors via the322 remote processor framework.323 324 You want to say y here in order to enable AMP325 use-cases to run on your platform (dedicated firmware could be326 offloaded to remote MCU processors using this framework).327 328 This can be either built-in or a loadable module.329 330config TI_K3_DSP_REMOTEPROC331 tristate "TI K3 DSP remoteproc support"332 depends on ARCH_K3333 depends on OMAP2PLUS_MBOX334 help335 Say m here to support TI's C66x and C71x DSP remote processor336 subsystems on various TI K3 family of SoCs through the remote337 processor framework.338 339 It's safe to say N here if you're not interested in utilizing340 the DSP slave processors.341 342config TI_K3_M4_REMOTEPROC343 tristate "TI K3 M4 remoteproc support"344 depends on ARCH_OMAP2PLUS || ARCH_K3345 select MAILBOX346 select OMAP2PLUS_MBOX347 help348 Say m here to support TI's M4 remote processor subsystems349 on various TI K3 family of SoCs through the remote processor350 framework.351 352 It's safe to say N here if you're not interested in utilizing353 a remote processor.354 355config TI_K3_R5_REMOTEPROC356 tristate "TI K3 R5 remoteproc support"357 depends on ARCH_K3358 depends on OMAP2PLUS_MBOX359 help360 Say m here to support TI's R5F remote processor subsystems361 on various TI K3 family of SoCs through the remote processor362 framework.363 364 It's safe to say N here if you're not interested in utilizing365 a slave processor.366 367config XLNX_R5_REMOTEPROC368 tristate "Xilinx R5 remoteproc support"369 depends on PM && ARCH_ZYNQMP370 select ZYNQMP_FIRMWARE371 select RPMSG_VIRTIO372 select MAILBOX373 select ZYNQMP_IPI_MBOX374 help375 Say y or m here to support Xilinx R5 remote processors via the remote376 processor framework.377 378 It's safe to say N if not interested in using RPU r5f cores.379 380endif # REMOTEPROC381 382endmenu383