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