blob: 5e3fb3267f47cbbe9ca121999ff45dc9f18b18d1 [file] [log] [blame]
Simon Glass350497c2015-08-22 18:31:19 -06001#
2# TPM subsystem configuration
3#
4
5menu "TPM support"
6
Miquel Raynal294f82a2018-05-15 11:57:05 +02007comment "Please select only one TPM revision"
8 depends on TPM_V1 && TPM_V2
9
10config 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
18if TPM_V1 && !TPM_V2
19
Simon Glass86232c82015-03-06 13:19:07 -070020config TPM_TIS_SANDBOX
21 bool "Enable sandbox TPM driver"
Miquel Raynal294f82a2018-05-15 11:57:05 +020022 depends on TPM_V1 && SANDBOX
Miquel Raynalf965caa2018-07-19 22:35:07 +020023 default y
Simon Glass86232c82015-03-06 13:19:07 -070024 help
Miquel Raynalcf4bfea2018-05-15 11:57:25 +020025 This driver emulates a TPMv1.x, providing access to base functions
Simon Glass86232c82015-03-06 13:19:07 -070026 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 Glass350497c2015-08-22 18:31:19 -060029
30config TPM_ATMEL_TWI
31 bool "Enable Atmel TWI TPM device driver"
Miquel Raynal294f82a2018-05-15 11:57:05 +020032 depends on TPM_V1
Simon Glass350497c2015-08-22 18:31:19 -060033 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 Ricard8759ff82015-10-06 22:54:41 +020039config TPM_TIS_INFINEON
Simon Glass350497c2015-08-22 18:31:19 -060040 bool "Enable support for Infineon SLB9635/45 TPMs on I2C"
Miquel Raynal294f82a2018-05-15 11:57:05 +020041 depends on TPM_V1 && DM_I2C
Simon Glass350497c2015-08-22 18:31:19 -060042 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
48config TPM_TIS_I2C_BURST_LIMITATION
49 bool "Enable I2C burst length limitation"
Miquel Raynal4c6759e2018-05-15 11:57:06 +020050 depends on TPM_TIS_INFINEON
Simon Glass350497c2015-08-22 18:31:19 -060051 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
57config 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
63config TPM_TIS_LPC
64 bool "Enable support for Infineon SLB9635/45 TPMs on LPC"
Miquel Raynal294f82a2018-05-15 11:57:05 +020065 depends on TPM_V1 && X86
Miquel Raynal4c6759e2018-05-15 11:57:06 +020066 select TPM_DRIVER_SELECTED
Simon Glass350497c2015-08-22 18:31:19 -060067 help
Christophe Ricard628f1d02016-01-21 23:19:14 +010068 This driver supports Infineon TPM devices connected on the LPC bus.
Simon Glass350497c2015-08-22 18:31:19 -060069 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
73config TPM_AUTH_SESSIONS
74 bool "Enable TPM authentication session support"
Miquel Raynal294f82a2018-05-15 11:57:05 +020075 depends on TPM_V1
Simon Glass350497c2015-08-22 18:31:19 -060076 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 Ricard88249232016-01-21 23:27:13 +010082config TPM_ST33ZP24_I2C
83 bool "STMicroelectronics ST33ZP24 I2C TPM"
Miquel Raynal294f82a2018-05-15 11:57:05 +020084 depends on TPM_V1 && DM_I2C
Christophe Ricard88249232016-01-21 23:27:13 +010085 ---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 Ricard5ffadc32016-01-21 23:27:14 +010091config TPM_ST33ZP24_SPI
92 bool "STMicroelectronics ST33ZP24 SPI TPM"
Miquel Raynal294f82a2018-05-15 11:57:05 +020093 depends on TPM_V1 && DM_SPI
Christophe Ricard5ffadc32016-01-21 23:27:14 +010094 ---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 Six4eceb6c2017-01-11 16:00:50 +0100100config TPM_FLUSH_RESOURCES
101 bool "Enable TPM resource flushing support"
Miquel Raynal294f82a2018-05-15 11:57:05 +0200102 depends on TPM_V1
Mario Six4eceb6c2017-01-11 16:00:50 +0100103 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.cca5a7ea22017-03-20 10:28:28 +0100106
107config TPM_LOAD_KEY_BY_SHA1
108 bool "Enable TPM key loading by SHA1 support"
Miquel Raynal294f82a2018-05-15 11:57:05 +0200109 depends on TPM_V1
mario.six@gdsys.cca5a7ea22017-03-20 10:28:28 +0100110 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.cca5bfcc52017-03-20 10:28:30 +0100114
115config TPM_LIST_RESOURCES
116 bool "Enable TPM resource listing support"
Miquel Raynal294f82a2018-05-15 11:57:05 +0200117 depends on TPM_V1
mario.six@gdsys.cca5bfcc52017-03-20 10:28:30 +0100118 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 Raynal294f82a2018-05-15 11:57:05 +0200121
122endif # TPM_V1
123
124config 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
131if TPM_V2 && !TPM_V1
132
Miquel Raynalcf4bfea2018-05-15 11:57:25 +0200133config TPM2_TIS_SANDBOX
134 bool "Enable sandbox TPMv2.x driver"
135 depends on TPM_V2 && SANDBOX
Miquel Raynalf965caa2018-07-19 22:35:07 +0200136 default y
Miquel Raynalcf4bfea2018-05-15 11:57:25 +0200137 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 Raynalc1f6d6c2018-05-15 11:57:21 +0200143config 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 Raynal294f82a2018-05-15 11:57:05 +0200153endif # TPM_V2
154
Simon Glass350497c2015-08-22 18:31:19 -0600155endmenu