xref: /linux/drivers/firmware/qcom/Kconfig (revision bb29b957eaaa15be33243550d9ee576c2d601669)
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
37config QCOM_TZMEM_MODE_SHMBRIDGE
38	bool "TrustZone interface memory allocator: SHM Bridge"
39	depends on QCOM_TZMEM
40	help
41	  Use Qualcomm Shared Memory Bridge as memory allocator. The memory has the
42	  same alignment as in the 'Generic' allocator, which is used when this option
43	  is disabled, but is also explicitly marked as an SHM Bridge buffer.
44
45	  With this selected, all buffers passed to the TrustZone must be allocated
46	  using the TZMem allocator or else the TrustZone will refuse to use them.
47
48config QCOM_QSEECOM
49	bool "Qualcomm QSEECOM interface driver"
50	depends on QCOM_SCM=y
51	select AUXILIARY_BUS
52	help
53	  Various Qualcomm SoCs have a Secure Execution Environment (SEE) running
54	  in the Trust Zone. This module provides an interface to that via the
55	  QSEECOM mechanism, using SCM calls.
56
57	  The QSEECOM interface allows, among other things, access to applications
58	  running in the SEE. An example of such an application is 'uefisecapp',
59	  which is required to access UEFI variables on certain systems. If
60	  selected, the interface will also attempt to detect and register client
61	  devices for supported applications.
62
63	  Select Y here to enable the QSEECOM interface driver.
64
65config QCOM_QSEECOM_UEFISECAPP
66	bool "Qualcomm SEE UEFI Secure App client driver"
67	depends on QCOM_QSEECOM
68	depends on EFI
69	help
70	  Various Qualcomm SoCs do not allow direct access to EFI variables.
71	  Instead, these need to be accessed via the UEFI Secure Application
72	  (uefisecapp), residing in the Secure Execution Environment (SEE).
73
74	  This module provides a client driver for uefisecapp, installing efivar
75	  operations to allow the kernel accessing EFI variables, and via that also
76	  provide user-space with access to EFI variables via efivarfs.
77
78	  Select Y here to provide access to EFI variables on the aforementioned
79	  platforms.
80
81endmenu
82