Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 1 | # |
| 2 | # TPM subsystem configuration |
| 3 | # |
| 4 | |
| 5 | menu "TPM support" |
| 6 | |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 7 | comment "Please select only one TPM revision" |
| 8 | depends on TPM_V1 && TPM_V2 |
| 9 | |
| 10 | config TPM_V1 |
| 11 | bool "TPMv1.x support" |
| 12 | depends on TPM |
| 13 | default y |
| 14 | help |
| 15 | Major TPM versions are not compatible at all, choose either |
| 16 | one or the other. This option enables TPMv1.x drivers/commands. |
| 17 | |
| 18 | if TPM_V1 && !TPM_V2 |
| 19 | |
Simon Glass | 527a072 | 2015-03-06 13:19:07 -0700 | [diff] [blame] | 20 | config TPM_TIS_SANDBOX |
| 21 | bool "Enable sandbox TPM driver" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 22 | depends on TPM_V1 && SANDBOX |
Miquel Raynal | a0cf1d0 | 2018-07-19 22:35:07 +0200 | [diff] [blame^] | 23 | default y |
Simon Glass | 527a072 | 2015-03-06 13:19:07 -0700 | [diff] [blame] | 24 | help |
Miquel Raynal | 2bae712 | 2018-05-15 11:57:25 +0200 | [diff] [blame] | 25 | This driver emulates a TPMv1.x, providing access to base functions |
Simon Glass | 527a072 | 2015-03-06 13:19:07 -0700 | [diff] [blame] | 26 | such as reading and writing TPM private data. This is enough to |
| 27 | support Chrome OS verified boot. Extend functionality is not |
| 28 | implemented. |
Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 29 | |
| 30 | config TPM_ATMEL_TWI |
| 31 | bool "Enable Atmel TWI TPM device driver" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 32 | depends on TPM_V1 |
Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 33 | help |
| 34 | This driver supports an Atmel TPM device 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 | |
Christophe Ricard | 0766ad2 | 2015-10-06 22:54:41 +0200 | [diff] [blame] | 39 | config TPM_TIS_INFINEON |
Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 40 | bool "Enable support for Infineon SLB9635/45 TPMs on I2C" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 41 | depends on TPM_V1 && DM_I2C |
Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 42 | help |
| 43 | This driver supports Infineon TPM devices connected on the I2C bus. |
| 44 | The usual tpm operations and the 'tpm' command can be used to talk |
| 45 | to the device using the standard TPM Interface Specification (TIS) |
| 46 | protocol |
| 47 | |
| 48 | config TPM_TIS_I2C_BURST_LIMITATION |
| 49 | bool "Enable I2C burst length limitation" |
Miquel Raynal | d677bfe | 2018-05-15 11:57:06 +0200 | [diff] [blame] | 50 | depends on TPM_TIS_INFINEON |
Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 51 | help |
| 52 | Some broken TPMs have a limitation on the number of bytes they can |
| 53 | receive in one message. Enable this option to allow you to set this |
| 54 | option. The can allow a broken TPM to be used by splitting messages |
| 55 | into separate pieces. |
| 56 | |
| 57 | config TPM_TIS_I2C_BURST_LIMITATION_LEN |
| 58 | int "Length" |
| 59 | depends on TPM_TIS_I2C_BURST_LIMITATION |
| 60 | help |
| 61 | Use this to set the burst limitation length |
| 62 | |
| 63 | config TPM_TIS_LPC |
| 64 | bool "Enable support for Infineon SLB9635/45 TPMs on LPC" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 65 | depends on TPM_V1 && X86 |
Miquel Raynal | d677bfe | 2018-05-15 11:57:06 +0200 | [diff] [blame] | 66 | select TPM_DRIVER_SELECTED |
Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 67 | help |
Christophe Ricard | ca5bc1b | 2016-01-21 23:19:14 +0100 | [diff] [blame] | 68 | This driver supports Infineon TPM devices connected on the LPC bus. |
Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 69 | The usual tpm operations and the 'tpm' command can be used to talk |
| 70 | to the device using the standard TPM Interface Specification (TIS) |
| 71 | protocol |
| 72 | |
| 73 | config TPM_AUTH_SESSIONS |
| 74 | bool "Enable TPM authentication session support" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 75 | depends on TPM_V1 |
Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 76 | help |
| 77 | Enable support for authorised (AUTH1) commands as specified in the |
| 78 | TCG Main Specification 1.2. OIAP-authorised versions of the commands |
| 79 | TPM_LoadKey2 and TPM_GetPubKey are provided. Both features are |
| 80 | available using the 'tpm' command, too. |
| 81 | |
Christophe Ricard | 3aa7408 | 2016-01-21 23:27:13 +0100 | [diff] [blame] | 82 | config TPM_ST33ZP24_I2C |
| 83 | bool "STMicroelectronics ST33ZP24 I2C TPM" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 84 | depends on TPM_V1 && DM_I2C |
Christophe Ricard | 3aa7408 | 2016-01-21 23:27:13 +0100 | [diff] [blame] | 85 | ---help--- |
| 86 | This driver supports STMicroelectronics TPM devices connected on the I2C bus. |
| 87 | The usual tpm operations and the 'tpm' command can be used to talk |
| 88 | to the device using the standard TPM Interface Specification (TIS) |
| 89 | protocol |
| 90 | |
Christophe Ricard | b75fdc1 | 2016-01-21 23:27:14 +0100 | [diff] [blame] | 91 | config TPM_ST33ZP24_SPI |
| 92 | bool "STMicroelectronics ST33ZP24 SPI TPM" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 93 | depends on TPM_V1 && DM_SPI |
Christophe Ricard | b75fdc1 | 2016-01-21 23:27:14 +0100 | [diff] [blame] | 94 | ---help--- |
| 95 | This driver supports STMicroelectronics TPM devices connected on the SPI bus. |
| 96 | The usual tpm operations and the 'tpm' command can be used to talk |
| 97 | to the device using the standard TPM Interface Specification (TIS) |
| 98 | protocol |
| 99 | |
Mario Six | 7690be3 | 2017-01-11 16:00:50 +0100 | [diff] [blame] | 100 | config TPM_FLUSH_RESOURCES |
| 101 | bool "Enable TPM resource flushing support" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 102 | depends on TPM_V1 |
Mario Six | 7690be3 | 2017-01-11 16:00:50 +0100 | [diff] [blame] | 103 | help |
| 104 | Enable support to flush specific resources (e.g. keys) from the TPM. |
| 105 | The functionality is available via the 'tpm' command as well. |
mario.six@gdsys.cc | 0f4b2ba | 2017-03-20 10:28:28 +0100 | [diff] [blame] | 106 | |
| 107 | config TPM_LOAD_KEY_BY_SHA1 |
| 108 | bool "Enable TPM key loading by SHA1 support" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 109 | depends on TPM_V1 |
mario.six@gdsys.cc | 0f4b2ba | 2017-03-20 10:28:28 +0100 | [diff] [blame] | 110 | help |
| 111 | Enable support to load keys into the TPM by identifying |
| 112 | their parent via the public key's SHA1 hash. |
| 113 | The functionality is available via the 'tpm' command as well. |
mario.six@gdsys.cc | 3d1df0e | 2017-03-20 10:28:30 +0100 | [diff] [blame] | 114 | |
| 115 | config TPM_LIST_RESOURCES |
| 116 | bool "Enable TPM resource listing support" |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 117 | depends on TPM_V1 |
mario.six@gdsys.cc | 3d1df0e | 2017-03-20 10:28:30 +0100 | [diff] [blame] | 118 | help |
| 119 | Enable support to list specific resources (e.g. keys) within the TPM. |
| 120 | The functionality is available via the 'tpm' command as well. |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 121 | |
| 122 | endif # TPM_V1 |
| 123 | |
| 124 | config TPM_V2 |
| 125 | bool "TPMv2.x support" |
| 126 | depends on TPM |
| 127 | help |
| 128 | Major TPM versions are not compatible at all, choose either |
| 129 | one or the other. This option enables TPMv2.x drivers/commands. |
| 130 | |
| 131 | if TPM_V2 && !TPM_V1 |
| 132 | |
Miquel Raynal | 2bae712 | 2018-05-15 11:57:25 +0200 | [diff] [blame] | 133 | config TPM2_TIS_SANDBOX |
| 134 | bool "Enable sandbox TPMv2.x driver" |
| 135 | depends on TPM_V2 && SANDBOX |
Miquel Raynal | a0cf1d0 | 2018-07-19 22:35:07 +0200 | [diff] [blame^] | 136 | default y |
Miquel Raynal | 2bae712 | 2018-05-15 11:57:25 +0200 | [diff] [blame] | 137 | select TPM_DRIVER_SELECTED |
| 138 | help |
| 139 | This driver emulates a TPMv2.x, providing access to base functions |
| 140 | such as basic configuration, PCR extension and PCR read. Extended |
| 141 | functionalities are not implemented. |
| 142 | |
Miquel Raynal | eb46910 | 2018-05-15 11:57:21 +0200 | [diff] [blame] | 143 | config TPM2_TIS_SPI |
| 144 | bool "Enable support for TPMv2.x SPI chips" |
| 145 | depends on TPM_V2 && DM_SPI |
| 146 | select TPM_DRIVER_SELECTED |
| 147 | help |
| 148 | This driver supports TPMv2.x devices connected on the SPI bus. |
| 149 | The usual TPM operations and the 'tpm' command can be used to talk |
| 150 | to the device using the standard TPM Interface Specification (TIS) |
| 151 | protocol. |
| 152 | |
Miquel Raynal | 9f9ce3c | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 153 | endif # TPM_V2 |
| 154 | |
Simon Glass | a7d660b | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 155 | endmenu |