Convert CONFIG_PL011_SERIAL et al to Kconfig
[platform/kernel/u-boot.git] / drivers / tpm / Kconfig
index 2a64bc4..9eebab5 100644 (file)
@@ -4,18 +4,29 @@
 
 menu "TPM support"
 
 
 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"
 config TPM_TIS_SANDBOX
        bool "Enable sandbox TPM driver"
-       depends on SANDBOX
+       depends on TPM_V1 && SANDBOX
+       default y
        help
        help
-         This driver emulates a TPM, providing access to base functions
+         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"
          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
+       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
        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
@@ -24,7 +35,7 @@ config TPM_ATMEL_TWI
 
 config TPM_TIS_INFINEON
        bool "Enable support for Infineon SLB9635/45 TPMs on I2C"
 
 config TPM_TIS_INFINEON
        bool "Enable support for Infineon SLB9635/45 TPMs on I2C"
-       depends on TPM && DM_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
        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
@@ -48,7 +59,7 @@ config TPM_TIS_I2C_BURST_LIMITATION_LEN
 
 config TPM_TIS_LPC
        bool "Enable support for Infineon SLB9635/45 TPMs on LPC"
 
 config TPM_TIS_LPC
        bool "Enable support for Infineon SLB9635/45 TPMs on LPC"
-       depends on TPM && X86
+       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
        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
@@ -57,7 +68,7 @@ config TPM_TIS_LPC
 
 config TPM_AUTH_SESSIONS
        bool "Enable TPM authentication session support"
 
 config TPM_AUTH_SESSIONS
        bool "Enable TPM authentication session support"
-       depends on TPM
+       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
        help
          Enable support for authorised (AUTH1) commands as specified in the
          TCG Main Specification 1.2. OIAP-authorised versions of the commands
@@ -66,7 +77,7 @@ config TPM_AUTH_SESSIONS
 
 config TPM_ST33ZP24_I2C
        bool "STMicroelectronics ST33ZP24 I2C TPM"
 
 config TPM_ST33ZP24_I2C
        bool "STMicroelectronics ST33ZP24 I2C TPM"
-       depends on TPM && DM_I2C
+       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
        ---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
@@ -75,7 +86,7 @@ config TPM_ST33ZP24_I2C
 
 config TPM_ST33ZP24_SPI
        bool "STMicroelectronics ST33ZP24 SPI TPM"
 
 config TPM_ST33ZP24_SPI
        bool "STMicroelectronics ST33ZP24 SPI TPM"
-       depends on TPM && DM_SPI
+       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
        ---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
@@ -84,14 +95,14 @@ config TPM_ST33ZP24_SPI
 
 config TPM_FLUSH_RESOURCES
        bool "Enable TPM resource flushing support"
 
 config TPM_FLUSH_RESOURCES
        bool "Enable TPM resource flushing support"
-       depends on TPM
+       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"
        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
+       depends on TPM_V1
        help
          Enable support to load keys into the TPM by identifying
          their parent via the public key's SHA1 hash.
        help
          Enable support to load keys into the TPM by identifying
          their parent via the public key's SHA1 hash.
@@ -99,8 +110,57 @@ config TPM_LOAD_KEY_BY_SHA1
 
 config TPM_LIST_RESOURCES
        bool "Enable TPM resource listing support"
 
 config TPM_LIST_RESOURCES
        bool "Enable TPM resource listing support"
-       depends on TPM
+       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.
        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 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_FTPM_TEE
+       bool "TEE based fTPM Interface"
+       depends on TEE && OPTEE && TPM_V2
+       help
+         This driver supports firmware TPM running in TEE.
+
+endif # TPM_V2
+
 endmenu
 endmenu