xref: /openbmc/u-boot/drivers/tpm/Kconfig (revision c66f5620)
1#
2# TPM subsystem configuration
3#
4
5menu "TPM support"
6
7comment "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
20config TPM_TIS_SANDBOX
21	bool "Enable sandbox TPM driver"
22	depends on TPM_V1 && SANDBOX
23	help
24	  This driver emulates a TPMv1.x, providing access to base functions
25	  such as reading and writing TPM private data. This is enough to
26	  support Chrome OS verified boot. Extend functionality is not
27	  implemented.
28
29config TPM_ATMEL_TWI
30	bool "Enable Atmel TWI TPM device driver"
31	depends on TPM_V1
32	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
38config TPM_TIS_INFINEON
39	bool "Enable support for Infineon SLB9635/45 TPMs on I2C"
40	depends on TPM_V1 && DM_I2C
41	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"
49	depends on TPM_TIS_INFINEON
50	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"
64	depends on TPM_V1 && X86
65	select TPM_DRIVER_SELECTED
66	help
67	  This driver supports Infineon TPM devices connected on the LPC bus.
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
72config TPM_AUTH_SESSIONS
73	bool "Enable TPM authentication session support"
74	depends on TPM_V1
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
81config TPM_ST33ZP24_I2C
82	bool "STMicroelectronics ST33ZP24 I2C TPM"
83	depends on TPM_V1 && DM_I2C
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
90config TPM_ST33ZP24_SPI
91	bool "STMicroelectronics ST33ZP24 SPI TPM"
92	depends on TPM_V1 && DM_SPI
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
99config TPM_FLUSH_RESOURCES
100	bool "Enable TPM resource flushing support"
101	depends on TPM_V1
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.
105
106config TPM_LOAD_KEY_BY_SHA1
107	bool "Enable TPM key loading by SHA1 support"
108	depends on TPM_V1
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.
113
114config TPM_LIST_RESOURCES
115	bool "Enable TPM resource listing support"
116	depends on TPM_V1
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.
120
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
132config 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
141config 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
151endif # TPM_V2
152
153endmenu
154