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