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