| .. | .. |
|---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | # |
|---|
| 2 | 3 | # TPM device configuration |
|---|
| 3 | 4 | # |
|---|
| .. | .. |
|---|
| 5 | 6 | menuconfig TCG_TPM |
|---|
| 6 | 7 | tristate "TPM Hardware Support" |
|---|
| 7 | 8 | depends on HAS_IOMEM |
|---|
| 8 | | - select SECURITYFS |
|---|
| 9 | + imply SECURITYFS |
|---|
| 9 | 10 | select CRYPTO |
|---|
| 10 | 11 | select CRYPTO_HASH_INFO |
|---|
| 11 | | - ---help--- |
|---|
| 12 | + help |
|---|
| 12 | 13 | If you have a TPM security chip in your system, which |
|---|
| 13 | 14 | implements the Trusted Computing Group's specification, |
|---|
| 14 | 15 | say Yes and it will be accessible from within Linux. For |
|---|
| .. | .. |
|---|
| 30 | 31 | bool "TPM HW Random Number Generator support" |
|---|
| 31 | 32 | depends on TCG_TPM && HW_RANDOM && !(TCG_TPM=y && HW_RANDOM=m) |
|---|
| 32 | 33 | default y |
|---|
| 33 | | - ---help--- |
|---|
| 34 | + help |
|---|
| 34 | 35 | This setting exposes the TPM's Random Number Generator as a hwrng |
|---|
| 35 | 36 | device. This allows the kernel to collect randomness from the TPM at |
|---|
| 36 | 37 | boot, and provides the TPM randomines in /dev/hwrng. |
|---|
| .. | .. |
|---|
| 39 | 40 | |
|---|
| 40 | 41 | config TCG_TIS_CORE |
|---|
| 41 | 42 | tristate |
|---|
| 42 | | - ---help--- |
|---|
| 43 | + help |
|---|
| 43 | 44 | TCG TIS TPM core driver. It implements the TPM TCG TIS logic and hooks |
|---|
| 44 | 45 | into the TPM kernel APIs. Physical layers will register against it. |
|---|
| 45 | 46 | |
|---|
| .. | .. |
|---|
| 47 | 48 | tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface" |
|---|
| 48 | 49 | depends on X86 || OF |
|---|
| 49 | 50 | select TCG_TIS_CORE |
|---|
| 50 | | - ---help--- |
|---|
| 51 | + help |
|---|
| 51 | 52 | If you have a TPM security chip that is compliant with the |
|---|
| 52 | 53 | TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO |
|---|
| 53 | 54 | specification (TPM2.0) say Yes and it will be accessible from |
|---|
| .. | .. |
|---|
| 58 | 59 | tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (SPI)" |
|---|
| 59 | 60 | depends on SPI |
|---|
| 60 | 61 | select TCG_TIS_CORE |
|---|
| 61 | | - ---help--- |
|---|
| 62 | + help |
|---|
| 62 | 63 | If you have a TPM security chip which is connected to a regular, |
|---|
| 63 | 64 | non-tcg SPI master (i.e. most embedded platforms) that is compliant with the |
|---|
| 64 | 65 | TCG TIS 1.3 TPM specification (TPM1.2) or the TCG PTP FIFO |
|---|
| .. | .. |
|---|
| 66 | 67 | within Linux. To compile this driver as a module, choose M here; |
|---|
| 67 | 68 | the module will be called tpm_tis_spi. |
|---|
| 68 | 69 | |
|---|
| 70 | +config 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 | + |
|---|
| 77 | +config 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 | + |
|---|
| 69 | 89 | config TCG_TIS_I2C_ATMEL |
|---|
| 70 | 90 | tristate "TPM Interface Specification 1.2 Interface (I2C - Atmel)" |
|---|
| 71 | 91 | depends on I2C |
|---|
| 72 | | - ---help--- |
|---|
| 92 | + help |
|---|
| 73 | 93 | If you have an Atmel I2C TPM security chip say Yes and it will be |
|---|
| 74 | 94 | accessible from within Linux. |
|---|
| 75 | 95 | To compile this driver as a module, choose M here; the module will |
|---|
| .. | .. |
|---|
| 78 | 98 | config TCG_TIS_I2C_INFINEON |
|---|
| 79 | 99 | tristate "TPM Interface Specification 1.2 Interface (I2C - Infineon)" |
|---|
| 80 | 100 | depends on I2C |
|---|
| 81 | | - ---help--- |
|---|
| 101 | + help |
|---|
| 82 | 102 | If you have a TPM security chip that is compliant with the |
|---|
| 83 | 103 | TCG TIS 1.2 TPM specification and Infineon's I2C Protocol Stack |
|---|
| 84 | 104 | Specification 0.20 say Yes and it will be accessible from within |
|---|
| .. | .. |
|---|
| 89 | 109 | config TCG_TIS_I2C_NUVOTON |
|---|
| 90 | 110 | tristate "TPM Interface Specification 1.2 Interface (I2C - Nuvoton)" |
|---|
| 91 | 111 | depends on I2C |
|---|
| 92 | | - ---help--- |
|---|
| 112 | + help |
|---|
| 93 | 113 | If you have a TPM security chip with an I2C interface from |
|---|
| 94 | 114 | Nuvoton Technology Corp. say Yes and it will be accessible |
|---|
| 95 | 115 | from within Linux. |
|---|
| .. | .. |
|---|
| 99 | 119 | config TCG_NSC |
|---|
| 100 | 120 | tristate "National Semiconductor TPM Interface" |
|---|
| 101 | 121 | depends on X86 |
|---|
| 102 | | - ---help--- |
|---|
| 122 | + help |
|---|
| 103 | 123 | If you have a TPM security chip from National Semiconductor |
|---|
| 104 | 124 | say Yes and it will be accessible from within Linux. To |
|---|
| 105 | 125 | compile this driver as a module, choose M here; the module |
|---|
| .. | .. |
|---|
| 108 | 128 | config TCG_ATMEL |
|---|
| 109 | 129 | tristate "Atmel TPM Interface" |
|---|
| 110 | 130 | depends on PPC64 || HAS_IOPORT_MAP |
|---|
| 111 | | - ---help--- |
|---|
| 131 | + help |
|---|
| 112 | 132 | If you have a TPM security chip from Atmel say Yes and it |
|---|
| 113 | 133 | will be accessible from within Linux. To compile this driver |
|---|
| 114 | 134 | as a module, choose M here; the module will be called tpm_atmel. |
|---|
| .. | .. |
|---|
| 116 | 136 | config TCG_INFINEON |
|---|
| 117 | 137 | tristate "Infineon Technologies TPM Interface" |
|---|
| 118 | 138 | depends on PNP |
|---|
| 119 | | - ---help--- |
|---|
| 139 | + help |
|---|
| 120 | 140 | If you have a TPM security chip from Infineon Technologies |
|---|
| 121 | 141 | (either SLD 9630 TT 1.1 or SLB 9635 TT 1.2) say Yes and it |
|---|
| 122 | 142 | will be accessible from within Linux. |
|---|
| .. | .. |
|---|
| 128 | 148 | config TCG_IBMVTPM |
|---|
| 129 | 149 | tristate "IBM VTPM Interface" |
|---|
| 130 | 150 | depends on PPC_PSERIES |
|---|
| 131 | | - ---help--- |
|---|
| 151 | + help |
|---|
| 132 | 152 | If you have IBM virtual TPM (VTPM) support say Yes and it |
|---|
| 133 | 153 | will be accessible from within Linux. To compile this driver |
|---|
| 134 | 154 | as a module, choose M here; the module will be called tpm_ibmvtpm. |
|---|
| .. | .. |
|---|
| 137 | 157 | tristate "XEN TPM Interface" |
|---|
| 138 | 158 | depends on TCG_TPM && XEN |
|---|
| 139 | 159 | select XEN_XENBUS_FRONTEND |
|---|
| 140 | | - ---help--- |
|---|
| 160 | + help |
|---|
| 141 | 161 | If you want to make TPM support available to a Xen user domain, |
|---|
| 142 | 162 | say Yes and it will be accessible from within Linux. See |
|---|
| 143 | 163 | the manpages for xl, xl.conf, and docs/misc/vtpm.txt in |
|---|
| .. | .. |
|---|
| 148 | 168 | config TCG_CRB |
|---|
| 149 | 169 | tristate "TPM 2.0 CRB Interface" |
|---|
| 150 | 170 | depends on ACPI |
|---|
| 151 | | - ---help--- |
|---|
| 171 | + help |
|---|
| 152 | 172 | If you have a TPM security chip that is compliant with the |
|---|
| 153 | 173 | TCG CRB 2.0 TPM specification say Yes and it will be accessible |
|---|
| 154 | 174 | from within Linux. To compile this driver as a module, choose |
|---|
| .. | .. |
|---|
| 157 | 177 | config TCG_VTPM_PROXY |
|---|
| 158 | 178 | tristate "VTPM Proxy Interface" |
|---|
| 159 | 179 | depends on TCG_TPM |
|---|
| 160 | | - ---help--- |
|---|
| 180 | + help |
|---|
| 161 | 181 | This driver proxies for an emulated TPM (vTPM) running in userspace. |
|---|
| 162 | 182 | A device /dev/vtpmx is provided that creates a device pair |
|---|
| 163 | 183 | /dev/vtpmX and a server-side file descriptor on which the vTPM |
|---|
| 164 | 184 | can receive commands. |
|---|
| 165 | 185 | |
|---|
| 186 | +config TCG_FTPM_TEE |
|---|
| 187 | + tristate "TEE based fTPM Interface" |
|---|
| 188 | + depends on TEE && OPTEE |
|---|
| 189 | + help |
|---|
| 190 | + This driver proxies for firmware TPM running in TEE. |
|---|
| 166 | 191 | |
|---|
| 167 | 192 | source "drivers/char/tpm/st33zp24/Kconfig" |
|---|
| 168 | 193 | endif # TCG_TPM |
|---|