xref: /linux/drivers/firmware/qcom/Kconfig (revision 9de4ad3bde144b55b8451fc280c18107c139481c)
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_SCM_DOWNLOAD_MODE_DEFAULT
45bdac188eSBartosz Golaszewski	bool "Qualcomm download mode enabled by default"
46bdac188eSBartosz Golaszewski	depends on QCOM_SCM
47bdac188eSBartosz Golaszewski	help
48bdac188eSBartosz Golaszewski	  A device with "download mode" enabled will upon an unexpected
49bdac188eSBartosz Golaszewski	  warm-restart enter a special debug mode that allows the user to
50bdac188eSBartosz Golaszewski	  "download" memory content over USB for offline postmortem analysis.
51bdac188eSBartosz Golaszewski	  The feature can be enabled/disabled on the kernel command line.
52bdac188eSBartosz Golaszewski
53bdac188eSBartosz Golaszewski	  Say Y here to enable "download mode" by default.
54bdac188eSBartosz Golaszewski
55bdac188eSBartosz Golaszewskiconfig QCOM_QSEECOM
56bdac188eSBartosz Golaszewski	bool "Qualcomm QSEECOM interface driver"
57bdac188eSBartosz Golaszewski	depends on QCOM_SCM=y
58bdac188eSBartosz Golaszewski	select AUXILIARY_BUS
59bdac188eSBartosz Golaszewski	help
60bdac188eSBartosz Golaszewski	  Various Qualcomm SoCs have a Secure Execution Environment (SEE) running
61bdac188eSBartosz Golaszewski	  in the Trust Zone. This module provides an interface to that via the
62bdac188eSBartosz Golaszewski	  QSEECOM mechanism, using SCM calls.
63bdac188eSBartosz Golaszewski
64bdac188eSBartosz Golaszewski	  The QSEECOM interface allows, among other things, access to applications
65bdac188eSBartosz Golaszewski	  running in the SEE. An example of such an application is 'uefisecapp',
66bdac188eSBartosz Golaszewski	  which is required to access UEFI variables on certain systems. If
67bdac188eSBartosz Golaszewski	  selected, the interface will also attempt to detect and register client
68bdac188eSBartosz Golaszewski	  devices for supported applications.
69bdac188eSBartosz Golaszewski
70bdac188eSBartosz Golaszewski	  Select Y here to enable the QSEECOM interface driver.
71bdac188eSBartosz Golaszewski
72bdac188eSBartosz Golaszewskiconfig QCOM_QSEECOM_UEFISECAPP
73bdac188eSBartosz Golaszewski	bool "Qualcomm SEE UEFI Secure App client driver"
74bdac188eSBartosz Golaszewski	depends on QCOM_QSEECOM
75bdac188eSBartosz Golaszewski	depends on EFI
76bdac188eSBartosz Golaszewski	help
77bdac188eSBartosz Golaszewski	  Various Qualcomm SoCs do not allow direct access to EFI variables.
78bdac188eSBartosz Golaszewski	  Instead, these need to be accessed via the UEFI Secure Application
79bdac188eSBartosz Golaszewski	  (uefisecapp), residing in the Secure Execution Environment (SEE).
80bdac188eSBartosz Golaszewski
81bdac188eSBartosz Golaszewski	  This module provides a client driver for uefisecapp, installing efivar
82bdac188eSBartosz Golaszewski	  operations to allow the kernel accessing EFI variables, and via that also
83bdac188eSBartosz Golaszewski	  provide user-space with access to EFI variables via efivarfs.
84bdac188eSBartosz Golaszewski
85bdac188eSBartosz Golaszewski	  Select Y here to provide access to EFI variables on the aforementioned
86bdac188eSBartosz Golaszewski	  platforms.
87bdac188eSBartosz Golaszewski
88bdac188eSBartosz Golaszewskiendmenu
89