Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menu "Remoteproc drivers"
0003 
0004 config REMOTEPROC
0005         bool "Support for Remote Processor subsystem"
0006         depends on HAS_DMA
0007         select CRC32
0008         select FW_LOADER
0009         select VIRTIO
0010         select WANT_DEV_COREDUMP
0011         help
0012           Support for remote processors (such as DSP coprocessors). These
0013           are mainly used on embedded systems.
0014 
0015 if REMOTEPROC
0016 
0017 config REMOTEPROC_CDEV
0018         bool "Remoteproc character device interface"
0019         help
0020           Say y here to have a character device interface for the remoteproc
0021           framework. Userspace can boot/shutdown remote processors through
0022           this interface.
0023 
0024           It's safe to say N if you don't want to use this interface.
0025 
0026 config IMX_REMOTEPROC
0027         tristate "i.MX remoteproc support"
0028         depends on ARCH_MXC
0029         depends on HAVE_ARM_SMCCC
0030         select MAILBOX
0031         help
0032           Say y here to support iMX's remote processors via the remote
0033           processor framework.
0034 
0035           It's safe to say N here.
0036 
0037 config IMX_DSP_REMOTEPROC
0038         tristate "i.MX DSP remoteproc support"
0039         depends on ARCH_MXC
0040         depends on HAVE_ARM_SMCCC
0041         select MAILBOX
0042         help
0043           Say y here to support iMX's DSP remote processors via the remote
0044           processor framework.
0045 
0046           It's safe to say N here.
0047 
0048 config INGENIC_VPU_RPROC
0049         tristate "Ingenic JZ47xx VPU remoteproc support"
0050         depends on MIPS || COMPILE_TEST
0051         help
0052           Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic.
0053 
0054           This can be either built-in or a loadable module.
0055           If unsure say N.
0056 
0057 config MTK_SCP
0058         tristate "Mediatek SCP support"
0059         depends on ARCH_MEDIATEK || COMPILE_TEST
0060         select RPMSG_MTK_SCP
0061         help
0062           Say y here to support Mediatek's System Companion Processor (SCP) via
0063           the remote processor framework.
0064 
0065           It's safe to say N here.
0066 
0067 config OMAP_REMOTEPROC
0068         tristate "OMAP remoteproc support"
0069         depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX
0070         depends on OMAP_IOMMU
0071         select MAILBOX
0072         select OMAP2PLUS_MBOX
0073         help
0074           Say y here to support OMAP's remote processors (dual M3
0075           and DSP on OMAP4) via the remote processor framework.
0076 
0077           Currently only supported on OMAP4.
0078 
0079           Usually you want to say Y here, in order to enable multimedia
0080           use-cases to run on your platform (multimedia codecs are
0081           offloaded to remote DSP processors using this framework).
0082 
0083           It's safe to say N here if you're not interested in multimedia
0084           offloading or just want a bare minimum kernel.
0085 
0086 config OMAP_REMOTEPROC_WATCHDOG
0087         bool "OMAP remoteproc watchdog timer"
0088         depends on OMAP_REMOTEPROC
0089         default n
0090         help
0091           Say Y here to enable watchdog timer for remote processors.
0092 
0093           This option controls the watchdog functionality for the remote
0094           processors in OMAP. Dedicated OMAP DMTimers are used by the remote
0095           processors and triggers the timer interrupt upon a watchdog
0096           detection.
0097 
0098 config WKUP_M3_RPROC
0099         tristate "AMx3xx Wakeup M3 remoteproc support"
0100         depends on SOC_AM33XX || SOC_AM43XX
0101         help
0102           Say y here to support Wakeup M3 remote processor on TI AM33xx
0103           and AM43xx family of SoCs.
0104 
0105           Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed
0106           for deep CPUIdle states on AM33xx SoCs. Allows for loading of the
0107           firmware onto these remote processors.
0108           If unsure say N.
0109 
0110 config DA8XX_REMOTEPROC
0111         tristate "DA8xx/OMAP-L13x remoteproc support"
0112         depends on ARCH_DAVINCI_DA8XX
0113         depends on DMA_CMA
0114         help
0115           Say y here to support DA8xx/OMAP-L13x remote processors via the
0116           remote processor framework.
0117 
0118           You want to say y here in order to enable AMP
0119           use-cases to run on your platform (multimedia codecs are
0120           offloaded to remote DSP processors using this framework).
0121 
0122           This module controls the name of the firmware file that gets
0123           loaded on the DSP.  This file must reside in the /lib/firmware
0124           directory.  It can be specified via the module parameter
0125           da8xx_fw_name=<filename>, and if not specified will default to
0126           "rproc-dsp-fw".
0127 
0128           It's safe to say n here if you're not interested in multimedia
0129           offloading.
0130 
0131 config KEYSTONE_REMOTEPROC
0132         tristate "Keystone Remoteproc support"
0133         depends on ARCH_KEYSTONE
0134         help
0135           Say Y here here to support Keystone remote processors (DSP)
0136           via the remote processor framework.
0137 
0138           It's safe to say N here if you're not interested in the Keystone
0139           DSPs or just want to use a bare minimum kernel.
0140 
0141 config MESON_MX_AO_ARC_REMOTEPROC
0142         tristate "Amlogic Meson6/8/8b/8m2 AO ARC remote processor support"
0143         depends on HAS_IOMEM
0144         depends on (ARM && ARCH_MESON) || COMPILE_TEST
0145         select GENERIC_ALLOCATOR
0146         help
0147           Say m or y here to have support for the AO ARC remote processor
0148           on Amlogic Meson6/Meson8/Meson8b/Meson8m2 SoCs. This is
0149           typically used for system suspend.
0150           If unsure say N.
0151 
0152 config PRU_REMOTEPROC
0153         tristate "TI PRU remoteproc support"
0154         depends on TI_PRUSS
0155         default TI_PRUSS
0156         help
0157           Support for TI PRU remote processors present within a PRU-ICSS
0158           subsystem via the remote processor framework.
0159 
0160           Say Y or M here to support the Programmable Realtime Unit (PRU)
0161           processors on various TI SoCs. It's safe to say N here if you're
0162           not interested in the PRU or if you are unsure.
0163 
0164 config QCOM_PIL_INFO
0165         tristate
0166 
0167 config QCOM_RPROC_COMMON
0168         tristate
0169 
0170 config QCOM_Q6V5_COMMON
0171         tristate
0172         depends on ARCH_QCOM
0173         depends on QCOM_SMEM
0174 
0175 config QCOM_Q6V5_ADSP
0176         tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader"
0177         depends on OF && ARCH_QCOM
0178         depends on QCOM_SMEM
0179         depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
0180         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
0181         depends on QCOM_SYSMON || QCOM_SYSMON=n
0182         depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
0183         depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
0184         select MFD_SYSCON
0185         select QCOM_PIL_INFO
0186         select QCOM_MDT_LOADER
0187         select QCOM_Q6V5_COMMON
0188         select QCOM_RPROC_COMMON
0189         help
0190           Say y here to support the Peripheral Image Loader
0191           for the non-TrustZone part of Qualcomm Technology Inc. ADSP and CDSP
0192           remote processors. The TrustZone part is handled by QCOM_Q6V5_PAS
0193           driver.
0194 
0195 config QCOM_Q6V5_MSS
0196         tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"
0197         depends on OF && ARCH_QCOM
0198         depends on QCOM_SMEM
0199         depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
0200         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
0201         depends on QCOM_SYSMON || QCOM_SYSMON=n
0202         depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
0203         depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
0204         select MFD_SYSCON
0205         select QCOM_MDT_LOADER
0206         select QCOM_PIL_INFO
0207         select QCOM_Q6V5_COMMON
0208         select QCOM_RPROC_COMMON
0209         select QCOM_SCM
0210         help
0211           Say y here to support the Qualcomm self-authenticating modem
0212           subsystem based on Hexagon V5. The TrustZone based system is
0213           handled by QCOM_Q6V5_PAS driver.
0214 
0215 config QCOM_Q6V5_PAS
0216         tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"
0217         depends on OF && ARCH_QCOM
0218         depends on QCOM_SMEM
0219         depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
0220         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
0221         depends on QCOM_SYSMON || QCOM_SYSMON=n
0222         depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
0223         depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
0224         select MFD_SYSCON
0225         select QCOM_PIL_INFO
0226         select QCOM_MDT_LOADER
0227         select QCOM_Q6V5_COMMON
0228         select QCOM_RPROC_COMMON
0229         select QCOM_SCM
0230         help
0231           Say y here to support the TrustZone based Peripheral Image Loader
0232           for the Qualcomm Hexagon v5 based remote processors. This is commonly
0233           used to control subsystems such as ADSP (Audio DSP),
0234           CDSP (Compute DSP), MPSS (Modem Peripheral SubSystem), and
0235           SLPI (Sensor Low Power Island).
0236 
0237 config QCOM_Q6V5_WCSS
0238         tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
0239         depends on OF && ARCH_QCOM
0240         depends on QCOM_SMEM
0241         depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
0242         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
0243         depends on QCOM_SYSMON || QCOM_SYSMON=n
0244         depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
0245         depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
0246         select MFD_SYSCON
0247         select QCOM_MDT_LOADER
0248         select QCOM_PIL_INFO
0249         select QCOM_Q6V5_COMMON
0250         select QCOM_RPROC_COMMON
0251         select QCOM_SCM
0252         help
0253           Say y here to support the Qualcomm Peripheral Image Loader for the
0254           Hexagon V5 based WCSS remote processors on e.g. IPQ8074.  This is
0255           a non-TrustZone wireless subsystem.
0256 
0257 config QCOM_SYSMON
0258         tristate "Qualcomm sysmon driver"
0259         depends on RPMSG
0260         depends on ARCH_QCOM
0261         depends on NET
0262         select QCOM_QMI_HELPERS
0263         help
0264           The sysmon driver implements a sysmon QMI client and a handler for
0265           the sys_mon SMD and GLINK channel, which are used for graceful
0266           shutdown, retrieving failure information and propagating information
0267           about other subsystems being shut down.
0268 
0269           Say y here if your system runs firmware on any other subsystems, e.g.
0270           modem or DSP.
0271 
0272 config QCOM_WCNSS_PIL
0273         tristate "Qualcomm WCNSS Peripheral Image Loader"
0274         depends on OF && ARCH_QCOM
0275         depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
0276         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
0277         depends on QCOM_SMEM
0278         depends on QCOM_SYSMON || QCOM_SYSMON=n
0279         depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
0280         select QCOM_MDT_LOADER
0281         select QCOM_PIL_INFO
0282         select QCOM_RPROC_COMMON
0283         select QCOM_SCM
0284         help
0285           Say y here to support the Peripheral Image Loader for loading WCNSS
0286           firmware and boot the core on e.g. MSM8974, MSM8916. The firmware is
0287           verified and booted with the help of the Peripheral Authentication
0288           System (PAS) in TrustZone.
0289 
0290 config RCAR_REMOTEPROC
0291         tristate "Renesas R-Car Gen3 remoteproc support"
0292         depends on ARCH_RENESAS || COMPILE_TEST
0293         help
0294           Say y here to support R-Car realtime processor via the
0295           remote processor framework. An ELF firmware can be loaded
0296           thanks to sysfs remoteproc entries. The remote processor
0297           can be started and stopped.
0298           This can be either built-in or a loadable module.
0299           If compiled as module (M), the module name is rcar_rproc.
0300 
0301 config ST_REMOTEPROC
0302         tristate "ST remoteproc support"
0303         depends on ARCH_STI
0304         select MAILBOX
0305         select STI_MBOX
0306         help
0307           Say y here to support ST's adjunct processors via the remote
0308           processor framework.
0309           This can be either built-in or a loadable module.
0310 
0311 config ST_SLIM_REMOTEPROC
0312         tristate
0313 
0314 config STM32_RPROC
0315         tristate "STM32 remoteproc support"
0316         depends on ARCH_STM32
0317         depends on REMOTEPROC
0318         select MAILBOX
0319         help
0320           Say y here to support STM32 MCU processors via the
0321           remote processor framework.
0322 
0323           You want to say y here in order to enable AMP
0324           use-cases to run on your platform (dedicated firmware could be
0325           offloaded to remote MCU processors using this framework).
0326 
0327           This can be either built-in or a loadable module.
0328 
0329 config TI_K3_DSP_REMOTEPROC
0330         tristate "TI K3 DSP remoteproc support"
0331         depends on ARCH_K3
0332         select MAILBOX
0333         select OMAP2PLUS_MBOX
0334         help
0335           Say m here to support TI's C66x and C71x DSP remote processor
0336           subsystems on various TI K3 family of SoCs through the remote
0337           processor framework.
0338 
0339           It's safe to say N here if you're not interested in utilizing
0340           the DSP slave processors.
0341 
0342 config TI_K3_R5_REMOTEPROC
0343         tristate "TI K3 R5 remoteproc support"
0344         depends on ARCH_K3
0345         select MAILBOX
0346         select OMAP2PLUS_MBOX
0347         help
0348           Say m here to support TI's R5F remote processor subsystems
0349           on various TI K3 family of SoCs through the remote processor
0350           framework.
0351 
0352           It's safe to say N here if you're not interested in utilizing
0353           a slave processor.
0354 
0355 endif # REMOTEPROC
0356 
0357 endmenu