1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunmenu "Remoteproc drivers" 3*4882a593Smuzhiyun 4*4882a593Smuzhiyunconfig REMOTEPROC 5*4882a593Smuzhiyun bool "Support for Remote Processor subsystem" 6*4882a593Smuzhiyun depends on HAS_DMA 7*4882a593Smuzhiyun select CRC32 8*4882a593Smuzhiyun select FW_LOADER 9*4882a593Smuzhiyun select VIRTIO 10*4882a593Smuzhiyun select WANT_DEV_COREDUMP 11*4882a593Smuzhiyun help 12*4882a593Smuzhiyun Support for remote processors (such as DSP coprocessors). These 13*4882a593Smuzhiyun are mainly used on embedded systems. 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunif REMOTEPROC 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunconfig REMOTEPROC_CDEV 18*4882a593Smuzhiyun bool "Remoteproc character device interface" 19*4882a593Smuzhiyun help 20*4882a593Smuzhiyun Say y here to have a character device interface for the remoteproc 21*4882a593Smuzhiyun framework. Userspace can boot/shutdown remote processors through 22*4882a593Smuzhiyun this interface. 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun It's safe to say N if you don't want to use this interface. 25*4882a593Smuzhiyun 26*4882a593Smuzhiyunconfig IMX_REMOTEPROC 27*4882a593Smuzhiyun tristate "IMX6/7 remoteproc support" 28*4882a593Smuzhiyun depends on ARCH_MXC 29*4882a593Smuzhiyun help 30*4882a593Smuzhiyun Say y here to support iMX's remote processors (Cortex M4 31*4882a593Smuzhiyun on iMX7D) via the remote processor framework. 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun It's safe to say N here. 34*4882a593Smuzhiyun 35*4882a593Smuzhiyunconfig INGENIC_VPU_RPROC 36*4882a593Smuzhiyun tristate "Ingenic JZ47xx VPU remoteproc support" 37*4882a593Smuzhiyun depends on MIPS || COMPILE_TEST 38*4882a593Smuzhiyun help 39*4882a593Smuzhiyun Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun This can be either built-in or a loadable module. 42*4882a593Smuzhiyun If unsure say N. 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunconfig MTK_SCP 45*4882a593Smuzhiyun tristate "Mediatek SCP support" 46*4882a593Smuzhiyun depends on ARCH_MEDIATEK || COMPILE_TEST 47*4882a593Smuzhiyun select RPMSG_MTK_SCP 48*4882a593Smuzhiyun help 49*4882a593Smuzhiyun Say y here to support Mediatek's System Companion Processor (SCP) via 50*4882a593Smuzhiyun the remote processor framework. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun It's safe to say N here. 53*4882a593Smuzhiyun 54*4882a593Smuzhiyunconfig OMAP_REMOTEPROC 55*4882a593Smuzhiyun tristate "OMAP remoteproc support" 56*4882a593Smuzhiyun depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX 57*4882a593Smuzhiyun depends on OMAP_IOMMU 58*4882a593Smuzhiyun select MAILBOX 59*4882a593Smuzhiyun select OMAP2PLUS_MBOX 60*4882a593Smuzhiyun help 61*4882a593Smuzhiyun Say y here to support OMAP's remote processors (dual M3 62*4882a593Smuzhiyun and DSP on OMAP4) via the remote processor framework. 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun Currently only supported on OMAP4. 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun Usually you want to say Y here, in order to enable multimedia 67*4882a593Smuzhiyun use-cases to run on your platform (multimedia codecs are 68*4882a593Smuzhiyun offloaded to remote DSP processors using this framework). 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun It's safe to say N here if you're not interested in multimedia 71*4882a593Smuzhiyun offloading or just want a bare minimum kernel. 72*4882a593Smuzhiyun 73*4882a593Smuzhiyunconfig OMAP_REMOTEPROC_WATCHDOG 74*4882a593Smuzhiyun bool "OMAP remoteproc watchdog timer" 75*4882a593Smuzhiyun depends on OMAP_REMOTEPROC 76*4882a593Smuzhiyun default n 77*4882a593Smuzhiyun help 78*4882a593Smuzhiyun Say Y here to enable watchdog timer for remote processors. 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun This option controls the watchdog functionality for the remote 81*4882a593Smuzhiyun processors in OMAP. Dedicated OMAP DMTimers are used by the remote 82*4882a593Smuzhiyun processors and triggers the timer interrupt upon a watchdog 83*4882a593Smuzhiyun detection. 84*4882a593Smuzhiyun 85*4882a593Smuzhiyunconfig WKUP_M3_RPROC 86*4882a593Smuzhiyun tristate "AMx3xx Wakeup M3 remoteproc support" 87*4882a593Smuzhiyun depends on SOC_AM33XX || SOC_AM43XX 88*4882a593Smuzhiyun help 89*4882a593Smuzhiyun Say y here to support Wakeup M3 remote processor on TI AM33xx 90*4882a593Smuzhiyun and AM43xx family of SoCs. 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed 93*4882a593Smuzhiyun for deep CPUIdle states on AM33xx SoCs. Allows for loading of the 94*4882a593Smuzhiyun firmware onto these remote processors. 95*4882a593Smuzhiyun If unsure say N. 96*4882a593Smuzhiyun 97*4882a593Smuzhiyunconfig DA8XX_REMOTEPROC 98*4882a593Smuzhiyun tristate "DA8xx/OMAP-L13x remoteproc support" 99*4882a593Smuzhiyun depends on ARCH_DAVINCI_DA8XX 100*4882a593Smuzhiyun depends on DMA_CMA 101*4882a593Smuzhiyun help 102*4882a593Smuzhiyun Say y here to support DA8xx/OMAP-L13x remote processors via the 103*4882a593Smuzhiyun remote processor framework. 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun You want to say y here in order to enable AMP 106*4882a593Smuzhiyun use-cases to run on your platform (multimedia codecs are 107*4882a593Smuzhiyun offloaded to remote DSP processors using this framework). 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun This module controls the name of the firmware file that gets 110*4882a593Smuzhiyun loaded on the DSP. This file must reside in the /lib/firmware 111*4882a593Smuzhiyun directory. It can be specified via the module parameter 112*4882a593Smuzhiyun da8xx_fw_name=<filename>, and if not specified will default to 113*4882a593Smuzhiyun "rproc-dsp-fw". 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun It's safe to say n here if you're not interested in multimedia 116*4882a593Smuzhiyun offloading. 117*4882a593Smuzhiyun 118*4882a593Smuzhiyunconfig KEYSTONE_REMOTEPROC 119*4882a593Smuzhiyun tristate "Keystone Remoteproc support" 120*4882a593Smuzhiyun depends on ARCH_KEYSTONE 121*4882a593Smuzhiyun help 122*4882a593Smuzhiyun Say Y here here to support Keystone remote processors (DSP) 123*4882a593Smuzhiyun via the remote processor framework. 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun It's safe to say N here if you're not interested in the Keystone 126*4882a593Smuzhiyun DSPs or just want to use a bare minimum kernel. 127*4882a593Smuzhiyun 128*4882a593Smuzhiyunconfig QCOM_PIL_INFO 129*4882a593Smuzhiyun tristate 130*4882a593Smuzhiyun 131*4882a593Smuzhiyunconfig QCOM_RPROC_COMMON 132*4882a593Smuzhiyun tristate 133*4882a593Smuzhiyun 134*4882a593Smuzhiyunconfig QCOM_Q6V5_COMMON 135*4882a593Smuzhiyun tristate 136*4882a593Smuzhiyun depends on ARCH_QCOM 137*4882a593Smuzhiyun depends on QCOM_SMEM 138*4882a593Smuzhiyun 139*4882a593Smuzhiyunconfig QCOM_Q6V5_ADSP 140*4882a593Smuzhiyun tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader" 141*4882a593Smuzhiyun depends on OF && ARCH_QCOM 142*4882a593Smuzhiyun depends on QCOM_SMEM 143*4882a593Smuzhiyun depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 144*4882a593Smuzhiyun depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 145*4882a593Smuzhiyun depends on QCOM_SYSMON || QCOM_SYSMON=n 146*4882a593Smuzhiyun select MFD_SYSCON 147*4882a593Smuzhiyun select QCOM_PIL_INFO 148*4882a593Smuzhiyun select QCOM_MDT_LOADER 149*4882a593Smuzhiyun select QCOM_Q6V5_COMMON 150*4882a593Smuzhiyun select QCOM_RPROC_COMMON 151*4882a593Smuzhiyun help 152*4882a593Smuzhiyun Say y here to support the Peripheral Image Loader 153*4882a593Smuzhiyun for the Qualcomm Technology Inc. ADSP remote processors. 154*4882a593Smuzhiyun 155*4882a593Smuzhiyunconfig QCOM_Q6V5_MSS 156*4882a593Smuzhiyun tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support" 157*4882a593Smuzhiyun depends on OF && ARCH_QCOM 158*4882a593Smuzhiyun depends on QCOM_SMEM 159*4882a593Smuzhiyun depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 160*4882a593Smuzhiyun depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 161*4882a593Smuzhiyun depends on QCOM_SYSMON || QCOM_SYSMON=n 162*4882a593Smuzhiyun select MFD_SYSCON 163*4882a593Smuzhiyun select QCOM_MDT_LOADER 164*4882a593Smuzhiyun select QCOM_PIL_INFO 165*4882a593Smuzhiyun select QCOM_Q6V5_COMMON 166*4882a593Smuzhiyun select QCOM_RPROC_COMMON 167*4882a593Smuzhiyun select QCOM_SCM 168*4882a593Smuzhiyun help 169*4882a593Smuzhiyun Say y here to support the Qualcomm self-authenticating modem 170*4882a593Smuzhiyun subsystem based on Hexagon V5. 171*4882a593Smuzhiyun 172*4882a593Smuzhiyunconfig QCOM_Q6V5_PAS 173*4882a593Smuzhiyun tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support" 174*4882a593Smuzhiyun depends on OF && ARCH_QCOM 175*4882a593Smuzhiyun depends on QCOM_SMEM 176*4882a593Smuzhiyun depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 177*4882a593Smuzhiyun depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 178*4882a593Smuzhiyun depends on QCOM_SYSMON || QCOM_SYSMON=n 179*4882a593Smuzhiyun select MFD_SYSCON 180*4882a593Smuzhiyun select QCOM_PIL_INFO 181*4882a593Smuzhiyun select QCOM_MDT_LOADER 182*4882a593Smuzhiyun select QCOM_Q6V5_COMMON 183*4882a593Smuzhiyun select QCOM_RPROC_COMMON 184*4882a593Smuzhiyun select QCOM_SCM 185*4882a593Smuzhiyun help 186*4882a593Smuzhiyun Say y here to support the TrustZone based Peripherial Image Loader 187*4882a593Smuzhiyun for the Qualcomm Hexagon v5 based remote processors. This is commonly 188*4882a593Smuzhiyun used to control subsystems such as ADSP, Compute and Sensor. 189*4882a593Smuzhiyun 190*4882a593Smuzhiyunconfig QCOM_Q6V5_WCSS 191*4882a593Smuzhiyun tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader" 192*4882a593Smuzhiyun depends on OF && ARCH_QCOM 193*4882a593Smuzhiyun depends on QCOM_SMEM 194*4882a593Smuzhiyun depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 195*4882a593Smuzhiyun depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 196*4882a593Smuzhiyun depends on QCOM_SYSMON || QCOM_SYSMON=n 197*4882a593Smuzhiyun select MFD_SYSCON 198*4882a593Smuzhiyun select QCOM_MDT_LOADER 199*4882a593Smuzhiyun select QCOM_PIL_INFO 200*4882a593Smuzhiyun select QCOM_Q6V5_COMMON 201*4882a593Smuzhiyun select QCOM_RPROC_COMMON 202*4882a593Smuzhiyun select QCOM_SCM 203*4882a593Smuzhiyun help 204*4882a593Smuzhiyun Say y here to support the Qualcomm Peripheral Image Loader for the 205*4882a593Smuzhiyun Hexagon V5 based WCSS remote processors. 206*4882a593Smuzhiyun 207*4882a593Smuzhiyunconfig QCOM_SYSMON 208*4882a593Smuzhiyun tristate "Qualcomm sysmon driver" 209*4882a593Smuzhiyun depends on RPMSG 210*4882a593Smuzhiyun depends on ARCH_QCOM 211*4882a593Smuzhiyun depends on NET 212*4882a593Smuzhiyun select QCOM_QMI_HELPERS 213*4882a593Smuzhiyun help 214*4882a593Smuzhiyun The sysmon driver implements a sysmon QMI client and a handler for 215*4882a593Smuzhiyun the sys_mon SMD and GLINK channel, which are used for graceful 216*4882a593Smuzhiyun shutdown, retrieving failure information and propagating information 217*4882a593Smuzhiyun about other subsystems being shut down. 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun Say y here if your system runs firmware on any other subsystems, e.g. 220*4882a593Smuzhiyun modem or DSP. 221*4882a593Smuzhiyun 222*4882a593Smuzhiyunconfig QCOM_WCNSS_PIL 223*4882a593Smuzhiyun tristate "Qualcomm WCNSS Peripheral Image Loader" 224*4882a593Smuzhiyun depends on OF && ARCH_QCOM 225*4882a593Smuzhiyun depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n) 226*4882a593Smuzhiyun depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n 227*4882a593Smuzhiyun depends on QCOM_SMEM 228*4882a593Smuzhiyun depends on QCOM_SYSMON || QCOM_SYSMON=n 229*4882a593Smuzhiyun select QCOM_MDT_LOADER 230*4882a593Smuzhiyun select QCOM_PIL_INFO 231*4882a593Smuzhiyun select QCOM_RPROC_COMMON 232*4882a593Smuzhiyun select QCOM_SCM 233*4882a593Smuzhiyun help 234*4882a593Smuzhiyun Say y here to support the Peripheral Image Loader for the Qualcomm 235*4882a593Smuzhiyun Wireless Connectivity Subsystem. 236*4882a593Smuzhiyun 237*4882a593Smuzhiyunconfig ST_REMOTEPROC 238*4882a593Smuzhiyun tristate "ST remoteproc support" 239*4882a593Smuzhiyun depends on ARCH_STI 240*4882a593Smuzhiyun select MAILBOX 241*4882a593Smuzhiyun select STI_MBOX 242*4882a593Smuzhiyun help 243*4882a593Smuzhiyun Say y here to support ST's adjunct processors via the remote 244*4882a593Smuzhiyun processor framework. 245*4882a593Smuzhiyun This can be either built-in or a loadable module. 246*4882a593Smuzhiyun 247*4882a593Smuzhiyunconfig ST_SLIM_REMOTEPROC 248*4882a593Smuzhiyun tristate 249*4882a593Smuzhiyun 250*4882a593Smuzhiyunconfig STM32_RPROC 251*4882a593Smuzhiyun tristate "STM32 remoteproc support" 252*4882a593Smuzhiyun depends on ARCH_STM32 253*4882a593Smuzhiyun depends on REMOTEPROC 254*4882a593Smuzhiyun select MAILBOX 255*4882a593Smuzhiyun help 256*4882a593Smuzhiyun Say y here to support STM32 MCU processors via the 257*4882a593Smuzhiyun remote processor framework. 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun You want to say y here in order to enable AMP 260*4882a593Smuzhiyun use-cases to run on your platform (dedicated firmware could be 261*4882a593Smuzhiyun offloaded to remote MCU processors using this framework). 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun This can be either built-in or a loadable module. 264*4882a593Smuzhiyun 265*4882a593Smuzhiyunconfig TI_K3_DSP_REMOTEPROC 266*4882a593Smuzhiyun tristate "TI K3 DSP remoteproc support" 267*4882a593Smuzhiyun depends on ARCH_K3 268*4882a593Smuzhiyun select MAILBOX 269*4882a593Smuzhiyun select OMAP2PLUS_MBOX 270*4882a593Smuzhiyun help 271*4882a593Smuzhiyun Say m here to support TI's C66x and C71x DSP remote processor 272*4882a593Smuzhiyun subsystems on various TI K3 family of SoCs through the remote 273*4882a593Smuzhiyun processor framework. 274*4882a593Smuzhiyun 275*4882a593Smuzhiyun It's safe to say N here if you're not interested in utilizing 276*4882a593Smuzhiyun the DSP slave processors. 277*4882a593Smuzhiyun 278*4882a593Smuzhiyunconfig TI_K3_R5_REMOTEPROC 279*4882a593Smuzhiyun tristate "TI K3 R5 remoteproc support" 280*4882a593Smuzhiyun depends on ARCH_K3 281*4882a593Smuzhiyun select MAILBOX 282*4882a593Smuzhiyun select OMAP2PLUS_MBOX 283*4882a593Smuzhiyun help 284*4882a593Smuzhiyun Say m here to support TI's R5F remote processor subsystems 285*4882a593Smuzhiyun on various TI K3 family of SoCs through the remote processor 286*4882a593Smuzhiyun framework. 287*4882a593Smuzhiyun 288*4882a593Smuzhiyun It's safe to say N here if you're not interested in utilizing 289*4882a593Smuzhiyun a slave processor. 290*4882a593Smuzhiyun 291*4882a593Smuzhiyunendif # REMOTEPROC 292*4882a593Smuzhiyun 293*4882a593Smuzhiyunendmenu 294