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