summaryrefslogtreecommitdiff
path: root/drivers/soc/qcom/Kconfig
blob: 8e432ce97124466f2201d556244fb8d8929badb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
#
# QCOM Soc drivers
#
config MSM_SMEM
	depends on ARCH_QCOM
	depends on REMOTE_SPINLOCK_MSM
	bool "MSM Shared Memory (SMEM)"
	help
	  Support for the shared memory interface between the various
	  processors in the System on a Chip (SoC) which allows basic
	  inter-processor communication.

config MSM_SMD
	depends on MSM_SMEM
	bool "MSM Shared Memory Driver (SMD)"
	help
	  Support for the shared memory interprocessor communication protocol
	  which provides virual point to point serial channels between processes
	  on the apps processor and processes on other processors in the SoC.
	  Also includes support for the Shared Memory State Machine (SMSM)
	  protocol which provides a mechanism to publish single bit state
	  information to one or more processors in the SoC.

config MSM_SMD_DEBUG
	depends on MSM_SMD
	bool "MSM SMD debug support"
	help
	  Support for debugging SMD and SMSM communication between apps and
	  other processors in the SoC. Debug support primarily consists of
	  logs consisting of information such as what interrupts were processed,
	  what channels caused interrupt activity, and when internal state
	  change events occur.

config MSM_GLINK
	bool "Generic Link (G-Link)"
	help
	  G-Link is a generic link transport that replaces SMD.  It is used
	  within a System-on-Chip (SoC) for communication between both internal
	  processors and external peripherals.  The actual physical transport
	  is handled by transport plug-ins that can be individually enabled and
	  configured separately.

config MSM_GLINK_LOOPBACK_SERVER
	bool "Generic Link (G-Link) Loopback Server"
	help
	  G-Link Loopback Server that enable loopback test framework to test
	  and validate the G-Link protocol stack. It support both local and
	  remote clients to configure the loopback server and echo back the
	  data received from the clients.

config MSM_GLINK_SMD_XPRT
	depends on MSM_SMD
	depends on MSM_GLINK
	bool "Generic Link (G-Link) SMD Transport"
	help
	  G-Link SMD Transport is a G-Link Transport plug-in.  It allows G-Link
	  communication to remote entities through a SMD physical transport
	  channel.  The remote side is assumed to be pure SMD.  The nature of
	  SMD limits this G-Link transport to only connecting with entities
	  internal to the System-on-Chip.

config MSM_GLINK_SMEM_NATIVE_XPRT
	depends on MSM_SMEM
	depends on MSM_GLINK
	bool "Generic Link (G-Link) SMEM Native Transport"
	help
	  G-Link SMEM Native Transport is a G-Link Transport plug-in.  It allows
	  G-Link communication to remote entities through a shared memory
	  physical transport.  The nature of shared memory limits this G-Link
	  transport to only connecting with entities internal to the
	  System-on-Chip.

config MSM_SMEM_LOGGING
	depends on MSM_SMEM
	bool "MSM Shared Memory Logger"
	help
	  Enable the shared memory logging to log the events between
	  the various processors in the system. This option exposes
	  the shared memory logger at /dev/smem_log and a debugfs node
	  named smem_log.

config MSM_SMP2P
	bool "SMSM Point-to-Point (SMP2P)"
	depends on MSM_SMEM
	help
	  Provide point-to-point remote signaling support.
	  SMP2P enables transferring 32-bit values between
	  the local and a remote system using shared
	  memory and interrupts. A client can open multiple
	  32-bit values by specifying a unique string and
	  remote processor ID.

config MSM_SMP2P_TEST
	bool "SMSM Point-to-Point Test"
	depends on MSM_SMP2P
	help
	  Enables loopback and unit testing support for
	  SMP2P. Loopback support is used by other
	  processors to do unit testing. Unit tests
	  are used to verify the local and remote
	  implementations.

config MSM_QMI_INTERFACE
	depends on IPC_ROUTER
	depends on QMI_ENCDEC
	bool "MSM QMI Interface Library"
	help
	  Library to send and receive QMI messages over IPC Router.
	  This library provides interface functions to the kernel drivers
	  to perform QMI message marshaling and transport them over IPC
	  Router.

config MSM_RPM_SMD
	bool "RPM driver using SMD protocol"
	help
	  RPM is the dedicated hardware engine for managing shared SoC
	  resources. This config adds driver support for using SMD as a
	  transport layer communication with RPM hardware. It also selects
	  the MSM_MPM config that programs the MPM module to monitor interrupts
	  during sleep modes.

config QCOM_BUS_SCALING
	bool "Bus scaling driver"
	help
	  This option enables bus scaling on MSM devices.  Bus scaling
	  allows devices to request the clocks be set to rates sufficient
	  for the active devices needs without keeping the clocks at max
	  frequency when a slower speed is sufficient.

config QCOM_BUSPM_DEV
	tristate "MSM Bus Performance Monitor Kernel Module"
	depends on QCOM_BUS_SCALING
	help
	  This kernel module is used to mmap() hardware registers for the
	  performance monitors, counters, etc. The module can also be used to
	  allocate physical memory which is used by bus performance hardware to
	  dump performance data

config QCOM_BUS_TOPOLOGY_ADHOC
	bool "ad-hoc bus scaling topology"
	help
	  This option enables a driver that can handle adhoc bus topologies.
	  Adhoc bus topology driver allows one to many connections and maintains
	  directionality of connections by explicitly listing device connections
	  thus avoiding illegal routes.

config QCOM_GSBI
        tristate "QCOM General Serial Bus Interface"
        depends on ARCH_QCOM
        select MFD_SYSCON
        help
          Say y here to enable GSBI support.  The GSBI provides control
          functions for connecting the underlying serial UART, SPI, and I2C
          devices to the output pins.

config QCOM_PM
	bool "Qualcomm Power Management"
	depends on ARCH_QCOM && !ARM64
	select QCOM_SCM
	help
	  QCOM Platform specific power driver to manage cores and L2 low power
	  modes. It interface with various system drivers to put the cores in
	  low power modes.

config QCOM_SMEM
	tristate "Qualcomm Shared Memory Manager (SMEM)"
	depends on ARCH_QCOM
	depends on HWSPINLOCK
	help
	  Say y here to enable support for the Qualcomm Shared Memory Manager.
	  The driver provides an interface to items in a heap shared among all
	  processors in a Qualcomm platform.

config MSM_IPC_ROUTER_SMD_XPRT
	depends on MSM_SMD
	depends on IPC_ROUTER
	bool "MSM SMD XPRT Layer"
	help
	  SMD Transport Layer that enables IPC Router communication within
	  a System-on-Chip(SoC). When the SMD channels become available,
	  this layer registers a transport with IPC Router and enable
	  message exchange.

config MSM_IPC_ROUTER_HSIC_XPRT
	depends on USB_QCOM_IPC_BRIDGE
	depends on IPC_ROUTER
	bool "MSM HSIC XPRT Layer"
	help
	  HSIC Transport Layer that enables off-chip communication of
	  IPC Router. When the HSIC endpoint becomes available, this layer
	  registers the transport with IPC Router and enable message
	  exchange.

config MSM_IPC_ROUTER_MHI_XPRT
	depends on MSM_MHI
	depends on IPC_ROUTER
	bool "MSM MHI XPRT Layer"
	help
	  MHI Transport Layer that enables off-chip communication of
	  IPC Router. When the MHI endpoint becomes available, this layer
	  registers the transport with IPC Router and enable message
	  exchange.

config MSM_IPC_ROUTER_GLINK_XPRT
	depends on MSM_GLINK
	depends on IPC_ROUTER
	bool "MSM GLINK XPRT Layer"
	help
	  GLINK Transport Layer that enables IPC Router communication within
	  a System-on-Chip(SoC). When the GLINK channels become available,
	  this layer registers a transport with IPC Router and enable
	  message exchange.

config QCOM_SMD
	tristate "Qualcomm Shared Memory Driver (SMD)"
	depends on QCOM_SMEM
	help
	  Say y here to enable support for the Qualcomm Shared Memory Driver
	  providing communication channels to remote processors in Qualcomm
	  platforms.

config QCOM_SMD_RPM
	tristate "Qualcomm Resource Power Manager (RPM) over SMD"
	depends on QCOM_SMD && OF
	help
	  If you say yes to this option, support will be included for the
	  Resource Power Manager system found in the Qualcomm 8974 based
	  devices.

	  This is required to access many regulators, clocks and bus
	  frequencies controlled by the RPM on these devices.

	  Say M here if you want to include support for the Qualcomm RPM as a
	  module. This will build a module called "qcom-smd-rpm".

config MSM_SPM
	bool "Driver support for SPM and AVS wrapper hardware"
	help
	  Enables the support SAW and AVS wrapper hardware on MSMs SPM
	  hardware is used to manage the processor power during sleep. The
	  driver allows configuring SPM to allow different low power modes for
	  both core and L2.

config QCOM_SCM
       bool "Secure Channel Manager (SCM) support"
       default n

menuconfig QCOM_SCM_XPU
	bool "Qualcomm XPU configuration driver"
	depends on QCOM_SCM

if QCOM_SCM_XPU

choice
	prompt "XPU Violation Behavior"
	default QCOM_XPU_ERR_FATAL

config QCOM_XPU_ERR_FATAL
	bool "Configure XPU violations as fatal errors"
	help
	 Select if XPU violations have to be configured as fatal errors.

config QCOM_XPU_ERR_NONFATAL
	bool "Configure XPU violations as non-fatal errors"
	help
	 Select if XPU violations have to be configured as non-fatal errors.

endchoice

endif

config QCOM_SCM_ERRATA
	depends on DEBUG_FS
	depends on QCOM_SCM
	bool "Support for enabling/disabling errata workarounds via debugfs"
	help
	  Exposes a debugfs interface intended for advanced system debugging
	  where it may be desirable to enable or disable certain hardware
	  errata workarounds at runtime.

	  If unsure, say N.

if ARCH_QCOM

config QCOM_WATCHDOG_V2
	bool "Qualcomm Watchdog Support"
	help
	  This enables the watchdog module. It causes kernel panic if the
	  watchdog times out. It allows for detection of cpu hangs and
	  deadlocks. It does not run during the bootup process, so it will
	  not catch any early lockups.

config QCOM_MEMORY_DUMP
	bool "Qualcomm Memory Dump Support"
	help
	  This enables memory dump feature. It allows various client
	  subsystems to register respective dump regions. At the time
	  of deadlocks or cpu hangs these dump regions are captured to
	  give a snapshot of the system at the time of the crash.

config QCOM_MEMORY_DUMP_V2
	bool "QCOM Memory Dump V2 Support"
	help
	  This enables memory dump feature. It allows various client
	  subsystems to register respective dump regions. At the time
	  of deadlocks or cpu hangs these dump regions are captured to
	  give a snapshot of the system at the time of the crash.

config MSM_SECURE_BUFFER
	bool "Helper functions for securing buffers through TZ"
	help
	 Say 'Y' here for targets that need to call into TZ to secure
	 memory buffers. This ensures that only the correct clients can
	 use this memory and no unauthorized access is made to the
	 buffer

config MSM_GLADIATOR_ERP
	tristate "GLADIATOR coherency interconnect error reporting driver"
	help
	  Support dumping debug information for the GLADIATOR
	  cache interconnect in the error interrupt handler.
	  Meant to be used for debug scenarios only.

	  If unsure, say N.

config MSM_GLADIATOR_HANG_DETECT
	tristate "MSM Gladiator Hang Detection Support"
	help
	  This enables the gladiator hang detection module.
	  If the configured threshold is reached, it causes SoC reset on
	  gladiator hang detection and collects the context for the
	  gladiator hang.

config MSM_CORE_HANG_DETECT
	tristate "MSM Core Hang Detection Support"
	help
	  This enables the core hang detection module. It causes SoC
	  reset on core hang detection and collects the core context
	  for hang.

config MSM_RUN_QUEUE_STATS
	bool "Enable collection and exporting of MSM Run Queue stats to userspace"
	help
	 This option enables the driver to periodically collecting the statistics
	 of kernel run queue information and calculate the load of the system.
	 This information is exported to usespace via sysfs entries and userspace
	 algorithms uses info and decide when to turn on/off the cpu cores.


endif # ARCH_QCOM

config MSM_SUBSYSTEM_RESTART
	bool "MSM Subsystem Restart"
	help
	  This option enables the MSM subsystem restart framework.

	  The MSM subsystem restart framework provides support to boot,
	  shutdown, and restart subsystems with a reference counted API.
	  It also notifies userspace of transitions between these states via
	  sysfs.

config MSM_PIL
	bool "Peripheral image loading"
	select FW_LOADER
	default n
	help
	  Some peripherals need to be loaded into memory before they can be
	  brought out of reset.

	  Say yes to support these devices.

config MSM_PIL_SSR_GENERIC
	tristate "MSM Subsystem Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down MSM Subsystem processors.
	  This driver also monitors the SMSM status bits and the watchdog
	  interrupt for the subsystem and restarts it on a watchdog bite
	  or a fatal error. Subsystems include LPASS, Venus, VPU, WCNSS and
	  BCSS.

config MSM_PIL_MSS_QDSP6V5
	tristate "MSS QDSP6v5 (Hexagon) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down QDSP6v5 (Hexagon) processors
	  in modem subsystems. If you would like to make or receive phone
	  calls then say Y here.

	  If unsure, say N.

config TRACER_PKT
	bool "Tracer Packet"
	help
	  Tracer Packet helps in profiling the performance of inter-
	  processor communication protocols. The profiling information
	  can be logged into the tracer packet itself.

config QCOM_FORCE_WDOG_BITE_ON_PANIC
	bool "QCOM force watchdog bite"
	depends on QCOM_WATCHDOG_V2
	help
	  This forces a watchdog bite when the device restarts due to a
	  kernel panic. On certain MSM SoCs, this provides us
	  additional debugging information.

config MSM_MPM_OF
       bool "Modem Power Manager"
       depends on OF
       help
        MPM is a dedicated hardware resource responsible for entering and
        waking up from a system wide low power mode. The MPM driver tracks
        the wakeup interrupts and configures the MPM to monitor the wakeup
        interrupts when going to a system wide sleep mode. This config option
        enables the MPM driver that supports initialization from a device
        tree


config MSM_EVENT_TIMER
      bool "Event timer"
      help
        This option enables a modules that manages a list of event timers that
        need to be monitored by the PM. The enables the PM code to monitor
        events that require the core to be awake and ready to handle the
        event.

source "drivers/soc/qcom/memshare/Kconfig"