Merge tag 'block-5.11-2021-01-10' of git://git.kernel.dk/linux-block
[linux/fpc-iii.git] / drivers / remoteproc / Kconfig
blob9e7efe542f6903636fa7fce863d325df0d6bc0b9
1 # SPDX-License-Identifier: GPL-2.0-only
2 menu "Remoteproc drivers"
4 config 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.
15 if REMOTEPROC
17 config 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.
24           It's safe to say N if you don't want to use this interface.
26 config 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.
33           It's safe to say N here.
35 config 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.
41           This can be either built-in or a loadable module.
42           If unsure say N.
44 config 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.
52           It's safe to say N here.
54 config 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.
64           Currently only supported on OMAP4.
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).
70           It's safe to say N here if you're not interested in multimedia
71           offloading or just want a bare minimum kernel.
73 config 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.
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.
85 config 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.
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.
97 config 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.
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).
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".
115           It's safe to say n here if you're not interested in multimedia
116           offloading.
118 config 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.
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.
128 config 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.
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.
140 config QCOM_PIL_INFO
141         tristate
143 config QCOM_RPROC_COMMON
144         tristate
146 config QCOM_Q6V5_COMMON
147         tristate
148         depends on ARCH_QCOM
149         depends on QCOM_SMEM
151 config 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.
167 config 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.
184 config 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.
202 config 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.
219 config 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.
231           Say y here if your system runs firmware on any other subsystems, e.g.
232           modem or DSP.
234 config 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.
249 config 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.
259 config ST_SLIM_REMOTEPROC
260         tristate
262 config 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.
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).
275           This can be either built-in or a loadable module.
277 config 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.
287           It's safe to say N here if you're not interested in utilizing
288           the DSP slave processors.
290 config 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.
300           It's safe to say N here if you're not interested in utilizing
301           a slave processor.
303 endif # REMOTEPROC
305 endmenu