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