mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
7.2 KiB
203 lines
7.2 KiB
# SPDX-License-Identifier: GPL-2.0-only |
|
# |
|
# TPM device configuration |
|
# |
|
|
|
menuconfig TCG_TPM |
|
tristate "TPM Hardware Support" |
|
depends on HAS_IOMEM |
|
imply SECURITYFS |
|
select CRYPTO |
|
select CRYPTO_HASH_INFO |
|
help |
|
If you have a TPM security chip in your system, which |
|
implements the Trusted Computing Group's specification, |
|
say Yes and it will be accessible from within Linux. For |
|
more information see <http://www.trustedcomputinggroup.org>. |
|
An implementation of the Trusted Software Stack (TSS), the |
|
userspace enablement piece of the specification, can be |
|
obtained at: <http://sourceforge.net/projects/trousers>. To |
|
compile this driver as a module, choose M here; the module |
|
will be called tpm. If unsure, say N. |
|
Notes: |
|
1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI |
|
and CONFIG_PNPACPI. |
|
2) Without ACPI enabled, the BIOS event log won't be accessible, |
|
which is required to validate the PCR 0-7 values. |
|
|
|
if TCG_TPM |
|
|
|
config HW_RANDOM_TPM |
|
bool "TPM HW Random Number Generator support" |
|
depends on TCG_TPM && HW_RANDOM && !(TCG_TPM=y && HW_RANDOM=m) |
|
default y |
|
help |
|
This setting exposes the TPM's Random Number Generator as a hwrng |
|
device. This allows the kernel to collect randomness from the TPM at |
|
boot, and provides the TPM randomines in /dev/hwrng. |
|
|
|
If unsure, say Y. |
|
|
|
config TCG_TIS_CORE |
|
tristate |
|
help |
|
TCG TIS TPM core driver. It implements the TPM TCG TIS logic and hooks |
|
into the TPM kernel APIs. Physical layers will register against it. |
|
|
|
config TCG_TIS |
|
tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface" |
|
depends on X86 || OF |
|
select TCG_TIS_CORE |
|
help |
|
If you have a TPM security chip that is compliant with the |
|
TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO |
|
specification (TPM2.0) say Yes and it will be accessible from |
|
within Linux. To compile this driver as a module, choose M here; |
|
the module will be called tpm_tis. |
|
|
|
config TCG_TIS_SPI |
|
tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (SPI)" |
|
depends on SPI |
|
select TCG_TIS_CORE |
|
help |
|
If you have a TPM security chip which is connected to a regular, |
|
non-tcg SPI master (i.e. most embedded platforms) that is compliant with the |
|
TCG TIS 1.3 TPM specification (TPM1.2) or the TCG PTP FIFO |
|
specification (TPM2.0) say Yes and it will be accessible from |
|
within Linux. To compile this driver as a module, choose M here; |
|
the module will be called tpm_tis_spi. |
|
|
|
config TCG_TIS_SPI_CR50 |
|
bool "Cr50 SPI Interface" |
|
depends on TCG_TIS_SPI |
|
help |
|
If you have a H1 secure module running Cr50 firmware on SPI bus, |
|
say Yes and it will be accessible from within Linux. |
|
|
|
config TCG_TIS_SYNQUACER |
|
tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface (MMIO - SynQuacer)" |
|
depends on ARCH_SYNQUACER |
|
select TCG_TIS_CORE |
|
help |
|
If you have a TPM security chip that is compliant with the |
|
TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO |
|
specification (TPM2.0) say Yes and it will be accessible from |
|
within Linux on Socionext SynQuacer platform. |
|
To compile this driver as a module, choose M here; |
|
the module will be called tpm_tis_synquacer. |
|
|
|
config TCG_TIS_I2C_CR50 |
|
tristate "TPM Interface Specification 2.0 Interface (I2C - CR50)" |
|
depends on I2C |
|
select TCG_CR50 |
|
help |
|
This is a driver for the Google cr50 I2C TPM interface which is a |
|
custom microcontroller and requires a custom i2c protocol interface |
|
to handle the limitations of the hardware. To compile this driver |
|
as a module, choose M here; the module will be called tcg_tis_i2c_cr50. |
|
|
|
config TCG_TIS_I2C_ATMEL |
|
tristate "TPM Interface Specification 1.2 Interface (I2C - Atmel)" |
|
depends on I2C |
|
help |
|
If you have an Atmel I2C TPM security chip say Yes and it will be |
|
accessible from within Linux. |
|
To compile this driver as a module, choose M here; the module will |
|
be called tpm_tis_i2c_atmel. |
|
|
|
config TCG_TIS_I2C_INFINEON |
|
tristate "TPM Interface Specification 1.2 Interface (I2C - Infineon)" |
|
depends on I2C |
|
help |
|
If you have a TPM security chip that is compliant with the |
|
TCG TIS 1.2 TPM specification and Infineon's I2C Protocol Stack |
|
Specification 0.20 say Yes and it will be accessible from within |
|
Linux. |
|
To compile this driver as a module, choose M here; the module |
|
will be called tpm_i2c_infineon. |
|
|
|
config TCG_TIS_I2C_NUVOTON |
|
tristate "TPM Interface Specification 1.2 Interface (I2C - Nuvoton)" |
|
depends on I2C |
|
help |
|
If you have a TPM security chip with an I2C interface from |
|
Nuvoton Technology Corp. say Yes and it will be accessible |
|
from within Linux. |
|
To compile this driver as a module, choose M here; the module |
|
will be called tpm_i2c_nuvoton. |
|
|
|
config TCG_NSC |
|
tristate "National Semiconductor TPM Interface" |
|
depends on X86 |
|
help |
|
If you have a TPM security chip from National Semiconductor |
|
say Yes and it will be accessible from within Linux. To |
|
compile this driver as a module, choose M here; the module |
|
will be called tpm_nsc. |
|
|
|
config TCG_ATMEL |
|
tristate "Atmel TPM Interface" |
|
depends on PPC64 || HAS_IOPORT_MAP |
|
help |
|
If you have a TPM security chip from Atmel say Yes and it |
|
will be accessible from within Linux. To compile this driver |
|
as a module, choose M here; the module will be called tpm_atmel. |
|
|
|
config TCG_INFINEON |
|
tristate "Infineon Technologies TPM Interface" |
|
depends on PNP |
|
help |
|
If you have a TPM security chip from Infineon Technologies |
|
(either SLD 9630 TT 1.1 or SLB 9635 TT 1.2) say Yes and it |
|
will be accessible from within Linux. |
|
To compile this driver as a module, choose M here; the module |
|
will be called tpm_infineon. |
|
Further information on this driver and the supported hardware |
|
can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/ |
|
|
|
config TCG_IBMVTPM |
|
tristate "IBM VTPM Interface" |
|
depends on PPC_PSERIES |
|
help |
|
If you have IBM virtual TPM (VTPM) support say Yes and it |
|
will be accessible from within Linux. To compile this driver |
|
as a module, choose M here; the module will be called tpm_ibmvtpm. |
|
|
|
config TCG_XEN |
|
tristate "XEN TPM Interface" |
|
depends on TCG_TPM && XEN |
|
select XEN_XENBUS_FRONTEND |
|
help |
|
If you want to make TPM support available to a Xen user domain, |
|
say Yes and it will be accessible from within Linux. See |
|
the manpages for xl, xl.conf, and docs/misc/vtpm.txt in |
|
the Xen source repository for more details. |
|
To compile this driver as a module, choose M here; the module |
|
will be called xen-tpmfront. |
|
|
|
config TCG_CRB |
|
tristate "TPM 2.0 CRB Interface" |
|
depends on ACPI |
|
help |
|
If you have a TPM security chip that is compliant with the |
|
TCG CRB 2.0 TPM specification say Yes and it will be accessible |
|
from within Linux. To compile this driver as a module, choose |
|
M here; the module will be called tpm_crb. |
|
|
|
config TCG_VTPM_PROXY |
|
tristate "VTPM Proxy Interface" |
|
depends on TCG_TPM |
|
help |
|
This driver proxies for an emulated TPM (vTPM) running in userspace. |
|
A device /dev/vtpmx is provided that creates a device pair |
|
/dev/vtpmX and a server-side file descriptor on which the vTPM |
|
can receive commands. |
|
|
|
config TCG_FTPM_TEE |
|
tristate "TEE based fTPM Interface" |
|
depends on TEE && OPTEE |
|
help |
|
This driver proxies for firmware TPM running in TEE. |
|
|
|
source "drivers/char/tpm/st33zp24/Kconfig" |
|
endif # TCG_TPM
|
|
|