xref: /openbmc/linux/drivers/remoteproc/Kconfig (revision 889cb0d4)
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	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
36config 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
45config 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
55config 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
74config 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
86config 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
98config 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
119config 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
129config 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
141config QCOM_PIL_INFO
142	tristate
143
144config QCOM_RPROC_COMMON
145	tristate
146
147config QCOM_Q6V5_COMMON
148	tristate
149	depends on ARCH_QCOM
150	depends on QCOM_SMEM
151
152config 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
171config 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
190config 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
211config 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
230config 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
245config 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
263config 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
273config ST_SLIM_REMOTEPROC
274	tristate
275
276config 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
291config 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
304config 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
317endif # REMOTEPROC
318
319endmenu
320