xref: /linux/drivers/remoteproc/Kconfig (revision 9e19f44d7f081e4c05d64cfcc412ab1fa43fd2bb)
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 "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
35config 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
44config 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
54config 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
73config 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
85config 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
97config 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
118config 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
128config 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
140config QCOM_PIL_INFO
141	tristate
142
143config QCOM_RPROC_COMMON
144	tristate
145
146config QCOM_Q6V5_COMMON
147	tristate
148	depends on ARCH_QCOM
149	depends on QCOM_SMEM
150
151config 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	select MFD_SYSCON
159	select QCOM_PIL_INFO
160	select QCOM_MDT_LOADER
161	select QCOM_Q6V5_COMMON
162	select QCOM_RPROC_COMMON
163	help
164	  Say y here to support the Peripheral Image Loader
165	  for the non-TrustZone part of Qualcomm Technology Inc. ADSP and CDSP
166	  remote processors. The TrustZone part is handled by QCOM_Q6V5_PAS
167	  driver.
168
169config QCOM_Q6V5_MSS
170	tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"
171	depends on OF && ARCH_QCOM
172	depends on QCOM_SMEM
173	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
174	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
175	depends on QCOM_SYSMON || QCOM_SYSMON=n
176	select MFD_SYSCON
177	select QCOM_MDT_LOADER
178	select QCOM_PIL_INFO
179	select QCOM_Q6V5_COMMON
180	select QCOM_RPROC_COMMON
181	select QCOM_SCM
182	help
183	  Say y here to support the Qualcomm self-authenticating modem
184	  subsystem based on Hexagon V5. The TrustZone based system is
185	  handled by QCOM_Q6V5_PAS driver.
186
187config QCOM_Q6V5_PAS
188	tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"
189	depends on OF && ARCH_QCOM
190	depends on QCOM_SMEM
191	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
192	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
193	depends on QCOM_SYSMON || QCOM_SYSMON=n
194	select MFD_SYSCON
195	select QCOM_PIL_INFO
196	select QCOM_MDT_LOADER
197	select QCOM_Q6V5_COMMON
198	select QCOM_RPROC_COMMON
199	select QCOM_SCM
200	help
201	  Say y here to support the TrustZone based Peripheral Image Loader
202	  for the Qualcomm Hexagon v5 based remote processors. This is commonly
203	  used to control subsystems such as ADSP (Audio DSP),
204	  CDSP (Compute DSP), MPSS (Modem Peripheral SubSystem), and
205	  SLPI (Sensor Low Power Island).
206
207config QCOM_Q6V5_WCSS
208	tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
209	depends on OF && ARCH_QCOM
210	depends on QCOM_SMEM
211	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
212	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
213	depends on QCOM_SYSMON || QCOM_SYSMON=n
214	select MFD_SYSCON
215	select QCOM_MDT_LOADER
216	select QCOM_PIL_INFO
217	select QCOM_Q6V5_COMMON
218	select QCOM_RPROC_COMMON
219	select QCOM_SCM
220	help
221	  Say y here to support the Qualcomm Peripheral Image Loader for the
222	  Hexagon V5 based WCSS remote processors on e.g. IPQ8074.  This is
223	  a non-TrustZone wireless subsystem.
224
225config QCOM_SYSMON
226	tristate "Qualcomm sysmon driver"
227	depends on RPMSG
228	depends on ARCH_QCOM
229	depends on NET
230	select QCOM_QMI_HELPERS
231	help
232	  The sysmon driver implements a sysmon QMI client and a handler for
233	  the sys_mon SMD and GLINK channel, which are used for graceful
234	  shutdown, retrieving failure information and propagating information
235	  about other subsystems being shut down.
236
237	  Say y here if your system runs firmware on any other subsystems, e.g.
238	  modem or DSP.
239
240config QCOM_WCNSS_PIL
241	tristate "Qualcomm WCNSS Peripheral Image Loader"
242	depends on OF && ARCH_QCOM
243	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
244	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
245	depends on QCOM_SMEM
246	depends on QCOM_SYSMON || QCOM_SYSMON=n
247	select QCOM_MDT_LOADER
248	select QCOM_PIL_INFO
249	select QCOM_RPROC_COMMON
250	select QCOM_SCM
251	help
252	  Say y here to support the Peripheral Image Loader for loading WCNSS
253	  firmware and boot the core on e.g. MSM8974, MSM8916. The firmware is
254	  verified and booted with the help of the Peripheral Authentication
255	  System (PAS) in TrustZone.
256
257config ST_REMOTEPROC
258	tristate "ST remoteproc support"
259	depends on ARCH_STI
260	select MAILBOX
261	select STI_MBOX
262	help
263	  Say y here to support ST's adjunct processors via the remote
264	  processor framework.
265	  This can be either built-in or a loadable module.
266
267config ST_SLIM_REMOTEPROC
268	tristate
269
270config STM32_RPROC
271	tristate "STM32 remoteproc support"
272	depends on ARCH_STM32
273	depends on REMOTEPROC
274	select MAILBOX
275	help
276	  Say y here to support STM32 MCU processors via the
277	  remote processor framework.
278
279	  You want to say y here in order to enable AMP
280	  use-cases to run on your platform (dedicated firmware could be
281	  offloaded to remote MCU processors using this framework).
282
283	  This can be either built-in or a loadable module.
284
285config TI_K3_DSP_REMOTEPROC
286	tristate "TI K3 DSP remoteproc support"
287	depends on ARCH_K3
288	select MAILBOX
289	select OMAP2PLUS_MBOX
290	help
291	  Say m here to support TI's C66x and C71x DSP remote processor
292	  subsystems on various TI K3 family of SoCs through the remote
293	  processor framework.
294
295	  It's safe to say N here if you're not interested in utilizing
296	  the DSP slave processors.
297
298config TI_K3_R5_REMOTEPROC
299	tristate "TI K3 R5 remoteproc support"
300	depends on ARCH_K3
301	select MAILBOX
302	select OMAP2PLUS_MBOX
303	help
304	  Say m here to support TI's R5F remote processor subsystems
305	  on various TI K3 family of SoCs through the remote processor
306	  framework.
307
308	  It's safe to say N here if you're not interested in utilizing
309	  a slave processor.
310
311endif # REMOTEPROC
312
313endmenu
314