Kconfig 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. #
  2. # TPM subsystem configuration
  3. #
  4. menu "TPM support"
  5. config TPM_V1
  6. bool "TPMv1.x support"
  7. depends on TPM
  8. default y
  9. help
  10. Major TPM versions are not compatible at all, choose either
  11. one or the other. This option enables TPMv1.x drivers/commands.
  12. if TPM_V1
  13. config TPM_TIS_SANDBOX
  14. bool "Enable sandbox TPM driver"
  15. depends on TPM_V1 && SANDBOX
  16. default y
  17. help
  18. This driver emulates a TPMv1.x, providing access to base functions
  19. such as reading and writing TPM private data. This is enough to
  20. support Chrome OS verified boot. Extend functionality is not
  21. implemented.
  22. config TPM_ATMEL_TWI
  23. bool "Enable Atmel TWI TPM device driver"
  24. depends on TPM_V1
  25. help
  26. This driver supports an Atmel TPM device connected on the I2C bus.
  27. The usual tpm operations and the 'tpm' command can be used to talk
  28. to the device using the standard TPM Interface Specification (TIS)
  29. protocol
  30. config TPM_TIS_INFINEON
  31. bool "Enable support for Infineon SLB9635/45 TPMs on I2C"
  32. depends on TPM_V1 && DM_I2C
  33. help
  34. This driver supports Infineon TPM devices connected on the I2C bus.
  35. The usual tpm operations and the 'tpm' command can be used to talk
  36. to the device using the standard TPM Interface Specification (TIS)
  37. protocol
  38. config TPM_TIS_I2C_BURST_LIMITATION
  39. bool "Enable I2C burst length limitation"
  40. depends on TPM_TIS_INFINEON
  41. help
  42. Some broken TPMs have a limitation on the number of bytes they can
  43. receive in one message. Enable this option to allow you to set this
  44. option. The can allow a broken TPM to be used by splitting messages
  45. into separate pieces.
  46. config TPM_TIS_I2C_BURST_LIMITATION_LEN
  47. int "Length"
  48. depends on TPM_TIS_I2C_BURST_LIMITATION
  49. help
  50. Use this to set the burst limitation length
  51. config TPM_TIS_LPC
  52. bool "Enable support for Infineon SLB9635/45 TPMs on LPC"
  53. depends on TPM_V1 && X86
  54. help
  55. This driver supports Infineon TPM devices connected on the LPC bus.
  56. The usual tpm operations and the 'tpm' command can be used to talk
  57. to the device using the standard TPM Interface Specification (TIS)
  58. protocol
  59. config TPM_AUTH_SESSIONS
  60. bool "Enable TPM authentication session support"
  61. depends on TPM_V1
  62. help
  63. Enable support for authorised (AUTH1) commands as specified in the
  64. TCG Main Specification 1.2. OIAP-authorised versions of the commands
  65. TPM_LoadKey2 and TPM_GetPubKey are provided. Both features are
  66. available using the 'tpm' command, too.
  67. config TPM_ST33ZP24_I2C
  68. bool "STMicroelectronics ST33ZP24 I2C TPM"
  69. depends on TPM_V1 && DM_I2C
  70. ---help---
  71. This driver supports STMicroelectronics TPM devices connected on the I2C bus.
  72. The usual tpm operations and the 'tpm' command can be used to talk
  73. to the device using the standard TPM Interface Specification (TIS)
  74. protocol
  75. config TPM_ST33ZP24_SPI
  76. bool "STMicroelectronics ST33ZP24 SPI TPM"
  77. depends on TPM_V1 && DM_SPI
  78. ---help---
  79. This driver supports STMicroelectronics TPM devices connected on the SPI bus.
  80. The usual tpm operations and the 'tpm' command can be used to talk
  81. to the device using the standard TPM Interface Specification (TIS)
  82. protocol
  83. config TPM_FLUSH_RESOURCES
  84. bool "Enable TPM resource flushing support"
  85. depends on TPM_V1
  86. help
  87. Enable support to flush specific resources (e.g. keys) from the TPM.
  88. The functionality is available via the 'tpm' command as well.
  89. config TPM_LOAD_KEY_BY_SHA1
  90. bool "Enable TPM key loading by SHA1 support"
  91. depends on TPM_V1
  92. help
  93. Enable support to load keys into the TPM by identifying
  94. their parent via the public key's SHA1 hash.
  95. The functionality is available via the 'tpm' command as well.
  96. config TPM_LIST_RESOURCES
  97. bool "Enable TPM resource listing support"
  98. depends on TPM_V1
  99. help
  100. Enable support to list specific resources (e.g. keys) within the TPM.
  101. The functionality is available via the 'tpm' command as well.
  102. endif # TPM_V1
  103. config TPM_V2
  104. bool "TPMv2.x support"
  105. depends on TPM
  106. default y
  107. help
  108. Major TPM versions are not compatible at all, choose either
  109. one or the other. This option enables TPMv2.x drivers/commands.
  110. if TPM_V2
  111. config TPM2_CR50_I2C
  112. bool "Enable support for Google cr50 TPM"
  113. depends on DM_I2C
  114. help
  115. Cr50 is an implementation of a TPM on Google's H1 security chip.
  116. This uses the same open-source firmware as the Chromium OS EC.
  117. While Cr50 has other features, its primary role is as the root of
  118. trust for a device, It operates like a TPM and can be used with
  119. verified boot. Cr50 is used on recent Chromebooks (since 2017).
  120. config SPL_TPM2_CR50_I2C
  121. bool "Enable support for Google cr50 TPM"
  122. depends on DM_I2C && SPL_TPM
  123. help
  124. Cr50 is an implementation of a TPM on Google's H1 security chip.
  125. This uses the same open-source firmware as the Chromium OS EC.
  126. While Cr50 has other features, its primary role is as the root of
  127. trust for a device, It operates like a TPM and can be used with
  128. verified boot. Cr50 is used on recent Chromebooks (since 2017).
  129. config TPL_TPM2_CR50_I2C
  130. bool "Enable support for Google cr50 TPM"
  131. depends on DM_I2C && TPL_TPM
  132. help
  133. Cr50 is an implementation of a TPM on Google's H1 security chip.
  134. This uses the same open-source firmware as the Chromium OS EC.
  135. While Cr50 has other features, its primary role is as the root of
  136. trust for a device, It operates like a TPM and can be used with
  137. verified boot. Cr50 is used on recent Chromebooks (since 2017).
  138. config VPL_TPM2_CR50_I2C
  139. bool "Enable support for Google cr50 TPM"
  140. depends on DM_I2C && VPL_TPM
  141. help
  142. Cr50 is an implementation of a TPM on Google's H1 security chip.
  143. This uses the same open-source firmware as the Chromium OS EC.
  144. While Cr50 has other features, its primary role is as the root of
  145. trust for a device, It operates like a TPM and can be used with
  146. verified boot. Cr50 is used on recent Chromebooks (since 2017).
  147. config TPM2_TIS_SANDBOX
  148. bool "Enable sandbox TPMv2.x driver"
  149. depends on TPM_V2 && SANDBOX
  150. default y
  151. help
  152. This driver emulates a TPMv2.x, providing access to base functions
  153. such as basic configuration, PCR extension and PCR read. Extended
  154. functionalities are not implemented.
  155. config TPM2_TIS_SPI
  156. bool "Enable support for TPMv2.x SPI chips"
  157. depends on TPM_V2 && DM_SPI
  158. help
  159. This driver supports TPMv2.x devices connected on the SPI bus.
  160. The usual TPM operations and the 'tpm' command can be used to talk
  161. to the device using the standard TPM Interface Specification (TIS)
  162. protocol.
  163. config TPM2_TIS_I2C
  164. bool "Enable support for TPMv2.x I2C chips"
  165. depends on TPM_V2 && DM_I2C
  166. help
  167. This driver supports TPMv2.x devices connected on the I2C bus.
  168. The usual TPM operations and the 'tpm' command can be used to talk
  169. to the device using the standard TPM Interface Specification (TIS)
  170. protocol.
  171. config TPM2_FTPM_TEE
  172. bool "TEE based fTPM Interface"
  173. depends on TEE && OPTEE && TPM_V2
  174. help
  175. This driver supports firmware TPM running in TEE.
  176. config TPM2_MMIO
  177. bool "MMIO based TPM2 Interface"
  178. depends on TPM_V2
  179. help
  180. This driver supports firmware TPM2.0 MMIO interface.
  181. The usual TPM operations and the 'tpm' command can be used to talk
  182. to the device using the standard TPM Interface Specification (TIS)
  183. protocol.
  184. endif # TPM_V2
  185. endmenu