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