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
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
|
#
# QCOM Soc drivers
#
config MSM_INRUSH_CURRENT_MITIGATION
bool "Inrush-current mitigation Driver"
help
This driver helps in mitigating in-rush current on MSM
chipsets which has voltage droop issues due to sudden
huge load on a rail. This driver introduces an intermediate
load to mitigate the in-rush current.
config MSM_PFE_WA
depends on HW_PERF_EVENTS
bool "Enable a H/W PFE WA"
help
Sometimes the PFTLB entries get stuck in the invalid state and new
prefetches get dropped. For a workaround, count L1 prefeches dropped
due to PFTLB miss and reset H/W PFE when a overflow happens.
If unsure, say N.
config QCOM_COMMON_LOG
bool "QCOM Common Log Support"
help
Use this to export symbols of some log address and variables
that need to parse crash dump files to a memory dump table. This
table can be used by post analysis tools to extract information
from memory when device crashes.
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 QPNP_HAPTIC
tristate "Haptic support for QPNP PMIC"
depends on ARCH_QCOM
help
This option enables device driver support for the haptic peripheral
found on Qualcomm Technologies, Inc. QPNP PMICs. The haptic
peripheral is capable of driving both LRA and ERM vibrators. This
module provides haptic feedback for user actions such as a long press
on the touch screen. It uses the Android timed-output framework.
config QPNP_PBS
tristate "PBS trigger support for QPNP PMIC"
depends on SPMI
help
This driver supports configuring software PBS trigger event through PBS
RAM on Qualcomm Technologies, Inc. QPNP PMICs. This module provides
the APIs to the client drivers that wants to send the PBS trigger
event to the PBS RAM.
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_GLINK_SPI_XPRT
depends on MSM_GLINK
tristate "Generic Link (G-Link) SPI Transport"
help
G-Link SPI Transport is a Transport plug-in developed over SPI
bus. This transport plug-in performs marshaling of G-Link
commands & data to the appropriate SPI bus wire format and
allows for G-Link communication with remote subsystems that are
external to the System-on-Chip.
config MSM_SPCOM
depends on MSM_GLINK
bool "Secure Processor Communication over GLINK"
help
spcom driver allows loading Secure Processor Applications and
sending messages to Secure Processor Applications.
spcom provides interface to both user space app and kernel driver.
It is using glink as the transport layer, which provides multiple
logical channels over signle physical channel.
The physical layer is based on shared memory and interrupts.
spcom provides clients/server API, although currently only one client
or server is allowed per logical channel.
config MSM_SPSS_UTILS
depends on MSM_PIL
bool "Secure Processor Utilities"
help
spss-utils driver selects Secure Processor firmware file name.
The firmware file name for test or production is selected based
on a test fuse.
Different file name is used for differnt SPSS HW versions,
because the SPSS firmware size is too small to support multiple
HW versions.
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_L2_IA_DEBUG
bool "Enable MSM L2 Indirect Access Debug"
depends on DEBUG_FS
default n
help
This option enables L2 indirect access debug
capability. It exposes L2 indirect access
debugfs interface to get/set data, address,
and target cpus.
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_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_SERVICE_LOCATOR
bool "Service Locator"
depends on MSM_QMI_INTERFACE
help
The Service Locator provides a library to retrieve location
information given a service identifier. Location here translates
to what process domain exports the service, and which subsystem
that process domain will execute in.
config MSM_HVC
bool "MSM Hypervisor Call Support"
help
This enables the Hypervisor Call module. It provides apis to call
into the hypervisor thereby allowing access to services exposed by
the hypervisor. It is primarily intended to be used for Silicon
Partner/Manufacturer function identifier subrange but supports other
service call subranges as well.
config QCOM_DCC
bool "QCOM Data Capture and Compare enigne support"
help
This option enables driver for Data Capture and Compare engine. DCC
driver provides interface to configure DCC block and read back
captured data from DCC's internal SRAM.
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_SYSMON_GLINK_COMM
bool "MSM System Monitor communication support using GLINK transport"
depends on MSM_GLINK && MSM_SUBSYSTEM_RESTART
help
This option adds support for MSM System Monitor APIs using the GLINK
transport layer. The APIs provided may be used for notifying
subsystems within the SoC about other subsystems' power-up/down
state-changes.
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 MSM_SYSTEM_HEALTH_MONITOR
bool "System Health Monitor"
depends on MSM_QMI_INTERFACE && MSM_SUBSYSTEM_RESTART
help
System Health Monitor (SHM) passively monitors the health of the
peripherals connected to the application processor. Software
components in the application processor that experience
communication failure can request the SHM to perform a system-wide
health check. If any failures are detected during the health-check,
then a subsystem restart will be triggered for the failed subsystem.
config MSM_GLINK_PKT
bool "Enable device interface for GLINK packet channels"
depends on MSM_GLINK
help
G-link packet driver provides the interface for the userspace
clients to communicate over G-Link via deivce nodes.
This enable the usersapce clients to read and write to
some glink packets channel.
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 MSM_L2_SPM
bool "SPM support for L2 cache"
help
Enable SPM driver support for L2 cache. Some MSM chipsets allow
control of L2 cache low power mode with a Subsystem Power manager.
Enabling this driver allows configuring L2 SPM for low power modes
on supported chipsets
config QCOM_SCM
bool "Secure Channel Manager (SCM) support"
default n
config QCOM_SCM_QCPE
bool "Para-Virtualized Secure Channel Manager (SCM) support over QCPE"
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_IRQ_HELPER
bool "QCOM Irq Helper"
help
This enables the irq helper module. It exposes two APIs
int irq_blacklist_on(void) and int irq_blacklist_off(void)
to other kernel module.
These two apis will be used to control the black list used
by the irq balancer.
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 QCOM_MINIDUMP
bool "QCOM Minidump Support"
depends on MSM_SMEM && QCOM_DLOAD_MODE
help
This enables minidump feature. It allows various clients to
register to dump their state at system bad state (panic/WDT,etc.,).
This uses SMEM to store all registered client information.
This will dump all registered entries, only when DLOAD mode is enabled.
config MINIDUMP_MAX_ENTRIES
int "Minidump Maximum num of entries"
default 200
depends on QCOM_MINIDUMP
help
This defines maximum number of entries to be allocated for application
subsytem in Minidump SMEM table.
config ICNSS
tristate "Platform driver for Q6 integrated connectivity"
select CNSS_UTILS
---help---
This module adds support for Q6 integrated WLAN connectivity
subsystem. This module is responsible for communicating WLAN on/off
control messages to FW over QMI channel. It is also responsible for
handling WLAN PD restart notifications.
config ICNSS_DEBUG
bool "ICNSS debug support"
depends on ICNSS
---help---
Say 'Y' here to enable ICNSS driver debug support. Debug support
primarily consists of logs consisting of information related to
hardware register access and enabling BUG_ON for certain cases to aid
the debugging.
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_TZ_SMMU
bool "Helper functions for SMMU configuration through TZ"
depends on ARCH_MSMTHULIUM
help
Say 'Y' here for targets that need to call into TZ to configure
SMMUs for any reason (for example, for errata workarounds or
configuration of SMMU virtualization).
If unsure, say N.
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_ERP_V2
tristate "GLADIATOR coherency interconnect error reporting driver v2"
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 PANIC_ON_GLADIATOR_ERROR_V2
depends on MSM_GLADIATOR_ERP_V2
bool "Panic on GLADIATOR error report v2"
help
Panic upon detection of an Gladiator coherency interconnect error
in order to support dumping debug information.
Meant to be used for debug scenarios only.
If unsure, say N.
config MSM_GLADIATOR_ERROR_V2_MAIN_LOGGER_ONLY
depends on MSM_GLADIATOR_ERP_V2
bool "QCOM Gladiator error v2 main logger support only"
help
Gladiator has two error loggers to report error captured.
By default, two error loggers will both be enabled.
This option enables only the main error logger.
If unsure, say no
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.
config MSM_JTAGV8
bool "Debug and ETM trace support across power collapse for ARMv8"
default y if CORESIGHT_SOURCE_ETM4X
help
Enables support for debugging (specifically breakpoints) and ETM
processor tracing across power collapse both for JTag and OS hosted
software running on ARMv8 target. Enabling this will ensure debug
and ETM registers are saved and restored across power collapse.
If unsure, say 'N' here to avoid potential power, performance and
memory penalty.
config MSM_BOOT_STATS
bool "Use MSM boot stats reporting"
help
Use this to report msm boot stats such as bootloader throughput,
display init, total boot time.
This figures are reported in mpm sleep clock cycles and have a
resolution of 31 bits as 1 bit is used as an overflow check.
config MSM_BOOT_TIME_MARKER
bool "Use MSM boot time marker reporting"
depends on MSM_BOOT_STATS
help
Use this to mark msm boot kpi for measurement.
An instrumentation for boot time measurement.
To create an entry, call "place_marker" function.
At userspace, write marker name to "/sys/kernel/debug/bootkpi/kpi_values"
If unsure, say N
config QCOM_CPUSS_DUMP
bool "CPU Subsystem Dumping support"
help
Add support to dump various hardware entities such as the instruction
and data tlb's as well as the unified tlb, which are a part of the
cpu subsystem to an allocated buffer. This allows for analysis of the
the entities if corruption is suspected.
If unsure, say N
config MSM_QDSP6_APRV2
bool "Audio QDSP6 APRv2 support"
depends on MSM_SMD
help
Enable APRv2 IPC protocol support between
application processor and QDSP6. APR is
used by audio driver to configure QDSP6's
ASM, ADM and AFE.
config MSM_QDSP6_APRV3
bool "Audio QDSP6 APRv3 support"
depends on MSM_SMD
help
Enable APRv3 IPC protocol support between
application processor and QDSP6. APR is
used by audio driver to configure QDSP6v2's
ASM, ADM and AFE.
config MSM_QDSP6_APRV2_GLINK
bool "Audio QDSP6 APRv2 over Glink support"
depends on MSM_GLINK
help
Enable APRv2 IPC protocol support over
Glink between application processor and
QDSP6. APR is used by audio driver to
configure QDSP6's ASM, ADM and AFE.
config MSM_QDSP6_APRV3_GLINK
bool "Audio QDSP6 APRv3 over Glink support"
depends on MSM_GLINK
help
Enable APRv3 IPC protocol support over
Glink between application processor and
QDSP6. APR is used by audio driver to
configure QDSP6v2's ASM, ADM and AFE.
config MSM_QDSP6_SSR
bool "Audio QDSP6 SSR support"
depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || \
MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
help
Enable Subsystem Restart. Reset audio
clients when the ADSP subsystem is
restarted. Subsystem Restart for audio
is only used for processes on the ADSP
and signals audio drivers through APR.
config MSM_QDSP6_PDR
bool "Audio QDSP6 PDR support"
depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || \
MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
help
Enable Protection Domain Restart. Reset
audio clients when a process on the ADSP
is restarted. PDR for audio is only used
for processes on the ADSP and signals
audio drivers through APR.
config MSM_QDSP6_NOTIFIER
bool "Audio QDSP6 PDR support"
depends on MSM_QDSP6_SSR || MSM_QDSP6_PDR
help
Enable notifier which decides whether
to use SSR or PDR and notifies all
audio clients of the event. Both SSR
and PDR are recovery methods when
there is a crash on ADSP. Audio drivers
are contacted by ADSP through APR.
config MSM_ADSP_LOADER
tristate "ADSP loader support"
select SND_SOC_MSM_APRV2_INTF
depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || \
MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
help
Enable ADSP image loader.
The ADSP loader brings ADSP out of reset
for the platforms that use APRv2.
Say M if you want to enable this module.
config MSM_CDSP_LOADER
tristate "CDSP loader support"
help
Enable CDSP image loader.
The CDSP loader brings CDSP out of reset
during boot.
Say M if you want to enable this module.
config MSM_PERFORMANCE
tristate "msm_performance driver to support perflock request"
help
This driver is used to set minfreq/maxfreq for CPUs from userspace via
perflock. It also add CPU hotplug support to userspace. It ensures
that no more than a user specified number of CPUs stay online at any
given point in time. It also provides CPU/IO intensive workload
detection for userspace.
config MSM_PERFORMANCE_HOTPLUG_ON
bool "Hotplug functionality through msm_performance turned on"
depends on MSM_PERFORMANCE
help
Setting this flag to true will enable the nodes needed for core-control
functionality of hot plugging cores through msm_performance if there is
no default core-control driver available.
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_SYSMON_COMM
bool "MSM System Monitor communication support"
depends on MSM_SMD && MSM_SUBSYSTEM_RESTART
help
This option adds support for MSM System Monitor library, which
provides an API that may be used for notifying subsystems within
the SoC about other subsystems' power-up/down state-changes.
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.
config MSM_AVTIMER
tristate "Avtimer Driver"
depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || MSM_QDSP6_APRV2_GLINK
help
This driver gets the Q6 out of power collapsed state and
exposes ioctl control to read avtimer tick.
config MSM_KERNEL_PROTECT
bool "Protect kernel text by removing write permissions in stage-2"
depends on !FUNCTION_TRACER
help
On hypervisor-enabled targets, this option will make a call into
the hypervisor to request that the kernel text be remapped
without write permissions. This protects against malicious
devices rewriting kernel code.
Note that this will BREAK any runtime patching of the kernel text
(i.e. anything that uses apply_alternatives,
aarch64_insn_patch_text_nosync, etc. including the various CPU
errata workarounds in arch/arm64/kernel/cpu_errata.c).
config MSM_KERNEL_PROTECT_TEST
bool "Bootup test of kernel protection (INTENTIONAL CRASH)"
depends on MSM_KERNEL_PROTECT
help
Attempts to write to the kernel text after making the kernel text
read-only. This test is FATAL whether it passes or fails!
Success is signaled by a stage-2 fault.
config QCOM_REMOTEQDSS
bool "Allow debug tools to enable events on other processors"
depends on QCOM_SCM && DEBUG_FS
help
Other onchip processors/execution environments may support debug
events. Provide a sysfs interface for debug tools to dynamically
enable/disable these events. Interface located in
/sys/class/remoteqdss.
config MSM_SERVICE_NOTIFIER
bool "Service Notifier"
depends on MSM_SERVICE_LOCATOR && MSM_SUBSYSTEM_RESTART
help
The Service Notifier provides a library for a kernel client to
register for state change notifications regarding a remote service.
A remote service here refers to a process providing certain services
like audio, the identifier for which is provided by the service
locator.
config MSM_QBT1000
bool "QBT1000 Ultrasonic Fingerprint Sensor"
help
This driver provides services for configuring the fingerprint
sensor hardware and for communicating with the trusted app which
uses it. It enables clocks and provides commands for loading
trusted apps, unloading them and marshalling buffers to the
trusted fingerprint app.
config MSM_RPM_RBCPR_STATS_V2_LOG
tristate "MSM Resource Power Manager RPBCPR Stat Driver"
depends on DEBUG_FS
help
This option enables v2 of the rpmrbcpr_stats driver which reads RPM
memory for statistics pertaining to RPM's RBCPR(Rapid Bridge Core
Power Reduction) driver. The drivers outputs the message via a
debugfs node.
config MSM_RPM_LOG
tristate "MSM Resource Power Manager Log Driver"
depends on DEBUG_FS
depends on MSM_RPM_SMD
default n
help
This option enables a driver which can read from a circular buffer
of messages produced by the RPM. These messages provide diagnostic
information about RPM operation. The driver outputs the messages
via a debugfs node.
config MSM_RPM_STATS_LOG
tristate "MSM Resource Power Manager Stat Driver"
depends on DEBUG_FS
depends on MSM_RPM_SMD
default n
help
This option enables a driver which reads RPM messages from a shared
memory location. These messages provide statistical information about
the low power modes that RPM enters. The drivers outputs the message
via a debugfs node.
config QSEE_IPC_IRQ_BRIDGE
tristate "QSEE IPC Interrupt Bridge"
help
This module enables bridging an Inter-Processor Communication(IPC)
interrupt from a remote subsystem directed towards Qualcomm
Technologies, Inc. Secure Execution Environment(QSEE).
config WCD_DSP_GLINK
tristate "WCD DSP GLINK Driver"
depends on MSM_GLINK
default y if SND_SOC_WCD934X=y
help
This option enables driver which provides communication interface
between MSM and WCD DSP over glink transport protocol. This driver
provides read and write interface via char device.
config QCOM_SMCINVOKE
bool "Secure QSEE Support"
help
Enable SMCInvoke driver which supports capability based secure
communication between QSEE and HLOS.
config QCOM_EARLY_RANDOM
bool "Initialize random pool very early"
help
The standard random pool may not initialize until late in the boot
process which means that any calls to get random numbers before then
may not be truly random. Select this option to make an early call
to get some random data to put in the pool. If unsure, say N.
config QCOM_CX_IPEAK
bool "Common driver to handle Cx iPeak limitation"
help
Cx ipeak HW module is used to limit the current drawn by various subsystem
blocks on Cx power rail. Each client needs to set their
bit in tcsr register if it is going to cross its own threshold. If all
clients are going to cross their thresholds then Cx ipeak hw module will raise
an interrupt to cDSP block to throttle cDSP fmax.
config MSM_CACHE_M4M_ERP64
bool "Cache and M4M error report"
depends on ARCH_MSM8996
help
Say 'Y' here to enable reporting of cache and M4M errors to the kernel
log. The kernel log contains collected error syndrome and address
registers. These register dumps can be used as useful information
to find out possible hardware problems.
config MSM_CACHE_M4M_ERP64_PANIC_ON_CE
bool "Panic on correctable cache/M4M errors"
help
Say 'Y' here to cause kernel panic when correctable cache/M4M errors
are detected. Enabling this is useful when you want to dump memory
and system state close to the time when the error occured.
If unsure, say N.
config MSM_CACHE_M4M_ERP64_PANIC_ON_UE
bool "Panic on uncorrectable cache/M4M errors"
help
Say 'Y' here to cause kernel panic when uncorrectable cache/M4M errors
are detected.
source "drivers/soc/qcom/memshare/Kconfig"
|