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