xref: /linux/drivers/firmware/qcom/Kconfig (revision f86c61498a573a19b19b0ba2784dc1bd4dcfc170)
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"
1984f5a7b6SBartosz Golaszewski	default QCOM_TZMEM_MODE_GENERIC
2084f5a7b6SBartosz Golaszewski	help
2184f5a7b6SBartosz Golaszewski	  Selects the mode of the memory allocator providing memory buffers of
2284f5a7b6SBartosz Golaszewski	  suitable format for sharing with the TrustZone. If in doubt, select
2384f5a7b6SBartosz Golaszewski	  'Generic'.
2484f5a7b6SBartosz Golaszewski
2584f5a7b6SBartosz Golaszewskiconfig QCOM_TZMEM_MODE_GENERIC
2684f5a7b6SBartosz Golaszewski	bool "Generic"
2784f5a7b6SBartosz Golaszewski	help
2884f5a7b6SBartosz Golaszewski	  Use the generic allocator mode. The memory is page-aligned, non-cachable
2984f5a7b6SBartosz Golaszewski	  and physically contiguous.
3084f5a7b6SBartosz Golaszewski
31*f86c6149SBartosz Golaszewskiconfig QCOM_TZMEM_MODE_SHMBRIDGE
32*f86c6149SBartosz Golaszewski	bool "SHM Bridge"
33*f86c6149SBartosz Golaszewski	help
34*f86c6149SBartosz Golaszewski	  Use Qualcomm Shared Memory Bridge. The memory has the same alignment as
35*f86c6149SBartosz Golaszewski	  in the 'Generic' allocator but is also explicitly marked as an SHM Bridge
36*f86c6149SBartosz Golaszewski	  buffer.
37*f86c6149SBartosz Golaszewski
38*f86c6149SBartosz Golaszewski	  With this selected, all buffers passed to the TrustZone must be allocated
39*f86c6149SBartosz Golaszewski	  using the TZMem allocator or else the TrustZone will refuse to use them.
40*f86c6149SBartosz Golaszewski
4184f5a7b6SBartosz Golaszewskiendchoice
4284f5a7b6SBartosz Golaszewski
43bdac188eSBartosz Golaszewskiconfig QCOM_SCM_DOWNLOAD_MODE_DEFAULT
44bdac188eSBartosz Golaszewski	bool "Qualcomm download mode enabled by default"
45bdac188eSBartosz Golaszewski	depends on QCOM_SCM
46bdac188eSBartosz Golaszewski	help
47bdac188eSBartosz Golaszewski	  A device with "download mode" enabled will upon an unexpected
48bdac188eSBartosz Golaszewski	  warm-restart enter a special debug mode that allows the user to
49bdac188eSBartosz Golaszewski	  "download" memory content over USB for offline postmortem analysis.
50bdac188eSBartosz Golaszewski	  The feature can be enabled/disabled on the kernel command line.
51bdac188eSBartosz Golaszewski
52bdac188eSBartosz Golaszewski	  Say Y here to enable "download mode" by default.
53bdac188eSBartosz Golaszewski
54bdac188eSBartosz Golaszewskiconfig QCOM_QSEECOM
55bdac188eSBartosz Golaszewski	bool "Qualcomm QSEECOM interface driver"
56bdac188eSBartosz Golaszewski	depends on QCOM_SCM=y
57bdac188eSBartosz Golaszewski	select AUXILIARY_BUS
58bdac188eSBartosz Golaszewski	help
59bdac188eSBartosz Golaszewski	  Various Qualcomm SoCs have a Secure Execution Environment (SEE) running
60bdac188eSBartosz Golaszewski	  in the Trust Zone. This module provides an interface to that via the
61bdac188eSBartosz Golaszewski	  QSEECOM mechanism, using SCM calls.
62bdac188eSBartosz Golaszewski
63bdac188eSBartosz Golaszewski	  The QSEECOM interface allows, among other things, access to applications
64bdac188eSBartosz Golaszewski	  running in the SEE. An example of such an application is 'uefisecapp',
65bdac188eSBartosz Golaszewski	  which is required to access UEFI variables on certain systems. If
66bdac188eSBartosz Golaszewski	  selected, the interface will also attempt to detect and register client
67bdac188eSBartosz Golaszewski	  devices for supported applications.
68bdac188eSBartosz Golaszewski
69bdac188eSBartosz Golaszewski	  Select Y here to enable the QSEECOM interface driver.
70bdac188eSBartosz Golaszewski
71bdac188eSBartosz Golaszewskiconfig QCOM_QSEECOM_UEFISECAPP
72bdac188eSBartosz Golaszewski	bool "Qualcomm SEE UEFI Secure App client driver"
73bdac188eSBartosz Golaszewski	depends on QCOM_QSEECOM
74bdac188eSBartosz Golaszewski	depends on EFI
75bdac188eSBartosz Golaszewski	help
76bdac188eSBartosz Golaszewski	  Various Qualcomm SoCs do not allow direct access to EFI variables.
77bdac188eSBartosz Golaszewski	  Instead, these need to be accessed via the UEFI Secure Application
78bdac188eSBartosz Golaszewski	  (uefisecapp), residing in the Secure Execution Environment (SEE).
79bdac188eSBartosz Golaszewski
80bdac188eSBartosz Golaszewski	  This module provides a client driver for uefisecapp, installing efivar
81bdac188eSBartosz Golaszewski	  operations to allow the kernel accessing EFI variables, and via that also
82bdac188eSBartosz Golaszewski	  provide user-space with access to EFI variables via efivarfs.
83bdac188eSBartosz Golaszewski
84bdac188eSBartosz Golaszewski	  Select Y here to provide access to EFI variables on the aforementioned
85bdac188eSBartosz Golaszewski	  platforms.
86bdac188eSBartosz Golaszewski
87bdac188eSBartosz Golaszewskiendmenu
88