xref: /linux-6.15/drivers/firmware/qcom/Kconfig (revision f86c6149)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# For a description of the syntax of this configuration file,
4# see Documentation/kbuild/kconfig-language.rst.
5#
6
7menu "Qualcomm firmware drivers"
8
9config QCOM_SCM
10	select QCOM_TZMEM
11	tristate
12
13config QCOM_TZMEM
14	tristate
15	select GENERIC_ALLOCATOR
16
17choice
18	prompt "TrustZone interface memory allocator mode"
19	default QCOM_TZMEM_MODE_GENERIC
20	help
21	  Selects the mode of the memory allocator providing memory buffers of
22	  suitable format for sharing with the TrustZone. If in doubt, select
23	  'Generic'.
24
25config QCOM_TZMEM_MODE_GENERIC
26	bool "Generic"
27	help
28	  Use the generic allocator mode. The memory is page-aligned, non-cachable
29	  and physically contiguous.
30
31config QCOM_TZMEM_MODE_SHMBRIDGE
32	bool "SHM Bridge"
33	help
34	  Use Qualcomm Shared Memory Bridge. The memory has the same alignment as
35	  in the 'Generic' allocator but is also explicitly marked as an SHM Bridge
36	  buffer.
37
38	  With this selected, all buffers passed to the TrustZone must be allocated
39	  using the TZMem allocator or else the TrustZone will refuse to use them.
40
41endchoice
42
43config QCOM_SCM_DOWNLOAD_MODE_DEFAULT
44	bool "Qualcomm download mode enabled by default"
45	depends on QCOM_SCM
46	help
47	  A device with "download mode" enabled will upon an unexpected
48	  warm-restart enter a special debug mode that allows the user to
49	  "download" memory content over USB for offline postmortem analysis.
50	  The feature can be enabled/disabled on the kernel command line.
51
52	  Say Y here to enable "download mode" by default.
53
54config QCOM_QSEECOM
55	bool "Qualcomm QSEECOM interface driver"
56	depends on QCOM_SCM=y
57	select AUXILIARY_BUS
58	help
59	  Various Qualcomm SoCs have a Secure Execution Environment (SEE) running
60	  in the Trust Zone. This module provides an interface to that via the
61	  QSEECOM mechanism, using SCM calls.
62
63	  The QSEECOM interface allows, among other things, access to applications
64	  running in the SEE. An example of such an application is 'uefisecapp',
65	  which is required to access UEFI variables on certain systems. If
66	  selected, the interface will also attempt to detect and register client
67	  devices for supported applications.
68
69	  Select Y here to enable the QSEECOM interface driver.
70
71config QCOM_QSEECOM_UEFISECAPP
72	bool "Qualcomm SEE UEFI Secure App client driver"
73	depends on QCOM_QSEECOM
74	depends on EFI
75	help
76	  Various Qualcomm SoCs do not allow direct access to EFI variables.
77	  Instead, these need to be accessed via the UEFI Secure Application
78	  (uefisecapp), residing in the Secure Execution Environment (SEE).
79
80	  This module provides a client driver for uefisecapp, installing efivar
81	  operations to allow the kernel accessing EFI variables, and via that also
82	  provide user-space with access to EFI variables via efivarfs.
83
84	  Select Y here to provide access to EFI variables on the aforementioned
85	  platforms.
86
87endmenu
88