xref: /openbmc/linux/drivers/remoteproc/Kconfig (revision 31e67366)
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	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
170config 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
189config 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
210config 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
229config 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
244config 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
262config 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
272config ST_SLIM_REMOTEPROC
273	tristate
274
275config 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
290config 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
303config 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
316endif # REMOTEPROC
317
318endmenu
319