xref: /linux/drivers/firmware/qcom/Kconfig (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1bdac188eSBartosz Golaszewski# SPDX-License-Identifier: GPL-2.0-only
2bdac188eSBartosz Golaszewski#
3bdac188eSBartosz Golaszewski# For a description of the syntax of this configuration file,
4bdac188eSBartosz Golaszewski# see Documentation/kbuild/kconfig-language.rst.
5bdac188eSBartosz Golaszewski#
6bdac188eSBartosz Golaszewski
7bdac188eSBartosz Golaszewskimenu "Qualcomm firmware drivers"
8bdac188eSBartosz Golaszewski
9bdac188eSBartosz Golaszewskiconfig QCOM_SCM
1040289e35SBartosz Golaszewski	select QCOM_TZMEM
11bdac188eSBartosz Golaszewski	tristate
12bdac188eSBartosz Golaszewski
1384f5a7b6SBartosz Golaszewskiconfig QCOM_TZMEM
1484f5a7b6SBartosz Golaszewski	tristate
1584f5a7b6SBartosz Golaszewski	select GENERIC_ALLOCATOR
1684f5a7b6SBartosz Golaszewski
1784f5a7b6SBartosz Golaszewskichoice
1884f5a7b6SBartosz Golaszewski	prompt "TrustZone interface memory allocator mode"
19*9de4ad3bSLinus Torvalds	depends on QCOM_TZMEM
2084f5a7b6SBartosz Golaszewski	default QCOM_TZMEM_MODE_GENERIC
2184f5a7b6SBartosz Golaszewski	help
2284f5a7b6SBartosz Golaszewski	  Selects the mode of the memory allocator providing memory buffers of
2384f5a7b6SBartosz Golaszewski	  suitable format for sharing with the TrustZone. If in doubt, select
2484f5a7b6SBartosz Golaszewski	  'Generic'.
2584f5a7b6SBartosz Golaszewski
2684f5a7b6SBartosz Golaszewskiconfig QCOM_TZMEM_MODE_GENERIC
2784f5a7b6SBartosz Golaszewski	bool "Generic"
2884f5a7b6SBartosz Golaszewski	help
2984f5a7b6SBartosz Golaszewski	  Use the generic allocator mode. The memory is page-aligned, non-cachable
3084f5a7b6SBartosz Golaszewski	  and physically contiguous.
3184f5a7b6SBartosz Golaszewski
32f86c6149SBartosz Golaszewskiconfig QCOM_TZMEM_MODE_SHMBRIDGE
33f86c6149SBartosz Golaszewski	bool "SHM Bridge"
34f86c6149SBartosz Golaszewski	help
35f86c6149SBartosz Golaszewski	  Use Qualcomm Shared Memory Bridge. The memory has the same alignment as
36f86c6149SBartosz Golaszewski	  in the 'Generic' allocator but is also explicitly marked as an SHM Bridge
37f86c6149SBartosz Golaszewski	  buffer.
38f86c6149SBartosz Golaszewski
39f86c6149SBartosz Golaszewski	  With this selected, all buffers passed to the TrustZone must be allocated
40f86c6149SBartosz Golaszewski	  using the TZMem allocator or else the TrustZone will refuse to use them.
41f86c6149SBartosz Golaszewski
4284f5a7b6SBartosz Golaszewskiendchoice
4384f5a7b6SBartosz Golaszewski
44bdac188eSBartosz Golaszewskiconfig QCOM_QSEECOM
45bdac188eSBartosz Golaszewski	bool "Qualcomm QSEECOM interface driver"
46bdac188eSBartosz Golaszewski	depends on QCOM_SCM=y
47bdac188eSBartosz Golaszewski	select AUXILIARY_BUS
48bdac188eSBartosz Golaszewski	help
49bdac188eSBartosz Golaszewski	  Various Qualcomm SoCs have a Secure Execution Environment (SEE) running
50bdac188eSBartosz Golaszewski	  in the Trust Zone. This module provides an interface to that via the
51bdac188eSBartosz Golaszewski	  QSEECOM mechanism, using SCM calls.
52bdac188eSBartosz Golaszewski
53bdac188eSBartosz Golaszewski	  The QSEECOM interface allows, among other things, access to applications
54bdac188eSBartosz Golaszewski	  running in the SEE. An example of such an application is 'uefisecapp',
55bdac188eSBartosz Golaszewski	  which is required to access UEFI variables on certain systems. If
56bdac188eSBartosz Golaszewski	  selected, the interface will also attempt to detect and register client
57bdac188eSBartosz Golaszewski	  devices for supported applications.
58bdac188eSBartosz Golaszewski
59bdac188eSBartosz Golaszewski	  Select Y here to enable the QSEECOM interface driver.
60bdac188eSBartosz Golaszewski
61bdac188eSBartosz Golaszewskiconfig QCOM_QSEECOM_UEFISECAPP
62bdac188eSBartosz Golaszewski	bool "Qualcomm SEE UEFI Secure App client driver"
63bdac188eSBartosz Golaszewski	depends on QCOM_QSEECOM
64bdac188eSBartosz Golaszewski	depends on EFI
65bdac188eSBartosz Golaszewski	help
66bdac188eSBartosz Golaszewski	  Various Qualcomm SoCs do not allow direct access to EFI variables.
67bdac188eSBartosz Golaszewski	  Instead, these need to be accessed via the UEFI Secure Application
68bdac188eSBartosz Golaszewski	  (uefisecapp), residing in the Secure Execution Environment (SEE).
69bdac188eSBartosz Golaszewski
70bdac188eSBartosz Golaszewski	  This module provides a client driver for uefisecapp, installing efivar
71bdac188eSBartosz Golaszewski	  operations to allow the kernel accessing EFI variables, and via that also
72bdac188eSBartosz Golaszewski	  provide user-space with access to EFI variables via efivarfs.
73bdac188eSBartosz Golaszewski
74bdac188eSBartosz Golaszewski	  Select Y here to provide access to EFI variables on the aforementioned
75bdac188eSBartosz Golaszewski	  platforms.
76bdac188eSBartosz Golaszewski
77bdac188eSBartosz Golaszewskiendmenu
78