18be41b8aa7e8f2b34bb32d47d2f880d5590427f
[sfrench/cifs-2.6.git] / drivers / remoteproc / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menu "Remoteproc drivers"
3
4 config REMOTEPROC
5         tristate "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 SOC_IMX6SX || SOC_IMX7D
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 OMAP_REMOTEPROC
27         tristate "OMAP remoteproc support"
28         depends on ARCH_OMAP4 || SOC_OMAP5
29         depends on OMAP_IOMMU
30         select MAILBOX
31         select OMAP2PLUS_MBOX
32         help
33           Say y here to support OMAP's remote processors (dual M3
34           and DSP on OMAP4) via the remote processor framework.
35
36           Currently only supported on OMAP4.
37
38           Usually you want to say Y here, in order to enable multimedia
39           use-cases to run on your platform (multimedia codecs are
40           offloaded to remote DSP processors using this framework).
41
42           It's safe to say N here if you're not interested in multimedia
43           offloading or just want a bare minimum kernel.
44
45 config WKUP_M3_RPROC
46         tristate "AMx3xx Wakeup M3 remoteproc support"
47         depends on SOC_AM33XX || SOC_AM43XX
48         help
49           Say y here to support Wakeup M3 remote processor on TI AM33xx
50           and AM43xx family of SoCs.
51
52           Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed
53           for deep CPUIdle states on AM33xx SoCs. Allows for loading of the
54           firmware onto these remote processors.
55           If unsure say N.
56
57 config DA8XX_REMOTEPROC
58         tristate "DA8xx/OMAP-L13x remoteproc support"
59         depends on ARCH_DAVINCI_DA8XX
60         depends on DMA_CMA
61         help
62           Say y here to support DA8xx/OMAP-L13x remote processors via the
63           remote processor framework.
64
65           You want to say y here in order to enable AMP
66           use-cases to run on your platform (multimedia codecs are
67           offloaded to remote DSP processors using this framework).
68
69           This module controls the name of the firmware file that gets
70           loaded on the DSP.  This file must reside in the /lib/firmware
71           directory.  It can be specified via the module parameter
72           da8xx_fw_name=<filename>, and if not specified will default to
73           "rproc-dsp-fw".
74
75           It's safe to say n here if you're not interested in multimedia
76           offloading.
77
78 config KEYSTONE_REMOTEPROC
79         tristate "Keystone Remoteproc support"
80         depends on ARCH_KEYSTONE
81         help
82           Say Y here here to support Keystone remote processors (DSP)
83           via the remote processor framework.
84
85           It's safe to say N here if you're not interested in the Keystone
86           DSPs or just want to use a bare minimum kernel.
87
88 config QCOM_RPROC_COMMON
89         tristate
90
91 config QCOM_Q6V5_COMMON
92         tristate
93         depends on ARCH_QCOM
94         depends on QCOM_SMEM
95
96 config QCOM_Q6V5_ADSP
97         tristate "Qualcomm Technology Inc ADSP Peripheral Image Loader"
98         depends on OF && ARCH_QCOM
99         depends on QCOM_SMEM
100         depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
101         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
102         depends on QCOM_SYSMON || QCOM_SYSMON=n
103         select MFD_SYSCON
104         select QCOM_MDT_LOADER
105         select QCOM_Q6V5_COMMON
106         select QCOM_RPROC_COMMON
107         help
108           Say y here to support the Peripheral Image Loader
109           for the Qualcomm Technology Inc. ADSP remote processors.
110
111 config QCOM_Q6V5_MSS
112         tristate "Qualcomm Hexagon V5 self-authenticating modem subsystem support"
113         depends on OF && ARCH_QCOM
114         depends on QCOM_SMEM
115         depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
116         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
117         depends on QCOM_SYSMON || QCOM_SYSMON=n
118         select MFD_SYSCON
119         select QCOM_Q6V5_COMMON
120         select QCOM_RPROC_COMMON
121         select QCOM_SCM
122         help
123           Say y here to support the Qualcomm self-authenticating modem
124           subsystem based on Hexagon V5.
125
126 config QCOM_Q6V5_PAS
127         tristate "Qualcomm Hexagon v5 Peripheral Authentication Service support"
128         depends on OF && ARCH_QCOM
129         depends on QCOM_SMEM
130         depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
131         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
132         depends on QCOM_SYSMON || QCOM_SYSMON=n
133         select MFD_SYSCON
134         select QCOM_MDT_LOADER
135         select QCOM_Q6V5_COMMON
136         select QCOM_RPROC_COMMON
137         select QCOM_SCM
138         help
139           Say y here to support the TrustZone based Peripherial Image Loader
140           for the Qualcomm Hexagon v5 based remote processors. This is commonly
141           used to control subsystems such as ADSP, Compute and Sensor.
142
143 config QCOM_Q6V5_WCSS
144         tristate "Qualcomm Hexagon based WCSS Peripheral Image Loader"
145         depends on OF && ARCH_QCOM
146         depends on QCOM_SMEM
147         depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
148         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
149         depends on QCOM_SYSMON || QCOM_SYSMON=n
150         select MFD_SYSCON
151         select QCOM_MDT_LOADER
152         select QCOM_Q6V5_COMMON
153         select QCOM_RPROC_COMMON
154         select QCOM_SCM
155         help
156           Say y here to support the Qualcomm Peripheral Image Loader for the
157           Hexagon V5 based WCSS remote processors.
158
159 config QCOM_SYSMON
160         tristate "Qualcomm sysmon driver"
161         depends on RPMSG
162         depends on ARCH_QCOM
163         depends on NET
164         select QCOM_QMI_HELPERS
165         help
166           The sysmon driver implements a sysmon QMI client and a handler for
167           the sys_mon SMD and GLINK channel, which are used for graceful
168           shutdown, retrieving failure information and propagating information
169           about other subsystems being shut down.
170
171           Say y here if your system runs firmware on any other subsystems, e.g.
172           modem or DSP.
173
174 config QCOM_WCNSS_PIL
175         tristate "Qualcomm WCNSS Peripheral Image Loader"
176         depends on OF && ARCH_QCOM
177         depends on RPMSG_QCOM_SMD || (COMPILE_TEST && RPMSG_QCOM_SMD=n)
178         depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
179         depends on QCOM_SMEM
180         depends on QCOM_SYSMON || QCOM_SYSMON=n
181         select QCOM_MDT_LOADER
182         select QCOM_RPROC_COMMON
183         select QCOM_SCM
184         help
185           Say y here to support the Peripheral Image Loader for the Qualcomm
186           Wireless Connectivity Subsystem.
187
188 config ST_REMOTEPROC
189         tristate "ST remoteproc support"
190         depends on ARCH_STI
191         select MAILBOX
192         select STI_MBOX
193         help
194           Say y here to support ST's adjunct processors via the remote
195           processor framework.
196           This can be either built-in or a loadable module.
197
198 config ST_SLIM_REMOTEPROC
199         tristate
200
201 endif # REMOTEPROC
202
203 endmenu