u-boot/drivers/tpm/Kconfig
Eddie James 9f971dac93 tpm: add support for TPMv2.x I2C chips
Add the tpm2_tis_i2c driver that should support any TPMv2 compliant
I2C chips, such as the NPCT75X chip.

[Ilias rename priv_auto_alloc_size to priv_auto]
Signed-off-by: Eddie James <eajames@linux.ibm.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-05-23 16:33:58 +03:00

215 lines
7.1 KiB
Plaintext

#
# TPM subsystem configuration
#
menu "TPM support"
config TPM_V1
bool "TPMv1.x support"
depends on TPM
default y
help
Major TPM versions are not compatible at all, choose either
one or the other. This option enables TPMv1.x drivers/commands.
if TPM_V1
config TPM_TIS_SANDBOX
bool "Enable sandbox TPM driver"
depends on TPM_V1 && SANDBOX
default y
help
This driver emulates a TPMv1.x, providing access to base functions
such as reading and writing TPM private data. This is enough to
support Chrome OS verified boot. Extend functionality is not
implemented.
config TPM_ATMEL_TWI
bool "Enable Atmel TWI TPM device driver"
depends on TPM_V1
help
This driver supports an Atmel TPM device connected on the I2C bus.
The usual tpm operations and the 'tpm' command can be used to talk
to the device using the standard TPM Interface Specification (TIS)
protocol
config TPM_TIS_INFINEON
bool "Enable support for Infineon SLB9635/45 TPMs on I2C"
depends on TPM_V1 && DM_I2C
help
This driver supports Infineon TPM devices connected on the I2C bus.
The usual tpm operations and the 'tpm' command can be used to talk
to the device using the standard TPM Interface Specification (TIS)
protocol
config TPM_TIS_I2C_BURST_LIMITATION
bool "Enable I2C burst length limitation"
depends on TPM_TIS_INFINEON
help
Some broken TPMs have a limitation on the number of bytes they can
receive in one message. Enable this option to allow you to set this
option. The can allow a broken TPM to be used by splitting messages
into separate pieces.
config TPM_TIS_I2C_BURST_LIMITATION_LEN
int "Length"
depends on TPM_TIS_I2C_BURST_LIMITATION
help
Use this to set the burst limitation length
config TPM_TIS_LPC
bool "Enable support for Infineon SLB9635/45 TPMs on LPC"
depends on TPM_V1 && X86
help
This driver supports Infineon TPM devices connected on the LPC bus.
The usual tpm operations and the 'tpm' command can be used to talk
to the device using the standard TPM Interface Specification (TIS)
protocol
config TPM_AUTH_SESSIONS
bool "Enable TPM authentication session support"
depends on TPM_V1
help
Enable support for authorised (AUTH1) commands as specified in the
TCG Main Specification 1.2. OIAP-authorised versions of the commands
TPM_LoadKey2 and TPM_GetPubKey are provided. Both features are
available using the 'tpm' command, too.
config TPM_ST33ZP24_I2C
bool "STMicroelectronics ST33ZP24 I2C TPM"
depends on TPM_V1 && DM_I2C
---help---
This driver supports STMicroelectronics TPM devices connected on the I2C bus.
The usual tpm operations and the 'tpm' command can be used to talk
to the device using the standard TPM Interface Specification (TIS)
protocol
config TPM_ST33ZP24_SPI
bool "STMicroelectronics ST33ZP24 SPI TPM"
depends on TPM_V1 && DM_SPI
---help---
This driver supports STMicroelectronics TPM devices connected on the SPI bus.
The usual tpm operations and the 'tpm' command can be used to talk
to the device using the standard TPM Interface Specification (TIS)
protocol
config TPM_FLUSH_RESOURCES
bool "Enable TPM resource flushing support"
depends on TPM_V1
help
Enable support to flush specific resources (e.g. keys) from the TPM.
The functionality is available via the 'tpm' command as well.
config TPM_LOAD_KEY_BY_SHA1
bool "Enable TPM key loading by SHA1 support"
depends on TPM_V1
help
Enable support to load keys into the TPM by identifying
their parent via the public key's SHA1 hash.
The functionality is available via the 'tpm' command as well.
config TPM_LIST_RESOURCES
bool "Enable TPM resource listing support"
depends on TPM_V1
help
Enable support to list specific resources (e.g. keys) within the TPM.
The functionality is available via the 'tpm' command as well.
endif # TPM_V1
config TPM_V2
bool "TPMv2.x support"
depends on TPM
default y
help
Major TPM versions are not compatible at all, choose either
one or the other. This option enables TPMv2.x drivers/commands.
if TPM_V2
config TPM2_CR50_I2C
bool "Enable support for Google cr50 TPM"
depends on DM_I2C
help
Cr50 is an implementation of a TPM on Google's H1 security chip.
This uses the same open-source firmware as the Chromium OS EC.
While Cr50 has other features, its primary role is as the root of
trust for a device, It operates like a TPM and can be used with
verified boot. Cr50 is used on recent Chromebooks (since 2017).
config SPL_TPM2_CR50_I2C
bool "Enable support for Google cr50 TPM"
depends on DM_I2C && SPL_TPM
help
Cr50 is an implementation of a TPM on Google's H1 security chip.
This uses the same open-source firmware as the Chromium OS EC.
While Cr50 has other features, its primary role is as the root of
trust for a device, It operates like a TPM and can be used with
verified boot. Cr50 is used on recent Chromebooks (since 2017).
config TPL_TPM2_CR50_I2C
bool "Enable support for Google cr50 TPM"
depends on DM_I2C && TPL_TPM
help
Cr50 is an implementation of a TPM on Google's H1 security chip.
This uses the same open-source firmware as the Chromium OS EC.
While Cr50 has other features, its primary role is as the root of
trust for a device, It operates like a TPM and can be used with
verified boot. Cr50 is used on recent Chromebooks (since 2017).
config VPL_TPM2_CR50_I2C
bool "Enable support for Google cr50 TPM"
depends on DM_I2C && VPL_TPM
help
Cr50 is an implementation of a TPM on Google's H1 security chip.
This uses the same open-source firmware as the Chromium OS EC.
While Cr50 has other features, its primary role is as the root of
trust for a device, It operates like a TPM and can be used with
verified boot. Cr50 is used on recent Chromebooks (since 2017).
config TPM2_TIS_SANDBOX
bool "Enable sandbox TPMv2.x driver"
depends on TPM_V2 && SANDBOX
default y
help
This driver emulates a TPMv2.x, providing access to base functions
such as basic configuration, PCR extension and PCR read. Extended
functionalities are not implemented.
config TPM2_TIS_SPI
bool "Enable support for TPMv2.x SPI chips"
depends on TPM_V2 && DM_SPI
help
This driver supports TPMv2.x devices connected on the SPI bus.
The usual TPM operations and the 'tpm' command can be used to talk
to the device using the standard TPM Interface Specification (TIS)
protocol.
config TPM2_TIS_I2C
bool "Enable support for TPMv2.x I2C chips"
depends on TPM_V2 && DM_I2C
help
This driver supports TPMv2.x devices connected on the I2C bus.
The usual TPM operations and the 'tpm' command can be used to talk
to the device using the standard TPM Interface Specification (TIS)
protocol.
config TPM2_FTPM_TEE
bool "TEE based fTPM Interface"
depends on TEE && OPTEE && TPM_V2
help
This driver supports firmware TPM running in TEE.
config TPM2_MMIO
bool "MMIO based TPM2 Interface"
depends on TPM_V2
help
This driver supports firmware TPM2.0 MMIO interface.
The usual TPM operations and the 'tpm' command can be used to talk
to the device using the standard TPM Interface Specification (TIS)
protocol.
endif # TPM_V2
endmenu