xref: /openbmc/u-boot/drivers/tpm/Kconfig (revision 9f9ce3c369b7fbcc47496331ff28fad80302a42c)
1a7d660bcSSimon Glass#
2a7d660bcSSimon Glass# TPM subsystem configuration
3a7d660bcSSimon Glass#
4a7d660bcSSimon Glass
5a7d660bcSSimon Glassmenu "TPM support"
6a7d660bcSSimon Glass
7*9f9ce3c3SMiquel Raynalcomment "Please select only one TPM revision"
8*9f9ce3c3SMiquel Raynal	depends on TPM_V1 && TPM_V2
9*9f9ce3c3SMiquel Raynal
10*9f9ce3c3SMiquel Raynalconfig TPM_V1
11*9f9ce3c3SMiquel Raynal	bool "TPMv1.x support"
12*9f9ce3c3SMiquel Raynal	depends on TPM
13*9f9ce3c3SMiquel Raynal	default y
14*9f9ce3c3SMiquel Raynal	help
15*9f9ce3c3SMiquel Raynal	  Major TPM versions are not compatible at all, choose either
16*9f9ce3c3SMiquel Raynal	  one or the other. This option enables TPMv1.x drivers/commands.
17*9f9ce3c3SMiquel Raynal
18*9f9ce3c3SMiquel Raynalif TPM_V1 && !TPM_V2
19*9f9ce3c3SMiquel Raynal
20527a0727SSimon Glassconfig TPM_TIS_SANDBOX
21527a0727SSimon Glass	bool "Enable sandbox TPM driver"
22*9f9ce3c3SMiquel Raynal	depends on TPM_V1 && SANDBOX
23527a0727SSimon Glass	help
24527a0727SSimon Glass	  This driver emulates a TPM, providing access to base functions
25527a0727SSimon Glass	  such as reading and writing TPM private data. This is enough to
26527a0727SSimon Glass	  support Chrome OS verified boot. Extend functionality is not
27527a0727SSimon Glass	  implemented.
28a7d660bcSSimon Glass
29a7d660bcSSimon Glassconfig TPM_ATMEL_TWI
30a7d660bcSSimon Glass	bool "Enable Atmel TWI TPM device driver"
31*9f9ce3c3SMiquel Raynal	depends on TPM_V1
32a7d660bcSSimon Glass	help
33a7d660bcSSimon Glass	  This driver supports an Atmel TPM device connected on the I2C bus.
34a7d660bcSSimon Glass	  The usual tpm operations and the 'tpm' command can be used to talk
35a7d660bcSSimon Glass	  to the device using the standard TPM Interface Specification (TIS)
36a7d660bcSSimon Glass	  protocol
37a7d660bcSSimon Glass
380766ad2fSChristophe Ricardconfig TPM_TIS_INFINEON
39a7d660bcSSimon Glass	bool "Enable support for Infineon SLB9635/45 TPMs on I2C"
40*9f9ce3c3SMiquel Raynal	depends on TPM_V1 && DM_I2C
41a7d660bcSSimon Glass	help
42a7d660bcSSimon Glass	  This driver supports Infineon TPM devices connected on the I2C bus.
43a7d660bcSSimon Glass	  The usual tpm operations and the 'tpm' command can be used to talk
44a7d660bcSSimon Glass	  to the device using the standard TPM Interface Specification (TIS)
45a7d660bcSSimon Glass	  protocol
46a7d660bcSSimon Glass
47a7d660bcSSimon Glassconfig TPM_TIS_I2C_BURST_LIMITATION
48a7d660bcSSimon Glass	bool "Enable I2C burst length limitation"
49*9f9ce3c3SMiquel Raynal	depends on TPM_V1 && TPM_TIS_INFINEON
50a7d660bcSSimon Glass	help
51a7d660bcSSimon Glass	  Some broken TPMs have a limitation on the number of bytes they can
52a7d660bcSSimon Glass	  receive in one message. Enable this option to allow you to set this
53a7d660bcSSimon Glass	  option. The can allow a broken TPM to be used by splitting messages
54a7d660bcSSimon Glass	  into separate pieces.
55a7d660bcSSimon Glass
56a7d660bcSSimon Glassconfig TPM_TIS_I2C_BURST_LIMITATION_LEN
57a7d660bcSSimon Glass	int "Length"
58a7d660bcSSimon Glass	depends on TPM_TIS_I2C_BURST_LIMITATION
59a7d660bcSSimon Glass	help
60a7d660bcSSimon Glass	  Use this to set the burst limitation length
61a7d660bcSSimon Glass
62a7d660bcSSimon Glassconfig TPM_TIS_LPC
63a7d660bcSSimon Glass	bool "Enable support for Infineon SLB9635/45 TPMs on LPC"
64*9f9ce3c3SMiquel Raynal	depends on TPM_V1 && X86
65a7d660bcSSimon Glass	help
66ca5bc1bcSChristophe Ricard	  This driver supports Infineon TPM devices connected on the LPC bus.
67a7d660bcSSimon Glass	  The usual tpm operations and the 'tpm' command can be used to talk
68a7d660bcSSimon Glass	  to the device using the standard TPM Interface Specification (TIS)
69a7d660bcSSimon Glass	  protocol
70a7d660bcSSimon Glass
71a7d660bcSSimon Glassconfig TPM_AUTH_SESSIONS
72a7d660bcSSimon Glass	bool "Enable TPM authentication session support"
73*9f9ce3c3SMiquel Raynal	depends on TPM_V1
74a7d660bcSSimon Glass	help
75a7d660bcSSimon Glass	  Enable support for authorised (AUTH1) commands as specified in the
76a7d660bcSSimon Glass	  TCG Main Specification 1.2. OIAP-authorised versions of the commands
77a7d660bcSSimon Glass	  TPM_LoadKey2 and TPM_GetPubKey are provided. Both features are
78a7d660bcSSimon Glass	  available using the 'tpm' command, too.
79a7d660bcSSimon Glass
803aa74088SChristophe Ricardconfig TPM_ST33ZP24_I2C
813aa74088SChristophe Ricard	bool "STMicroelectronics ST33ZP24 I2C TPM"
82*9f9ce3c3SMiquel Raynal	depends on TPM_V1 && DM_I2C
833aa74088SChristophe Ricard	---help---
843aa74088SChristophe Ricard	  This driver supports STMicroelectronics TPM devices connected on the I2C bus.
853aa74088SChristophe Ricard	  The usual tpm operations and the 'tpm' command can be used to talk
863aa74088SChristophe Ricard	  to the device using the standard TPM Interface Specification (TIS)
873aa74088SChristophe Ricard	  protocol
883aa74088SChristophe Ricard
89b75fdc11SChristophe Ricardconfig TPM_ST33ZP24_SPI
90b75fdc11SChristophe Ricard	bool "STMicroelectronics ST33ZP24 SPI TPM"
91*9f9ce3c3SMiquel Raynal	depends on TPM_V1 && DM_SPI
92b75fdc11SChristophe Ricard	---help---
93b75fdc11SChristophe Ricard	  This driver supports STMicroelectronics TPM devices connected on the SPI bus.
94b75fdc11SChristophe Ricard	  The usual tpm operations and the 'tpm' command can be used to talk
95b75fdc11SChristophe Ricard	  to the device using the standard TPM Interface Specification (TIS)
96b75fdc11SChristophe Ricard	  protocol
97b75fdc11SChristophe Ricard
987690be35SMario Sixconfig TPM_FLUSH_RESOURCES
997690be35SMario Six	bool "Enable TPM resource flushing support"
100*9f9ce3c3SMiquel Raynal	depends on TPM_V1
1017690be35SMario Six	help
1027690be35SMario Six	  Enable support to flush specific resources (e.g. keys) from the TPM.
1037690be35SMario Six	  The functionality is available via the 'tpm' command as well.
1040f4b2ba1Smario.six@gdsys.cc
1050f4b2ba1Smario.six@gdsys.ccconfig TPM_LOAD_KEY_BY_SHA1
1060f4b2ba1Smario.six@gdsys.cc	bool "Enable TPM key loading by SHA1 support"
107*9f9ce3c3SMiquel Raynal	depends on TPM_V1
1080f4b2ba1Smario.six@gdsys.cc	help
1090f4b2ba1Smario.six@gdsys.cc	  Enable support to load keys into the TPM by identifying
1100f4b2ba1Smario.six@gdsys.cc	  their parent via the public key's SHA1 hash.
1110f4b2ba1Smario.six@gdsys.cc	  The functionality is available via the 'tpm' command as well.
1123d1df0e3Smario.six@gdsys.cc
1133d1df0e3Smario.six@gdsys.ccconfig TPM_LIST_RESOURCES
1143d1df0e3Smario.six@gdsys.cc	bool "Enable TPM resource listing support"
115*9f9ce3c3SMiquel Raynal	depends on TPM_V1
1163d1df0e3Smario.six@gdsys.cc	help
1173d1df0e3Smario.six@gdsys.cc	  Enable support to list specific resources (e.g. keys) within the TPM.
1183d1df0e3Smario.six@gdsys.cc	  The functionality is available via the 'tpm' command as well.
119*9f9ce3c3SMiquel Raynal
120*9f9ce3c3SMiquel Raynalendif # TPM_V1
121*9f9ce3c3SMiquel Raynal
122*9f9ce3c3SMiquel Raynalconfig TPM_V2
123*9f9ce3c3SMiquel Raynal	bool "TPMv2.x support"
124*9f9ce3c3SMiquel Raynal	depends on TPM
125*9f9ce3c3SMiquel Raynal	help
126*9f9ce3c3SMiquel Raynal	  Major TPM versions are not compatible at all, choose either
127*9f9ce3c3SMiquel Raynal	  one or the other. This option enables TPMv2.x drivers/commands.
128*9f9ce3c3SMiquel Raynal
129*9f9ce3c3SMiquel Raynalif TPM_V2 && !TPM_V1
130*9f9ce3c3SMiquel Raynal
131*9f9ce3c3SMiquel Raynalendif # TPM_V2
132*9f9ce3c3SMiquel Raynal
133a7d660bcSSimon Glassendmenu
134