remoteproc/k3-r5: add a remoteproc driver for R5F subsystem
[rpmsg/rpmsg.git] / drivers / remoteproc / Kconfig
1 menu "Remoteproc drivers"
3 config REMOTEPROC
4         tristate "Support for Remote Processor subsystem"
5         depends on HAS_DMA
6         select CRC32
7         select FW_LOADER
8         select VIRTIO
9         select WANT_DEV_COREDUMP
10         help
11           Support for remote processors (such as DSP coprocessors). These
12           are mainly used on embedded systems.
14 if REMOTEPROC
16 config IMX_REMOTEPROC
17         tristate "IMX6/7 remoteproc support"
18         depends on SOC_IMX6SX || SOC_IMX7D
19         help
20           Say y here to support iMX's remote processors (Cortex M4
21           on iMX7D) via the remote processor framework.
23           It's safe to say N here.
25 config OMAP_REMOTEPROC
26         tristate "OMAP remoteproc support"
27         depends on ARCH_OMAP4 || SOC_OMAP5
28         depends on OMAP_IOMMU
29         select MAILBOX
30         select OMAP2PLUS_MBOX
31         help
32           Say y here to support OMAP's remote processors (dual M3
33           and DSP on OMAP4) via the remote processor framework.
35           Currently only supported on OMAP4.
37           Usually you want to say Y here, in order to enable multimedia
38           use-cases to run on your platform (multimedia codecs are
39           offloaded to remote DSP processors using this framework).
41           It's safe to say N here if you're not interested in multimedia
42           offloading or just want a bare minimum kernel.
44 config WKUP_M3_RPROC
45         tristate "AMx3xx Wakeup M3 remoteproc support"
46         depends on SOC_AM33XX || SOC_AM43XX
47         help
48           Say y here to support Wakeup M3 remote processor on TI AM33xx
49           and AM43xx family of SoCs.
51           Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed
52           for deep CPUIdle states on AM33xx SoCs. Allows for loading of the
53           firmware onto these remote processors.
54           If unsure say N.
56 config DA8XX_REMOTEPROC
57         tristate "DA8xx/OMAP-L13x remoteproc support"
58         depends on ARCH_DAVINCI_DA8XX
59         depends on DMA_CMA
60         help
61           Say y here to support DA8xx/OMAP-L13x remote processors via the
62           remote processor framework.
64           You want to say y here in order to enable AMP
65           use-cases to run on your platform (multimedia codecs are
66           offloaded to remote DSP processors using this framework).
68           This module controls the name of the firmware file that gets
69           loaded on the DSP.  This file must reside in the /lib/firmware
70           directory.  It can be specified via the module parameter
71           da8xx_fw_name=<filename>, and if not specified will default to
72           "rproc-dsp-fw".
74           It's safe to say n here if you're not interested in multimedia
75           offloading.
77 config KEYSTONE_REMOTEPROC
78         tristate "Keystone Remoteproc support"
79         depends on ARCH_KEYSTONE
80         depends on UIO
81         help
82           Say Y here here to support Keystone remote processors (DSP)
83           via the remote processor framework.
85           It's safe to say N here if you're not interested in the Keystone
86           DSPs or just want to use a bare minimum kernel.
88 config PRU_REMOTEPROC
89         tristate "TI PRU remoteproc support"
90         depends on TI_PRUSS
91         default TI_PRUSS
92         select MAILBOX
93         select OMAP2PLUS_MBOX if ARCH_OMAP2PLUS || ARCH_K3
94         help
95           Support for TI PRU remote processors present within a PRU-ICSS
96           subsystem via the remote processor framework.
98           Say Y or M here to support the Programmable Realtime Unit (PRU)
99           processors on various TI SoCs. It's safe to say N here if you're
100           not interested in the PRU or if you are unsure.
102 config QCOM_ADSP_PIL
103         tristate "Qualcomm ADSP Peripheral Image Loader"
104         depends on OF && ARCH_QCOM
105         depends on QCOM_SMEM
106         depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
107         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
108         depends on QCOM_SYSMON || QCOM_SYSMON=n
109         select MFD_SYSCON
110         select QCOM_MDT_LOADER
111         select QCOM_Q6V5_COMMON
112         select QCOM_RPROC_COMMON
113         select QCOM_SCM
114         help
115           Say y here to support the TrustZone based Peripherial Image Loader
116           for the Qualcomm ADSP remote processors.
118 config QCOM_RPROC_COMMON
119         tristate
121 config QCOM_Q6V5_COMMON
122         tristate
123         depends on ARCH_QCOM
124         depends on QCOM_SMEM
126 config QCOM_Q6V5_PIL
127         tristate "Qualcomm Hexagon V5 Peripherial Image Loader"
128         depends on OF && ARCH_QCOM
129         depends on QCOM_SMEM
130         depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
131         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
132         depends on QCOM_SYSMON || QCOM_SYSMON=n
133         select MFD_SYSCON
134         select QCOM_Q6V5_COMMON
135         select QCOM_RPROC_COMMON
136         select QCOM_SCM
137         help
138           Say y here to support the Qualcomm Peripherial Image Loader for the
139           Hexagon V5 based remote processors.
141 config QCOM_Q6V5_WCSS
142         tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
143         depends on OF && ARCH_QCOM
144         depends on QCOM_SMEM
145         depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
146         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
147         depends on QCOM_SYSMON || QCOM_SYSMON=n
148         select MFD_SYSCON
149         select QCOM_MDT_LOADER
150         select QCOM_Q6V5_COMMON
151         select QCOM_RPROC_COMMON
152         select QCOM_SCM
153         help
154           Say y here to support the Qualcomm Peripheral Image Loader for the
155           Hexagon V5 based WCSS remote processors.
157 config QCOM_SYSMON
158         tristate "Qualcomm sysmon driver"
159         depends on RPMSG
160         depends on ARCH_QCOM
161         depends on NET
162         select QCOM_QMI_HELPERS
163         help
164           The sysmon driver implements a sysmon QMI client and a handler for
165           the sys_mon SMD and GLINK channel, which are used for graceful
166           shutdown, retrieving failure information and propagating information
167           about other subsystems being shut down.
169           Say y here if your system runs firmware on any other subsystems, e.g.
170           modem or DSP.
172 config QCOM_WCNSS_PIL
173         tristate "Qualcomm WCNSS Peripheral Image Loader"
174         depends on OF && ARCH_QCOM
175         depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
176         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
177         depends on QCOM_SMEM
178         depends on QCOM_SYSMON || QCOM_SYSMON=n
179         select QCOM_MDT_LOADER
180         select QCOM_RPROC_COMMON
181         select QCOM_SCM
182         help
183           Say y here to support the Peripheral Image Loader for the Qualcomm
184           Wireless Connectivity Subsystem.
186 config ST_REMOTEPROC
187         tristate "ST remoteproc support"
188         depends on ARCH_STI
189         select MAILBOX
190         select STI_MBOX
191         help
192           Say y here to support ST's adjunct processors via the remote
193           processor framework.
194           This can be either built-in or a loadable module.
196 config ST_SLIM_REMOTEPROC
197         tristate
199 config TI_K3_R5_REMOTEPROC
200         tristate "TI K3 R5 remoteproc support"
201         depends on ARCH_K3
202         select MAILBOX
203         select OMAP2PLUS_MBOX
204         help
205           Say y here to support TI's R5F remote processor subsystems
206           on various TI K3 family of SoCs through the remote processor
207           framework.
209           You want to say y here in order to offload some processing
210           tasks to these processors
212           It's safe to say N here if you're not interested in utilizing
213           a slave processor
215 endif # REMOTEPROC
217 endmenu