linux/drivers/char/tpm/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0-only
   2#
   3# TPM device configuration
   4#
   5
   6menuconfig TCG_TPM
   7        tristate "TPM Hardware Support"
   8        depends on HAS_IOMEM
   9        imply SECURITYFS
  10        select CRYPTO
  11        select CRYPTO_HASH_INFO
  12        help
  13          If you have a TPM security chip in your system, which
  14          implements the Trusted Computing Group's specification,
  15          say Yes and it will be accessible from within Linux.  For
  16          more information see <http://www.trustedcomputinggroup.org>. 
  17          An implementation of the Trusted Software Stack (TSS), the 
  18          userspace enablement piece of the specification, can be 
  19          obtained at: <http://sourceforge.net/projects/trousers>.  To 
  20          compile this driver as a module, choose M here; the module 
  21          will be called tpm. If unsure, say N.
  22          Notes:
  23          1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
  24          and CONFIG_PNPACPI.
  25          2) Without ACPI enabled, the BIOS event log won't be accessible,
  26          which is required to validate the PCR 0-7 values.
  27
  28if TCG_TPM
  29
  30config HW_RANDOM_TPM
  31        bool "TPM HW Random Number Generator support"
  32        depends on TCG_TPM && HW_RANDOM && !(TCG_TPM=y && HW_RANDOM=m)
  33        default y
  34        help
  35          This setting exposes the TPM's Random Number Generator as a hwrng
  36          device. This allows the kernel to collect randomness from the TPM at
  37          boot, and provides the TPM randomines in /dev/hwrng.
  38
  39          If unsure, say Y.
  40
  41config TCG_TIS_CORE
  42        tristate
  43        help
  44        TCG TIS TPM core driver. It implements the TPM TCG TIS logic and hooks
  45        into the TPM kernel APIs. Physical layers will register against it.
  46
  47config TCG_TIS
  48        tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface"
  49        depends on X86 || OF
  50        select TCG_TIS_CORE
  51        help
  52          If you have a TPM security chip that is compliant with the
  53          TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO
  54          specification (TPM2.0) say Yes and it will be accessible from
  55          within Linux. To compile this driver as a module, choose  M here;
  56          the module will be called tpm_tis.
  57
  58config TCG_TIS_SPI
  59        tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (SPI)"
  60        depends on SPI
  61        select TCG_TIS_CORE
  62        help
  63          If you have a TPM security chip which is connected to a regular,
  64          non-tcg SPI master (i.e. most embedded platforms) that is compliant with the
  65          TCG TIS 1.3 TPM specification (TPM1.2) or the TCG PTP FIFO
  66          specification (TPM2.0) say Yes and it will be accessible from
  67          within Linux. To compile this driver as a module, choose  M here;
  68          the module will be called tpm_tis_spi.
  69
  70config TCG_TIS_SPI_CR50
  71        bool "Cr50 SPI Interface"
  72        depends on TCG_TIS_SPI
  73        help
  74          If you have a H1 secure module running Cr50 firmware on SPI bus,
  75          say Yes and it will be accessible from within Linux.
  76
  77config TCG_TIS_SYNQUACER
  78        tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface (MMIO - SynQuacer)"
  79        depends on ARCH_SYNQUACER
  80        select TCG_TIS_CORE
  81        help
  82          If you have a TPM security chip that is compliant with the
  83          TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO
  84          specification (TPM2.0) say Yes and it will be accessible from
  85          within Linux on Socionext SynQuacer platform.
  86          To compile this driver as a module, choose  M here;
  87          the module will be called tpm_tis_synquacer.
  88
  89config TCG_TIS_I2C_CR50
  90        tristate "TPM Interface Specification 2.0 Interface (I2C - CR50)"
  91        depends on I2C
  92        select TCG_CR50
  93        help
  94          This is a driver for the Google cr50 I2C TPM interface which is a
  95          custom microcontroller and requires a custom i2c protocol interface
  96          to handle the limitations of the hardware.  To compile this driver
  97          as a module, choose M here; the module will be called tcg_tis_i2c_cr50.
  98
  99config TCG_TIS_I2C_ATMEL
 100        tristate "TPM Interface Specification 1.2 Interface (I2C - Atmel)"
 101        depends on I2C
 102        help
 103          If you have an Atmel I2C TPM security chip say Yes and it will be
 104          accessible from within Linux.
 105          To compile this driver as a module, choose M here; the module will
 106          be called tpm_tis_i2c_atmel.
 107
 108config TCG_TIS_I2C_INFINEON
 109        tristate "TPM Interface Specification 1.2 Interface (I2C - Infineon)"
 110        depends on I2C
 111        help
 112          If you have a TPM security chip that is compliant with the
 113          TCG TIS 1.2 TPM specification and Infineon's I2C Protocol Stack
 114          Specification 0.20 say Yes and it will be accessible from within
 115          Linux.
 116          To compile this driver as a module, choose M here; the module
 117          will be called tpm_i2c_infineon.
 118
 119config TCG_TIS_I2C_NUVOTON
 120        tristate "TPM Interface Specification 1.2 Interface (I2C - Nuvoton)"
 121        depends on I2C
 122        help
 123          If you have a TPM security chip with an I2C interface from
 124          Nuvoton Technology Corp. say Yes and it will be accessible
 125          from within Linux.
 126          To compile this driver as a module, choose M here; the module
 127          will be called tpm_i2c_nuvoton.
 128
 129config TCG_NSC
 130        tristate "National Semiconductor TPM Interface"
 131        depends on X86
 132        help
 133          If you have a TPM security chip from National Semiconductor 
 134          say Yes and it will be accessible from within Linux.  To 
 135          compile this driver as a module, choose M here; the module 
 136          will be called tpm_nsc.
 137
 138config TCG_ATMEL
 139        tristate "Atmel TPM Interface"
 140        depends on PPC64 || HAS_IOPORT_MAP
 141        help
 142          If you have a TPM security chip from Atmel say Yes and it 
 143          will be accessible from within Linux.  To compile this driver 
 144          as a module, choose M here; the module will be called tpm_atmel.
 145
 146config TCG_INFINEON
 147        tristate "Infineon Technologies TPM Interface"
 148        depends on PNP
 149        help
 150          If you have a TPM security chip from Infineon Technologies
 151          (either SLD 9630 TT 1.1 or SLB 9635 TT 1.2) say Yes and it
 152          will be accessible from within Linux.
 153          To compile this driver as a module, choose M here; the module
 154          will be called tpm_infineon.
 155          Further information on this driver and the supported hardware
 156          can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/ 
 157
 158config TCG_IBMVTPM
 159        tristate "IBM VTPM Interface"
 160        depends on PPC_PSERIES
 161        help
 162          If you have IBM virtual TPM (VTPM) support say Yes and it
 163          will be accessible from within Linux.  To compile this driver
 164          as a module, choose M here; the module will be called tpm_ibmvtpm.
 165
 166config TCG_XEN
 167        tristate "XEN TPM Interface"
 168        depends on TCG_TPM && XEN
 169        select XEN_XENBUS_FRONTEND
 170        help
 171          If you want to make TPM support available to a Xen user domain,
 172          say Yes and it will be accessible from within Linux. See
 173          the manpages for xl, xl.conf, and docs/misc/vtpm.txt in
 174          the Xen source repository for more details.
 175          To compile this driver as a module, choose M here; the module
 176          will be called xen-tpmfront.
 177
 178config TCG_CRB
 179        tristate "TPM 2.0 CRB Interface"
 180        depends on ACPI
 181        help
 182          If you have a TPM security chip that is compliant with the
 183          TCG CRB 2.0 TPM specification say Yes and it will be accessible
 184          from within Linux.  To compile this driver as a module, choose
 185          M here; the module will be called tpm_crb.
 186
 187config TCG_VTPM_PROXY
 188        tristate "VTPM Proxy Interface"
 189        depends on TCG_TPM
 190        help
 191          This driver proxies for an emulated TPM (vTPM) running in userspace.
 192          A device /dev/vtpmx is provided that creates a device pair
 193          /dev/vtpmX and a server-side file descriptor on which the vTPM
 194          can receive commands.
 195
 196config TCG_FTPM_TEE
 197        tristate "TEE based fTPM Interface"
 198        depends on TEE && OPTEE
 199        help
 200          This driver proxies for firmware TPM running in TEE.
 201
 202source "drivers/char/tpm/st33zp24/Kconfig"
 203endif # TCG_TPM
 204