Merge tag 'pm-5.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[linux-2.6-microblaze.git] / drivers / remoteproc / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menu "Remoteproc drivers"
3
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.
14
15 if REMOTEPROC
16
17 config 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
26 config 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
36 config 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
55 config 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
67 config 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
79 config 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
100 config 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
110 config QCOM_RPROC_COMMON
111         tristate
112
113 config QCOM_Q6V5_COMMON
114         tristate
115         depends on ARCH_QCOM
116         depends on QCOM_SMEM
117
118 config 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
133 config 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
150 config 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
167 config 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
183 config QCOM_Q6V5_IPA_NOTIFY
184         tristate
185
186 config 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
201 config 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
215 config 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
225 config ST_SLIM_REMOTEPROC
226         tristate
227
228 config 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
243 endif # REMOTEPROC
244
245 endmenu