blob: 93264ddd34374f2ccb3267247c14e0fb57b46b89 [file] [log] [blame]
Simon Glassa7d660b2015-08-22 18:31:19 -06001#
2# TPM subsystem configuration
3#
4
5menu "TPM support"
6
Miquel Raynal9f9ce3c2018-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 Glass527a0722015-03-06 13:19:07 -070020config TPM_TIS_SANDBOX
21 bool "Enable sandbox TPM driver"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +020022 depends on TPM_V1 && SANDBOX
Simon Glass527a0722015-03-06 13:19:07 -070023 help
Miquel Raynal2bae7122018-05-15 11:57:25 +020024 This driver emulates a TPMv1.x, providing access to base functions
Simon Glass527a0722015-03-06 13:19:07 -070025 such as reading and writing TPM private data. This is enough to
26 support Chrome OS verified boot. Extend functionality is not
27 implemented.
Simon Glassa7d660b2015-08-22 18:31:19 -060028
29config TPM_ATMEL_TWI
30 bool "Enable Atmel TWI TPM device driver"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +020031 depends on TPM_V1
Simon Glassa7d660b2015-08-22 18:31:19 -060032 help
33 This driver supports an Atmel TPM device connected on the I2C bus.
34 The usual tpm operations and the 'tpm' command can be used to talk
35 to the device using the standard TPM Interface Specification (TIS)
36 protocol
37
Christophe Ricard0766ad22015-10-06 22:54:41 +020038config TPM_TIS_INFINEON
Simon Glassa7d660b2015-08-22 18:31:19 -060039 bool "Enable support for Infineon SLB9635/45 TPMs on I2C"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +020040 depends on TPM_V1 && DM_I2C
Simon Glassa7d660b2015-08-22 18:31:19 -060041 help
42 This driver supports Infineon TPM devices connected on the I2C bus.
43 The usual tpm operations and the 'tpm' command can be used to talk
44 to the device using the standard TPM Interface Specification (TIS)
45 protocol
46
47config TPM_TIS_I2C_BURST_LIMITATION
48 bool "Enable I2C burst length limitation"
Miquel Raynald677bfe2018-05-15 11:57:06 +020049 depends on TPM_TIS_INFINEON
Simon Glassa7d660b2015-08-22 18:31:19 -060050 help
51 Some broken TPMs have a limitation on the number of bytes they can
52 receive in one message. Enable this option to allow you to set this
53 option. The can allow a broken TPM to be used by splitting messages
54 into separate pieces.
55
56config TPM_TIS_I2C_BURST_LIMITATION_LEN
57 int "Length"
58 depends on TPM_TIS_I2C_BURST_LIMITATION
59 help
60 Use this to set the burst limitation length
61
62config TPM_TIS_LPC
63 bool "Enable support for Infineon SLB9635/45 TPMs on LPC"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +020064 depends on TPM_V1 && X86
Miquel Raynald677bfe2018-05-15 11:57:06 +020065 select TPM_DRIVER_SELECTED
Simon Glassa7d660b2015-08-22 18:31:19 -060066 help
Christophe Ricardca5bc1b2016-01-21 23:19:14 +010067 This driver supports Infineon TPM devices connected on the LPC bus.
Simon Glassa7d660b2015-08-22 18:31:19 -060068 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
72config TPM_AUTH_SESSIONS
73 bool "Enable TPM authentication session support"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +020074 depends on TPM_V1
Simon Glassa7d660b2015-08-22 18:31:19 -060075 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 Ricard3aa74082016-01-21 23:27:13 +010081config TPM_ST33ZP24_I2C
82 bool "STMicroelectronics ST33ZP24 I2C TPM"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +020083 depends on TPM_V1 && DM_I2C
Christophe Ricard3aa74082016-01-21 23:27:13 +010084 ---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 Ricardb75fdc12016-01-21 23:27:14 +010090config TPM_ST33ZP24_SPI
91 bool "STMicroelectronics ST33ZP24 SPI TPM"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +020092 depends on TPM_V1 && DM_SPI
Christophe Ricardb75fdc12016-01-21 23:27:14 +010093 ---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 Six7690be32017-01-11 16:00:50 +010099config TPM_FLUSH_RESOURCES
100 bool "Enable TPM resource flushing support"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +0200101 depends on TPM_V1
Mario Six7690be32017-01-11 16:00:50 +0100102 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.cc0f4b2ba2017-03-20 10:28:28 +0100105
106config TPM_LOAD_KEY_BY_SHA1
107 bool "Enable TPM key loading by SHA1 support"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +0200108 depends on TPM_V1
mario.six@gdsys.cc0f4b2ba2017-03-20 10:28:28 +0100109 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.cc3d1df0e2017-03-20 10:28:30 +0100113
114config TPM_LIST_RESOURCES
115 bool "Enable TPM resource listing support"
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +0200116 depends on TPM_V1
mario.six@gdsys.cc3d1df0e2017-03-20 10:28:30 +0100117 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 Raynal9f9ce3c2018-05-15 11:57:05 +0200120
121endif # TPM_V1
122
123config 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
130if TPM_V2 && !TPM_V1
131
Miquel Raynal2bae7122018-05-15 11:57:25 +0200132config TPM2_TIS_SANDBOX
133 bool "Enable sandbox TPMv2.x driver"
134 depends on TPM_V2 && SANDBOX
135 select TPM_DRIVER_SELECTED
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 Raynaleb469102018-05-15 11:57:21 +0200141config TPM2_TIS_SPI
142 bool "Enable support for TPMv2.x SPI chips"
143 depends on TPM_V2 && DM_SPI
144 select TPM_DRIVER_SELECTED
145 help
146 This driver supports TPMv2.x devices connected on the SPI bus.
147 The usual TPM operations and the 'tpm' command can be used to talk
148 to the device using the standard TPM Interface Specification (TIS)
149 protocol.
150
Miquel Raynal9f9ce3c2018-05-15 11:57:05 +0200151endif # TPM_V2
152
Simon Glassa7d660b2015-08-22 18:31:19 -0600153endmenu