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