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