123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 |
- # SPDX-License-Identifier: GPL-2.0-only
- menu "Remoteproc drivers"
- config REMOTEPROC
- bool "Support for Remote Processor subsystem"
- depends on HAS_DMA
- select CRC32
- select FW_LOADER
- select VIRTIO
- select WANT_DEV_COREDUMP
- help
- Support for remote processors (such as DSP coprocessors). These
- are mainly used on embedded systems.
- if REMOTEPROC
- config REMOTEPROC_CDEV
- bool "Remoteproc character device interface"
- help
- Say y here to have a character device interface for the remoteproc
- framework. Userspace can boot/shutdown remote processors through
- this interface.
- It's safe to say N if you don't want to use this interface.
- config IMX_REMOTEPROC
- tristate "i.MX remoteproc support"
- depends on ARCH_MXC
- depends on HAVE_ARM_SMCCC
- select MAILBOX
- help
- Say y here to support iMX's remote processors via the remote
- processor framework.
- It's safe to say N here.
- config IMX_DSP_REMOTEPROC
- tristate "i.MX DSP remoteproc support"
- depends on ARCH_MXC
- depends on HAVE_ARM_SMCCC
- select MAILBOX
- help
- Say y here to support iMX's DSP remote processors via the remote
- processor framework.
- It's safe to say N here.
- config INGENIC_VPU_RPROC
- tristate "Ingenic JZ47xx VPU remoteproc support"
- depends on MIPS || COMPILE_TEST
- help
- Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic.
- This can be either built-in or a loadable module.
- If unsure say N.
- config MTK_SCP
- tristate "Mediatek SCP support"
- depends on ARCH_MEDIATEK || COMPILE_TEST
- select RPMSG_MTK_SCP
- help
- Say y here to support Mediatek's System Companion Processor (SCP) via
- the remote processor framework.
- It's safe to say N here.
- config OMAP_REMOTEPROC
- tristate "OMAP remoteproc support"
- depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX
- depends on OMAP_IOMMU
- select MAILBOX
- select OMAP2PLUS_MBOX
- help
- Say y here to support OMAP's remote processors (dual M3
- and DSP on OMAP4) via the remote processor framework.
- Currently only supported on OMAP4.
- Usually you want to say Y here, in order to enable multimedia
- use-cases to run on your platform (multimedia codecs are
- offloaded to remote DSP processors using this framework).
- It's safe to say N here if you're not interested in multimedia
- offloading or just want a bare minimum kernel.
- config OMAP_REMOTEPROC_WATCHDOG
- bool "OMAP remoteproc watchdog timer"
- depends on OMAP_REMOTEPROC
- default n
- help
- Say Y here to enable watchdog timer for remote processors.
- This option controls the watchdog functionality for the remote
- processors in OMAP. Dedicated OMAP DMTimers are used by the remote
- processors and triggers the timer interrupt upon a watchdog
- detection.
- config WKUP_M3_RPROC
- tristate "AMx3xx Wakeup M3 remoteproc support"
- depends on SOC_AM33XX || SOC_AM43XX
- help
- Say y here to support Wakeup M3 remote processor on TI AM33xx
- and AM43xx family of SoCs.
- Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed
- for deep CPUIdle states on AM33xx SoCs. Allows for loading of the
- firmware onto these remote processors.
- If unsure say N.
- config DA8XX_REMOTEPROC
- tristate "DA8xx/OMAP-L13x remoteproc support"
- depends on ARCH_DAVINCI_DA8XX
- depends on DMA_CMA
- help
- Say y here to support DA8xx/OMAP-L13x remote processors via the
- remote processor framework.
- You want to say y here in order to enable AMP
- use-cases to run on your platform (multimedia codecs are
- offloaded to remote DSP processors using this framework).
- This module controls the name of the firmware file that gets
- loaded on the DSP. This file must reside in the /lib/firmware
- directory. It can be specified via the module parameter
- da8xx_fw_name=<filename>, and if not specified will default to
- "rproc-dsp-fw".
- It's safe to say n here if you're not interested in multimedia
- offloading.
- config KEYSTONE_REMOTEPROC
- tristate "Keystone Remoteproc support"
- depends on ARCH_KEYSTONE
- help
- Say Y here here to support Keystone remote processors (DSP)
- via the remote processor framework.
- It's safe to say N here if you're not interested in the Keystone
- DSPs or just want to use a bare minimum kernel.
- config MESON_MX_AO_ARC_REMOTEPROC
- tristate "Amlogic Meson6/8/8b/8m2 AO ARC remote processor support"
- depends on HAS_IOMEM
- depends on (ARM && ARCH_MESON) || COMPILE_TEST
- select GENERIC_ALLOCATOR
- help
- Say m or y here to have support for the AO ARC remote processor
- on Amlogic Meson6/Meson8/Meson8b/Meson8m2 SoCs. This is
- typically used for system suspend.
- If unsure say N.
- config PRU_REMOTEPROC
- tristate "TI PRU remoteproc support"
- depends on TI_PRUSS
- default TI_PRUSS
- help
- Support for TI PRU remote processors present within a PRU-ICSS
- subsystem via the remote processor framework.
- Say Y or M here to support the Programmable Realtime Unit (PRU)
- processors on various TI SoCs. It's safe to say N here if you're
- not interested in the PRU or if you are unsure.
- config QCOM_PIL_INFO
- tristate
- config QCOM_RPROC_COMMON
- tristate "Qualcomm Technologies, Inc. Remote Proc Common Framework"
- config QCOM_Q6V5_COMMON
- tristate
- depends on ARCH_QCOM
- depends on QCOM_SMEM
- config QCOM_Q6V5_ADSP
- tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader"
- depends on OF && ARCH_QCOM
- depends on QCOM_SMEM
- depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
- depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
- depends on QCOM_SYSMON || QCOM_SYSMON=n
- depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
- depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
- select MFD_SYSCON
- select QCOM_PIL_INFO
- select QCOM_MDT_LOADER
- select QCOM_Q6V5_COMMON
- select QCOM_RPROC_COMMON
- help
- Say y here to support the Peripheral Image Loader
- for the non-TrustZone part of Qualcomm Technology Inc. ADSP and CDSP
- remote processors. The TrustZone part is handled by QCOM_Q6V5_PAS
- driver.
- config QCOM_Q6V5_MSS
- tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"
- depends on OF && ARCH_QCOM
- depends on QCOM_SMEM
- depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
- depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
- depends on QCOM_SYSMON || QCOM_SYSMON=n
- depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
- depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
- select MFD_SYSCON
- select QCOM_MDT_LOADER
- select QCOM_PIL_INFO
- select QCOM_Q6V5_COMMON
- select QCOM_RPROC_COMMON
- select QCOM_SCM
- help
- Say y here to support the Qualcomm self-authenticating modem
- subsystem based on Hexagon V5. The TrustZone based system is
- handled by QCOM_Q6V5_PAS driver.
- config QCOM_Q6V5_PAS
- tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"
- depends on OF && ARCH_QCOM
- depends on QCOM_SMEM
- depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
- depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
- depends on QCOM_SYSMON || QCOM_SYSMON=n
- depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
- depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
- select MFD_SYSCON
- select QCOM_PIL_INFO
- select QCOM_MDT_LOADER
- select QCOM_Q6V5_COMMON
- select QCOM_RPROC_COMMON
- select QCOM_SCM
- help
- Say y here to support the TrustZone based Peripheral Image Loader
- for the Qualcomm Hexagon v5 based remote processors. This is commonly
- used to control subsystems such as ADSP (Audio DSP),
- CDSP (Compute DSP), MPSS (Modem Peripheral SubSystem), and
- SLPI (Sensor Low Power Island).
- config QCOM_SPSS
- tristate "QTI Secure Subsystem Peripheral loading support"
- depends on OF && ARCH_QCOM
- depends on QCOM_SMEM
- depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
- depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
- depends on QCOM_SYSMON || QCOM_SYSMON=n
- select MFD_SYSCON
- select QCOM_MDT_LOADER
- select QCOM_Q6V5_COMMON
- select QCOM_RPROC_COMMON
- select QCOM_SCM
- help
- Say y here to support the TrustZone based Peripheral Image
- Loader for the Qualcomm Technologies, Inc. Secure Subsystem
- remote processor. This also supports remote processors that
- are booted before kernel comes up.
- config QCOM_Q6V5_WCSS
- tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
- depends on OF && ARCH_QCOM
- depends on QCOM_SMEM
- depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
- depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
- depends on QCOM_SYSMON || QCOM_SYSMON=n
- depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
- depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
- select MFD_SYSCON
- select QCOM_MDT_LOADER
- select QCOM_PIL_INFO
- select QCOM_Q6V5_COMMON
- select QCOM_RPROC_COMMON
- select QCOM_SCM
- help
- Say y here to support the Qualcomm Peripheral Image Loader for the
- Hexagon V5 based WCSS remote processors on e.g. IPQ8074. This is
- a non-TrustZone wireless subsystem.
- config QCOM_SYSMON
- tristate "Qualcomm sysmon driver"
- depends on RPMSG
- depends on ARCH_QCOM
- depends on NET
- select QCOM_QMI_HELPERS
- help
- The sysmon driver implements a sysmon QMI client and a handler for
- the sys_mon SMD and GLINK channel, which are used for graceful
- shutdown, retrieving failure information and propagating information
- about other subsystems being shut down.
- Say y here if your system runs firmware on any other subsystems, e.g.
- modem or DSP.
- config QCOM_WCNSS_PIL
- tristate "Qualcomm WCNSS Peripheral Image Loader"
- depends on OF && ARCH_QCOM
- depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
- depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
- depends on QCOM_SMEM
- depends on QCOM_SYSMON || QCOM_SYSMON=n
- depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
- select QCOM_MDT_LOADER
- select QCOM_PIL_INFO
- select QCOM_RPROC_COMMON
- select QCOM_SCM
- help
- Say y here to support the Peripheral Image Loader for loading WCNSS
- firmware and boot the core on e.g. MSM8974, MSM8916. The firmware is
- verified and booted with the help of the Peripheral Authentication
- System (PAS) in TrustZone.
- config RCAR_REMOTEPROC
- tristate "Renesas R-Car Gen3 remoteproc support"
- depends on ARCH_RENESAS || COMPILE_TEST
- help
- Say y here to support R-Car realtime processor via the
- remote processor framework. An ELF firmware can be loaded
- thanks to sysfs remoteproc entries. The remote processor
- can be started and stopped.
- This can be either built-in or a loadable module.
- If compiled as module (M), the module name is rcar_rproc.
- config QCOM_PANIC_ON_NOTIF_TIMEOUT
- bool "Trigger kernel panic when notification timeout expires"
- help
- This is a debug feature where a kernel panic is triggered when
- communication between subsystems through sysmon is taking too
- long. This scneario can happen if the peripheral has died and
- is no longer responsive.
- Also trigger a kernel panic if invoking the callbacks registered
- with a particular subsystem's notifications by the subsystem
- notifier framework is taking too long.
- config RPROC_SYSMON_NOTIF_TIMEOUT
- int "Sysmon notifications timeout in ms"
- default 10000
- help
- The amount of time, in milliseconds, that should elapse between
- the start and end of sysmon notifications, before a warning
- is emitted.
- config RPROC_SSR_NOTIF_TIMEOUT
- int "SSR notifier timeout in ms"
- default 10000
- help
- The amount of time, in milliseconds, that should elapse between
- the start and end of SSR notifications through the subsystem
- notifier, before a warning is emitted.
- config QCOM_RPROC_BOTH_DUMPS
- bool "Collect both minidump and fulldump for subsystem crash"
- help
- Say y here to allow dumping both fulldump and minidump for the
- case where subsystem minidump is enabled by policy and the feature
- is enabled for a client. The case where minidump is not enabled,
- and fulldump is collected by default remains unaffected.
- config ST_REMOTEPROC
- tristate "ST remoteproc support"
- depends on ARCH_STI
- select MAILBOX
- select STI_MBOX
- help
- Say y here to support ST's adjunct processors via the remote
- processor framework.
- This can be either built-in or a loadable module.
- config ST_SLIM_REMOTEPROC
- tristate
- config STM32_RPROC
- tristate "STM32 remoteproc support"
- depends on ARCH_STM32
- depends on REMOTEPROC
- select MAILBOX
- help
- Say y here to support STM32 MCU processors via the
- remote processor framework.
- You want to say y here in order to enable AMP
- use-cases to run on your platform (dedicated firmware could be
- offloaded to remote MCU processors using this framework).
- This can be either built-in or a loadable module.
- config TI_K3_DSP_REMOTEPROC
- tristate "TI K3 DSP remoteproc support"
- depends on ARCH_K3
- select MAILBOX
- select OMAP2PLUS_MBOX
- help
- Say m here to support TI's C66x and C71x DSP remote processor
- subsystems on various TI K3 family of SoCs through the remote
- processor framework.
- It's safe to say N here if you're not interested in utilizing
- the DSP slave processors.
- config TI_K3_R5_REMOTEPROC
- tristate "TI K3 R5 remoteproc support"
- depends on ARCH_K3
- select MAILBOX
- select OMAP2PLUS_MBOX
- help
- Say m here to support TI's R5F remote processor subsystems
- on various TI K3 family of SoCs through the remote processor
- framework.
- It's safe to say N here if you're not interested in utilizing
- a slave processor.
- config MSM_QUIN_SUBSYSTEM_NOTIF_VIRT
- tristate "MSM QUIN Subsystem Notif Virt"
- depends on RPMSG_QCOM_GLINK || RPMSG_QCOM_GLINK=n
- select QCOM_RPROC_COMMON
- help
- This option enables the virtual MSM subsystem notification
- framework for the QUIN platform.
- The virtual MSM subsystem notif framework provides support for
- a subsystem to notify its clients of its state, when the clients
- are in a different virtual machine domain than the subsystem.
- config SEC_SENSORS_SSC
- bool "Enable Sensors Driver Support SEC features for SSC"
- depends on ADSP_FACTORY
- help
- Say y here to enable SEC features for Snapdragon Sensor Core(SSC)
- support SEC features for Qualcomm Technologies, Inc SoCs. SSC is used for
- exercising sensor use-cases.
- Say N if you do not want to support it.
- endif # REMOTEPROC
- endmenu
|