xref: /openbmc/u-boot/drivers/tpm/Kconfig (revision a0cf1d0ce03544a60a135ea9c3ccab3830a8fc11)
1a7d660bcSSimon Glass#
2a7d660bcSSimon Glass# TPM subsystem configuration
3a7d660bcSSimon Glass#
4a7d660bcSSimon Glass
5a7d660bcSSimon Glassmenu "TPM support"
6a7d660bcSSimon Glass
79f9ce3c3SMiquel Raynalcomment "Please select only one TPM revision"
89f9ce3c3SMiquel Raynal	depends on TPM_V1 && TPM_V2
99f9ce3c3SMiquel Raynal
109f9ce3c3SMiquel Raynalconfig TPM_V1
119f9ce3c3SMiquel Raynal	bool "TPMv1.x support"
129f9ce3c3SMiquel Raynal	depends on TPM
139f9ce3c3SMiquel Raynal	default y
149f9ce3c3SMiquel Raynal	help
159f9ce3c3SMiquel Raynal	  Major TPM versions are not compatible at all, choose either
169f9ce3c3SMiquel Raynal	  one or the other. This option enables TPMv1.x drivers/commands.
179f9ce3c3SMiquel Raynal
189f9ce3c3SMiquel Raynalif TPM_V1 && !TPM_V2
199f9ce3c3SMiquel Raynal
20527a0727SSimon Glassconfig TPM_TIS_SANDBOX
21527a0727SSimon Glass	bool "Enable sandbox TPM driver"
229f9ce3c3SMiquel Raynal	depends on TPM_V1 && SANDBOX
23*a0cf1d0cSMiquel Raynal	default y
24527a0727SSimon Glass	help
252bae712fSMiquel Raynal	  This driver emulates a TPMv1.x, providing access to base functions
26527a0727SSimon Glass	  such as reading and writing TPM private data. This is enough to
27527a0727SSimon Glass	  support Chrome OS verified boot. Extend functionality is not
28527a0727SSimon Glass	  implemented.
29a7d660bcSSimon Glass
30a7d660bcSSimon Glassconfig TPM_ATMEL_TWI
31a7d660bcSSimon Glass	bool "Enable Atmel TWI TPM device driver"
329f9ce3c3SMiquel Raynal	depends on TPM_V1
33a7d660bcSSimon Glass	help
34a7d660bcSSimon Glass	  This driver supports an Atmel TPM device connected on the I2C bus.
35a7d660bcSSimon Glass	  The usual tpm operations and the 'tpm' command can be used to talk
36a7d660bcSSimon Glass	  to the device using the standard TPM Interface Specification (TIS)
37a7d660bcSSimon Glass	  protocol
38a7d660bcSSimon Glass
390766ad2fSChristophe Ricardconfig TPM_TIS_INFINEON
40a7d660bcSSimon Glass	bool "Enable support for Infineon SLB9635/45 TPMs on I2C"
419f9ce3c3SMiquel Raynal	depends on TPM_V1 && DM_I2C
42a7d660bcSSimon Glass	help
43a7d660bcSSimon Glass	  This driver supports Infineon TPM devices connected on the I2C bus.
44a7d660bcSSimon Glass	  The usual tpm operations and the 'tpm' command can be used to talk
45a7d660bcSSimon Glass	  to the device using the standard TPM Interface Specification (TIS)
46a7d660bcSSimon Glass	  protocol
47a7d660bcSSimon Glass
48a7d660bcSSimon Glassconfig TPM_TIS_I2C_BURST_LIMITATION
49a7d660bcSSimon Glass	bool "Enable I2C burst length limitation"
50d677bfe2SMiquel Raynal	depends on TPM_TIS_INFINEON
51a7d660bcSSimon Glass	help
52a7d660bcSSimon Glass	  Some broken TPMs have a limitation on the number of bytes they can
53a7d660bcSSimon Glass	  receive in one message. Enable this option to allow you to set this
54a7d660bcSSimon Glass	  option. The can allow a broken TPM to be used by splitting messages
55a7d660bcSSimon Glass	  into separate pieces.
56a7d660bcSSimon Glass
57a7d660bcSSimon Glassconfig TPM_TIS_I2C_BURST_LIMITATION_LEN
58a7d660bcSSimon Glass	int "Length"
59a7d660bcSSimon Glass	depends on TPM_TIS_I2C_BURST_LIMITATION
60a7d660bcSSimon Glass	help
61a7d660bcSSimon Glass	  Use this to set the burst limitation length
62a7d660bcSSimon Glass
63a7d660bcSSimon Glassconfig TPM_TIS_LPC
64a7d660bcSSimon Glass	bool "Enable support for Infineon SLB9635/45 TPMs on LPC"
659f9ce3c3SMiquel Raynal	depends on TPM_V1 && X86
66d677bfe2SMiquel Raynal	select TPM_DRIVER_SELECTED
67a7d660bcSSimon Glass	help
68ca5bc1bcSChristophe Ricard	  This driver supports Infineon TPM devices connected on the LPC bus.
69a7d660bcSSimon Glass	  The usual tpm operations and the 'tpm' command can be used to talk
70a7d660bcSSimon Glass	  to the device using the standard TPM Interface Specification (TIS)
71a7d660bcSSimon Glass	  protocol
72a7d660bcSSimon Glass
73a7d660bcSSimon Glassconfig TPM_AUTH_SESSIONS
74a7d660bcSSimon Glass	bool "Enable TPM authentication session support"
759f9ce3c3SMiquel Raynal	depends on TPM_V1
76a7d660bcSSimon Glass	help
77a7d660bcSSimon Glass	  Enable support for authorised (AUTH1) commands as specified in the
78a7d660bcSSimon Glass	  TCG Main Specification 1.2. OIAP-authorised versions of the commands
79a7d660bcSSimon Glass	  TPM_LoadKey2 and TPM_GetPubKey are provided. Both features are
80a7d660bcSSimon Glass	  available using the 'tpm' command, too.
81a7d660bcSSimon Glass
823aa74088SChristophe Ricardconfig TPM_ST33ZP24_I2C
833aa74088SChristophe Ricard	bool "STMicroelectronics ST33ZP24 I2C TPM"
849f9ce3c3SMiquel Raynal	depends on TPM_V1 && DM_I2C
853aa74088SChristophe Ricard	---help---
863aa74088SChristophe Ricard	  This driver supports STMicroelectronics TPM devices connected on the I2C bus.
873aa74088SChristophe Ricard	  The usual tpm operations and the 'tpm' command can be used to talk
883aa74088SChristophe Ricard	  to the device using the standard TPM Interface Specification (TIS)
893aa74088SChristophe Ricard	  protocol
903aa74088SChristophe Ricard
91b75fdc11SChristophe Ricardconfig TPM_ST33ZP24_SPI
92b75fdc11SChristophe Ricard	bool "STMicroelectronics ST33ZP24 SPI TPM"
939f9ce3c3SMiquel Raynal	depends on TPM_V1 && DM_SPI
94b75fdc11SChristophe Ricard	---help---
95b75fdc11SChristophe Ricard	  This driver supports STMicroelectronics TPM devices connected on the SPI bus.
96b75fdc11SChristophe Ricard	  The usual tpm operations and the 'tpm' command can be used to talk
97b75fdc11SChristophe Ricard	  to the device using the standard TPM Interface Specification (TIS)
98b75fdc11SChristophe Ricard	  protocol
99b75fdc11SChristophe Ricard
1007690be35SMario Sixconfig TPM_FLUSH_RESOURCES
1017690be35SMario Six	bool "Enable TPM resource flushing support"
1029f9ce3c3SMiquel Raynal	depends on TPM_V1
1037690be35SMario Six	help
1047690be35SMario Six	  Enable support to flush specific resources (e.g. keys) from the TPM.
1057690be35SMario Six	  The functionality is available via the 'tpm' command as well.
1060f4b2ba1Smario.six@gdsys.cc
1070f4b2ba1Smario.six@gdsys.ccconfig TPM_LOAD_KEY_BY_SHA1
1080f4b2ba1Smario.six@gdsys.cc	bool "Enable TPM key loading by SHA1 support"
1099f9ce3c3SMiquel Raynal	depends on TPM_V1
1100f4b2ba1Smario.six@gdsys.cc	help
1110f4b2ba1Smario.six@gdsys.cc	  Enable support to load keys into the TPM by identifying
1120f4b2ba1Smario.six@gdsys.cc	  their parent via the public key's SHA1 hash.
1130f4b2ba1Smario.six@gdsys.cc	  The functionality is available via the 'tpm' command as well.
1143d1df0e3Smario.six@gdsys.cc
1153d1df0e3Smario.six@gdsys.ccconfig TPM_LIST_RESOURCES
1163d1df0e3Smario.six@gdsys.cc	bool "Enable TPM resource listing support"
1179f9ce3c3SMiquel Raynal	depends on TPM_V1
1183d1df0e3Smario.six@gdsys.cc	help
1193d1df0e3Smario.six@gdsys.cc	  Enable support to list specific resources (e.g. keys) within the TPM.
1203d1df0e3Smario.six@gdsys.cc	  The functionality is available via the 'tpm' command as well.
1219f9ce3c3SMiquel Raynal
1229f9ce3c3SMiquel Raynalendif # TPM_V1
1239f9ce3c3SMiquel Raynal
1249f9ce3c3SMiquel Raynalconfig TPM_V2
1259f9ce3c3SMiquel Raynal	bool "TPMv2.x support"
1269f9ce3c3SMiquel Raynal	depends on TPM
1279f9ce3c3SMiquel Raynal	help
1289f9ce3c3SMiquel Raynal	  Major TPM versions are not compatible at all, choose either
1299f9ce3c3SMiquel Raynal	  one or the other. This option enables TPMv2.x drivers/commands.
1309f9ce3c3SMiquel Raynal
1319f9ce3c3SMiquel Raynalif TPM_V2 && !TPM_V1
1329f9ce3c3SMiquel Raynal
1332bae712fSMiquel Raynalconfig TPM2_TIS_SANDBOX
1342bae712fSMiquel Raynal	bool "Enable sandbox TPMv2.x driver"
1352bae712fSMiquel Raynal	depends on TPM_V2 && SANDBOX
136*a0cf1d0cSMiquel Raynal	default y
1372bae712fSMiquel Raynal	select TPM_DRIVER_SELECTED
1382bae712fSMiquel Raynal	help
1392bae712fSMiquel Raynal	  This driver emulates a TPMv2.x, providing access to base functions
1402bae712fSMiquel Raynal	  such as basic configuration, PCR extension and PCR read. Extended
1412bae712fSMiquel Raynal	  functionalities are not implemented.
1422bae712fSMiquel Raynal
143eb46910bSMiquel Raynalconfig TPM2_TIS_SPI
144eb46910bSMiquel Raynal	bool "Enable support for TPMv2.x SPI chips"
145eb46910bSMiquel Raynal	depends on TPM_V2 && DM_SPI
146eb46910bSMiquel Raynal	select TPM_DRIVER_SELECTED
147eb46910bSMiquel Raynal	help
148eb46910bSMiquel Raynal	  This driver supports TPMv2.x devices connected on the SPI bus.
149eb46910bSMiquel Raynal	  The usual TPM operations and the 'tpm' command can be used to talk
150eb46910bSMiquel Raynal	  to the device using the standard TPM Interface Specification (TIS)
151eb46910bSMiquel Raynal	  protocol.
152eb46910bSMiquel Raynal
1539f9ce3c3SMiquel Raynalendif # TPM_V2
1549f9ce3c3SMiquel Raynal
155a7d660bcSSimon Glassendmenu
156