xref: /linux/drivers/firmware/qcom/Kconfig (revision a50eba1e778ad4da5b6f9ddbbf57dabbea59bc05)
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_PAS
10	tristate "Qualcomm generic PAS interface driver"
11	help
12	  Enable the generic Peripheral Authentication Service (PAS) provided
13	  by the firmware. It acts as the common layer with different TZ
14	  backends plugged in whether it's an SCM implementation or a proper
15	  TEE bus based PAS service implementation.
16
17config QCOM_PAS_TEE
18	tristate "Qualcomm PAS TEE interface driver"
19	select QCOM_PAS
20	depends on TEE
21	depends on !CPU_BIG_ENDIAN
22	default m if ARCH_QCOM
23	help
24	  Enable the generic Peripheral Authentication Service (PAS) provided
25	  by the firmware TEE implementation as the backend.
26
27config QCOM_SCM
28	tristate "Qualcomm PAS SCM interface driver"
29	select QCOM_PAS
30	select QCOM_TZMEM
31	default y if ARCH_QCOM
32
33config QCOM_TZMEM
34	tristate
35	select GENERIC_ALLOCATOR
36
37choice
38	prompt "TrustZone interface memory allocator mode"
39	depends on QCOM_TZMEM
40	default QCOM_TZMEM_MODE_GENERIC
41	help
42	  Selects the mode of the memory allocator providing memory buffers of
43	  suitable format for sharing with the TrustZone. If in doubt, select
44	  'Generic'.
45
46config QCOM_TZMEM_MODE_GENERIC
47	bool "Generic"
48	help
49	  Use the generic allocator mode. The memory is page-aligned, non-cachable
50	  and physically contiguous.
51
52config QCOM_TZMEM_MODE_SHMBRIDGE
53	bool "SHM Bridge"
54	help
55	  Use Qualcomm Shared Memory Bridge. The memory has the same alignment as
56	  in the 'Generic' allocator but is also explicitly marked as an SHM Bridge
57	  buffer.
58
59	  With this selected, all buffers passed to the TrustZone must be allocated
60	  using the TZMem allocator or else the TrustZone will refuse to use them.
61
62endchoice
63
64config QCOM_QSEECOM
65	bool "Qualcomm QSEECOM interface driver"
66	depends on QCOM_SCM=y
67	select AUXILIARY_BUS
68	help
69	  Various Qualcomm SoCs have a Secure Execution Environment (SEE) running
70	  in the Trust Zone. This module provides an interface to that via the
71	  QSEECOM mechanism, using SCM calls.
72
73	  The QSEECOM interface allows, among other things, access to applications
74	  running in the SEE. An example of such an application is 'uefisecapp',
75	  which is required to access UEFI variables on certain systems. If
76	  selected, the interface will also attempt to detect and register client
77	  devices for supported applications.
78
79	  Select Y here to enable the QSEECOM interface driver.
80
81config QCOM_QSEECOM_UEFISECAPP
82	bool "Qualcomm SEE UEFI Secure App client driver"
83	depends on QCOM_QSEECOM
84	depends on EFI
85	help
86	  Various Qualcomm SoCs do not allow direct access to EFI variables.
87	  Instead, these need to be accessed via the UEFI Secure Application
88	  (uefisecapp), residing in the Secure Execution Environment (SEE).
89
90	  This module provides a client driver for uefisecapp, installing efivar
91	  operations to allow the kernel accessing EFI variables, and via that also
92	  provide user-space with access to EFI variables via efivarfs.
93
94	  Select Y here to provide access to EFI variables on the aforementioned
95	  platforms.
96
97endmenu
98