xref: /openbmc/linux/drivers/remoteproc/Kconfig (revision d4c78d21)
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 IMX_REMOTEPROC
18	tristate "IMX6/7 remoteproc support"
19	depends on ARCH_MXC
20	help
21	  Say y here to support iMX's remote processors (Cortex M4
22	  on iMX7D) via the remote processor framework.
23
24	  It's safe to say N here.
25
26config INGENIC_VPU_RPROC
27	tristate "Ingenic JZ47xx VPU remoteproc support"
28	depends on MIPS || COMPILE_TEST
29	help
30	  Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic.
31
32	  This can be either built-in or a loadable module.
33	  If unsure say N.
34
35config MTK_SCP
36	tristate "Mediatek SCP support"
37	depends on ARCH_MEDIATEK
38	select RPMSG_MTK_SCP
39	help
40	  Say y here to support Mediatek's System Companion Processor (SCP) via
41	  the remote processor framework.
42
43	  It's safe to say N here.
44
45config OMAP_REMOTEPROC
46	tristate "OMAP remoteproc support"
47	depends on ARCH_OMAP4 || SOC_OMAP5 || SOC_DRA7XX
48	depends on OMAP_IOMMU
49	select MAILBOX
50	select OMAP2PLUS_MBOX
51	help
52	  Say y here to support OMAP's remote processors (dual M3
53	  and DSP on OMAP4) via the remote processor framework.
54
55	  Currently only supported on OMAP4.
56
57	  Usually you want to say Y here, in order to enable multimedia
58	  use-cases to run on your platform (multimedia codecs are
59	  offloaded to remote DSP processors using this framework).
60
61	  It's safe to say N here if you're not interested in multimedia
62	  offloading or just want a bare minimum kernel.
63
64config OMAP_REMOTEPROC_WATCHDOG
65	bool "OMAP remoteproc watchdog timer"
66	depends on OMAP_REMOTEPROC
67	default n
68	help
69	  Say Y here to enable watchdog timer for remote processors.
70
71	  This option controls the watchdog functionality for the remote
72	  processors in OMAP. Dedicated OMAP DMTimers are used by the remote
73	  processors and triggers the timer interrupt upon a watchdog
74	  detection.
75
76config WKUP_M3_RPROC
77	tristate "AMx3xx Wakeup M3 remoteproc support"
78	depends on SOC_AM33XX || SOC_AM43XX
79	help
80	  Say y here to support Wakeup M3 remote processor on TI AM33xx
81	  and AM43xx family of SoCs.
82
83	  Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed
84	  for deep CPUIdle states on AM33xx SoCs. Allows for loading of the
85	  firmware onto these remote processors.
86	  If unsure say N.
87
88config DA8XX_REMOTEPROC
89	tristate "DA8xx/OMAP-L13x remoteproc support"
90	depends on ARCH_DAVINCI_DA8XX
91	depends on DMA_CMA
92	help
93	  Say y here to support DA8xx/OMAP-L13x remote processors via the
94	  remote processor framework.
95
96	  You want to say y here in order to enable AMP
97	  use-cases to run on your platform (multimedia codecs are
98	  offloaded to remote DSP processors using this framework).
99
100	  This module controls the name of the firmware file that gets
101	  loaded on the DSP.  This file must reside in the /lib/firmware
102	  directory.  It can be specified via the module parameter
103	  da8xx_fw_name=<filename>, and if not specified will default to
104	  "rproc-dsp-fw".
105
106	  It's safe to say n here if you're not interested in multimedia
107	  offloading.
108
109config KEYSTONE_REMOTEPROC
110	tristate "Keystone Remoteproc support"
111	depends on ARCH_KEYSTONE
112	help
113	  Say Y here here to support Keystone remote processors (DSP)
114	  via the remote processor framework.
115
116	  It's safe to say N here if you're not interested in the Keystone
117	  DSPs or just want to use a bare minimum kernel.
118
119config QCOM_PIL_INFO
120	tristate
121
122config QCOM_RPROC_COMMON
123	tristate
124
125config QCOM_Q6V5_COMMON
126	tristate
127	depends on ARCH_QCOM
128	depends on QCOM_SMEM
129
130config QCOM_Q6V5_ADSP
131	tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader"
132	depends on OF && ARCH_QCOM
133	depends on QCOM_SMEM
134	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
135	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
136	depends on QCOM_SYSMON || QCOM_SYSMON=n
137	select MFD_SYSCON
138	select QCOM_PIL_INFO
139	select QCOM_MDT_LOADER
140	select QCOM_Q6V5_COMMON
141	select QCOM_RPROC_COMMON
142	help
143	  Say y here to support the Peripheral Image Loader
144	  for the Qualcomm Technology Inc. ADSP remote processors.
145
146config QCOM_Q6V5_MSS
147	tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"
148	depends on OF && ARCH_QCOM
149	depends on QCOM_SMEM
150	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
151	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
152	depends on QCOM_SYSMON || QCOM_SYSMON=n
153	select MFD_SYSCON
154	select QCOM_MDT_LOADER
155	select QCOM_PIL_INFO
156	select QCOM_Q6V5_COMMON
157	select QCOM_Q6V5_IPA_NOTIFY
158	select QCOM_RPROC_COMMON
159	select QCOM_SCM
160	help
161	  Say y here to support the Qualcomm self-authenticating modem
162	  subsystem based on Hexagon V5.
163
164config QCOM_Q6V5_PAS
165	tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"
166	depends on OF && ARCH_QCOM
167	depends on QCOM_SMEM
168	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
169	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
170	depends on QCOM_SYSMON || QCOM_SYSMON=n
171	select MFD_SYSCON
172	select QCOM_PIL_INFO
173	select QCOM_MDT_LOADER
174	select QCOM_Q6V5_COMMON
175	select QCOM_RPROC_COMMON
176	select QCOM_SCM
177	help
178	  Say y here to support the TrustZone based Peripherial Image Loader
179	  for the Qualcomm Hexagon v5 based remote processors. This is commonly
180	  used to control subsystems such as ADSP, Compute and Sensor.
181
182config QCOM_Q6V5_WCSS
183	tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
184	depends on OF && ARCH_QCOM
185	depends on QCOM_SMEM
186	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
187	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
188	depends on QCOM_SYSMON || QCOM_SYSMON=n
189	select MFD_SYSCON
190	select QCOM_MDT_LOADER
191	select QCOM_PIL_INFO
192	select QCOM_Q6V5_COMMON
193	select QCOM_RPROC_COMMON
194	select QCOM_SCM
195	help
196	  Say y here to support the Qualcomm Peripheral Image Loader for the
197	  Hexagon V5 based WCSS remote processors.
198
199config QCOM_Q6V5_IPA_NOTIFY
200	tristate
201
202config QCOM_SYSMON
203	tristate "Qualcomm sysmon driver"
204	depends on RPMSG
205	depends on ARCH_QCOM
206	depends on NET
207	select QCOM_QMI_HELPERS
208	help
209	  The sysmon driver implements a sysmon QMI client and a handler for
210	  the sys_mon SMD and GLINK channel, which are used for graceful
211	  shutdown, retrieving failure information and propagating information
212	  about other subsystems being shut down.
213
214	  Say y here if your system runs firmware on any other subsystems, e.g.
215	  modem or DSP.
216
217config QCOM_WCNSS_PIL
218	tristate "Qualcomm WCNSS Peripheral Image Loader"
219	depends on OF && ARCH_QCOM
220	depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
221	depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
222	depends on QCOM_SMEM
223	depends on QCOM_SYSMON || QCOM_SYSMON=n
224	select QCOM_MDT_LOADER
225	select QCOM_PIL_INFO
226	select QCOM_RPROC_COMMON
227	select QCOM_SCM
228	help
229	  Say y here to support the Peripheral Image Loader for the Qualcomm
230	  Wireless Connectivity Subsystem.
231
232config ST_REMOTEPROC
233	tristate "ST remoteproc support"
234	depends on ARCH_STI
235	select MAILBOX
236	select STI_MBOX
237	help
238	  Say y here to support ST's adjunct processors via the remote
239	  processor framework.
240	  This can be either built-in or a loadable module.
241
242config ST_SLIM_REMOTEPROC
243	tristate
244
245config STM32_RPROC
246	tristate "STM32 remoteproc support"
247	depends on ARCH_STM32
248	depends on REMOTEPROC
249	select MAILBOX
250	help
251	  Say y here to support STM32 MCU processors via the
252	  remote processor framework.
253
254	  You want to say y here in order to enable AMP
255	  use-cases to run on your platform (dedicated firmware could be
256	  offloaded to remote MCU processors using this framework).
257
258	  This can be either built-in or a loadable module.
259
260endif # REMOTEPROC
261
262endmenu
263