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