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