Simon Glass | 350497c | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 1 | # |
| 2 | # TPM subsystem configuration |
| 3 | # |
| 4 | |
| 5 | menu "TPM support" |
| 6 | |
Miquel Raynal | 294f82a | 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 | 86232c8 | 2015-03-06 13:19:07 -0700 | [diff] [blame] | 20 | config TPM_TIS_SANDBOX |
| 21 | bool "Enable sandbox TPM driver" |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 22 | depends on TPM_V1 && SANDBOX |
Miquel Raynal | f965caa | 2018-07-19 22:35:07 +0200 | [diff] [blame] | 23 | default y |
Simon Glass | 86232c8 | 2015-03-06 13:19:07 -0700 | [diff] [blame] | 24 | help |
Miquel Raynal | cf4bfea | 2018-05-15 11:57:25 +0200 | [diff] [blame] | 25 | This driver emulates a TPMv1.x, providing access to base functions |
Simon Glass | 86232c8 | 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 | 350497c | 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 | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 32 | depends on TPM_V1 |
Simon Glass | 350497c | 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 | 8759ff8 | 2015-10-06 22:54:41 +0200 | [diff] [blame] | 39 | config TPM_TIS_INFINEON |
Simon Glass | 350497c | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 40 | bool "Enable support for Infineon SLB9635/45 TPMs on I2C" |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 41 | depends on TPM_V1 && DM_I2C |
Simon Glass | 350497c | 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 | 4c6759e | 2018-05-15 11:57:06 +0200 | [diff] [blame] | 50 | depends on TPM_TIS_INFINEON |
Simon Glass | 350497c | 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 | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 65 | depends on TPM_V1 && X86 |
Simon Glass | 350497c | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 66 | help |
Christophe Ricard | 628f1d0 | 2016-01-21 23:19:14 +0100 | [diff] [blame] | 67 | This driver supports Infineon TPM devices connected on the LPC bus. |
Simon Glass | 350497c | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 68 | The usual tpm operations and the 'tpm' command can be used to talk |
| 69 | to the device using the standard TPM Interface Specification (TIS) |
| 70 | protocol |
| 71 | |
| 72 | config TPM_AUTH_SESSIONS |
| 73 | bool "Enable TPM authentication session support" |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 74 | depends on TPM_V1 |
Simon Glass | 350497c | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 75 | help |
| 76 | Enable support for authorised (AUTH1) commands as specified in the |
| 77 | TCG Main Specification 1.2. OIAP-authorised versions of the commands |
| 78 | TPM_LoadKey2 and TPM_GetPubKey are provided. Both features are |
| 79 | available using the 'tpm' command, too. |
| 80 | |
Christophe Ricard | 8824923 | 2016-01-21 23:27:13 +0100 | [diff] [blame] | 81 | config TPM_ST33ZP24_I2C |
| 82 | bool "STMicroelectronics ST33ZP24 I2C TPM" |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 83 | depends on TPM_V1 && DM_I2C |
Christophe Ricard | 8824923 | 2016-01-21 23:27:13 +0100 | [diff] [blame] | 84 | ---help--- |
| 85 | This driver supports STMicroelectronics TPM devices connected on the I2C bus. |
| 86 | The usual tpm operations and the 'tpm' command can be used to talk |
| 87 | to the device using the standard TPM Interface Specification (TIS) |
| 88 | protocol |
| 89 | |
Christophe Ricard | 5ffadc3 | 2016-01-21 23:27:14 +0100 | [diff] [blame] | 90 | config TPM_ST33ZP24_SPI |
| 91 | bool "STMicroelectronics ST33ZP24 SPI TPM" |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 92 | depends on TPM_V1 && DM_SPI |
Christophe Ricard | 5ffadc3 | 2016-01-21 23:27:14 +0100 | [diff] [blame] | 93 | ---help--- |
| 94 | This driver supports STMicroelectronics TPM devices connected on the SPI bus. |
| 95 | The usual tpm operations and the 'tpm' command can be used to talk |
| 96 | to the device using the standard TPM Interface Specification (TIS) |
| 97 | protocol |
| 98 | |
Mario Six | 4eceb6c | 2017-01-11 16:00:50 +0100 | [diff] [blame] | 99 | config TPM_FLUSH_RESOURCES |
| 100 | bool "Enable TPM resource flushing support" |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 101 | depends on TPM_V1 |
Mario Six | 4eceb6c | 2017-01-11 16:00:50 +0100 | [diff] [blame] | 102 | help |
| 103 | Enable support to flush specific resources (e.g. keys) from the TPM. |
| 104 | The functionality is available via the 'tpm' command as well. |
mario.six@gdsys.cc | a5a7ea2 | 2017-03-20 10:28:28 +0100 | [diff] [blame] | 105 | |
| 106 | config TPM_LOAD_KEY_BY_SHA1 |
| 107 | bool "Enable TPM key loading by SHA1 support" |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 108 | depends on TPM_V1 |
mario.six@gdsys.cc | a5a7ea2 | 2017-03-20 10:28:28 +0100 | [diff] [blame] | 109 | help |
| 110 | Enable support to load keys into the TPM by identifying |
| 111 | their parent via the public key's SHA1 hash. |
| 112 | The functionality is available via the 'tpm' command as well. |
mario.six@gdsys.cc | a5bfcc5 | 2017-03-20 10:28:30 +0100 | [diff] [blame] | 113 | |
| 114 | config TPM_LIST_RESOURCES |
| 115 | bool "Enable TPM resource listing support" |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 116 | depends on TPM_V1 |
mario.six@gdsys.cc | a5bfcc5 | 2017-03-20 10:28:30 +0100 | [diff] [blame] | 117 | help |
| 118 | Enable support to list specific resources (e.g. keys) within the TPM. |
| 119 | The functionality is available via the 'tpm' command as well. |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 120 | |
| 121 | endif # TPM_V1 |
| 122 | |
| 123 | config TPM_V2 |
| 124 | bool "TPMv2.x support" |
| 125 | depends on TPM |
| 126 | help |
| 127 | Major TPM versions are not compatible at all, choose either |
| 128 | one or the other. This option enables TPMv2.x drivers/commands. |
| 129 | |
| 130 | if TPM_V2 && !TPM_V1 |
| 131 | |
Miquel Raynal | cf4bfea | 2018-05-15 11:57:25 +0200 | [diff] [blame] | 132 | config TPM2_TIS_SANDBOX |
| 133 | bool "Enable sandbox TPMv2.x driver" |
| 134 | depends on TPM_V2 && SANDBOX |
Miquel Raynal | f965caa | 2018-07-19 22:35:07 +0200 | [diff] [blame] | 135 | default y |
Miquel Raynal | cf4bfea | 2018-05-15 11:57:25 +0200 | [diff] [blame] | 136 | help |
| 137 | This driver emulates a TPMv2.x, providing access to base functions |
| 138 | such as basic configuration, PCR extension and PCR read. Extended |
| 139 | functionalities are not implemented. |
| 140 | |
Miquel Raynal | c1f6d6c | 2018-05-15 11:57:21 +0200 | [diff] [blame] | 141 | config TPM2_TIS_SPI |
| 142 | bool "Enable support for TPMv2.x SPI chips" |
| 143 | depends on TPM_V2 && DM_SPI |
Miquel Raynal | c1f6d6c | 2018-05-15 11:57:21 +0200 | [diff] [blame] | 144 | help |
| 145 | This driver supports TPMv2.x devices connected on the SPI bus. |
| 146 | The usual TPM operations and the 'tpm' command can be used to talk |
| 147 | to the device using the standard TPM Interface Specification (TIS) |
| 148 | protocol. |
| 149 | |
Miquel Raynal | 294f82a | 2018-05-15 11:57:05 +0200 | [diff] [blame] | 150 | endif # TPM_V2 |
| 151 | |
Simon Glass | 350497c | 2015-08-22 18:31:19 -0600 | [diff] [blame] | 152 | endmenu |