blob: a30352202f1fdc53f411d1bd6a31ef6386612570 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
2# TPM device configuration
3#
4
Jan Engelhardt7126b752007-07-15 23:39:31 -07005menuconfig TCG_TPM
Linus Torvalds1da177e2005-04-16 15:20:36 -07006 tristate "TPM Hardware Support"
Jan Engelhardt7126b752007-07-15 23:39:31 -07007 depends on HAS_IOMEM
Eric Parisda318942008-08-22 11:35:57 -04008 select SECURITYFS
Arnd Bergmann4bf4b4e2017-02-28 22:12:55 +01009 select CRYPTO
Nayna Jainc1f92b42017-01-30 04:59:41 -050010 select CRYPTO_HASH_INFO
Linus Torvalds1da177e2005-04-16 15:20:36 -070011 ---help---
12 If you have a TPM security chip in your system, which
13 implements the Trusted Computing Group's specification,
14 say Yes and it will be accessible from within Linux. For
15 more information see <http://www.trustedcomputinggroup.org>.
16 An implementation of the Trusted Software Stack (TSS), the
17 userspace enablement piece of the specification, can be
18 obtained at: <http://sourceforge.net/projects/trousers>. To
19 compile this driver as a module, choose M here; the module
20 will be called tpm. If unsure, say N.
Rajiv Andrade7f2ab002010-05-13 17:37:54 -030021 Notes:
22 1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
James Morrisec4a1622010-05-07 09:19:29 +100023 and CONFIG_PNPACPI.
Rajiv Andrade7f2ab002010-05-13 17:37:54 -030024 2) Without ACPI enabled, the BIOS event log won't be accessible,
25 which is required to validate the PCR 0-7 values.
Linus Torvalds1da177e2005-04-16 15:20:36 -070026
Jan Engelhardt7126b752007-07-15 23:39:31 -070027if TCG_TPM
28
Christophe Ricard41a5e1c2016-05-19 00:35:52 +020029config TCG_TIS_CORE
30 tristate
31 ---help---
32 TCG TIS TPM core driver. It implements the TPM TCG TIS logic and hooks
33 into the TPM kernel APIs. Physical layers will register against it.
34
Leendert van Doorn27084ef2006-04-22 02:38:03 -070035config TCG_TIS
Peter Huewe44506432015-03-15 00:54:43 +010036 tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface"
Jason Gunthorpe420d4392016-11-07 15:44:31 -070037 depends on X86 || OF
Christophe Ricard41a5e1c2016-05-19 00:35:52 +020038 select TCG_TIS_CORE
Leendert van Doorn27084ef2006-04-22 02:38:03 -070039 ---help---
40 If you have a TPM security chip that is compliant with the
Peter Huewe44506432015-03-15 00:54:43 +010041 TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO
42 specification (TPM2.0) say Yes and it will be accessible from
43 within Linux. To compile this driver as a module, choose M here;
44 the module will be called tpm_tis.
Leendert van Doorn27084ef2006-04-22 02:38:03 -070045
Christophe Ricard0edbfea2016-05-19 00:35:53 +020046config TCG_TIS_SPI
47 tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (SPI)"
48 depends on SPI
49 select TCG_TIS_CORE
50 ---help---
51 If you have a TPM security chip which is connected to a regular,
52 non-tcg SPI master (i.e. most embedded platforms) that is compliant with the
53 TCG TIS 1.3 TPM specification (TPM1.2) or the TCG PTP FIFO
54 specification (TPM2.0) say Yes and it will be accessible from
55 within Linux. To compile this driver as a module, choose M here;
56 the module will be called tpm_tis_spi.
57
Jason Gunthorpea2871c62013-10-06 12:43:36 -060058config TCG_TIS_I2C_ATMEL
59 tristate "TPM Interface Specification 1.2 Interface (I2C - Atmel)"
60 depends on I2C
61 ---help---
62 If you have an Atmel I2C TPM security chip say Yes and it will be
63 accessible from within Linux.
64 To compile this driver as a module, choose M here; the module will
65 be called tpm_tis_i2c_atmel.
66
Peter Hueweaad628c2012-08-07 11:42:32 +020067config TCG_TIS_I2C_INFINEON
68 tristate "TPM Interface Specification 1.2 Interface (I2C - Infineon)"
69 depends on I2C
70 ---help---
71 If you have a TPM security chip that is compliant with the
72 TCG TIS 1.2 TPM specification and Infineon's I2C Protocol Stack
73 Specification 0.20 say Yes and it will be accessible from within
74 Linux.
75 To compile this driver as a module, choose M here; the module
Peter Hueweb3f24362013-10-22 01:12:15 +020076 will be called tpm_i2c_infineon.
Peter Hueweaad628c2012-08-07 11:42:32 +020077
Jason Gunthorpe4c336e42013-10-06 12:43:13 -060078config TCG_TIS_I2C_NUVOTON
79 tristate "TPM Interface Specification 1.2 Interface (I2C - Nuvoton)"
80 depends on I2C
81 ---help---
82 If you have a TPM security chip with an I2C interface from
83 Nuvoton Technology Corp. say Yes and it will be accessible
84 from within Linux.
85 To compile this driver as a module, choose M here; the module
86 will be called tpm_i2c_nuvoton.
87
Linus Torvalds1da177e2005-04-16 15:20:36 -070088config TCG_NSC
89 tristate "National Semiconductor TPM Interface"
Rajiv Andrade2f592f22011-11-01 09:42:58 -020090 depends on X86
Linus Torvalds1da177e2005-04-16 15:20:36 -070091 ---help---
David Sterba3dde6ad2007-05-09 07:12:20 +020092 If you have a TPM security chip from National Semiconductor
Linus Torvalds1da177e2005-04-16 15:20:36 -070093 say Yes and it will be accessible from within Linux. To
94 compile this driver as a module, choose M here; the module
95 will be called tpm_nsc.
96
97config TCG_ATMEL
98 tristate "Atmel TPM Interface"
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -070099 depends on PPC64 || HAS_IOPORT_MAP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700100 ---help---
101 If you have a TPM security chip from Atmel say Yes and it
102 will be accessible from within Linux. To compile this driver
103 as a module, choose M here; the module will be called tpm_atmel.
104
Marcel Selhorstebb81fd2005-07-27 11:45:12 -0700105config TCG_INFINEON
Marcel Selhorstf9abb022005-08-05 11:59:33 -0700106 tristate "Infineon Technologies TPM Interface"
Bjorn Helgaascedb27d2008-04-29 01:03:25 -0700107 depends on PNP
Marcel Selhorstebb81fd2005-07-27 11:45:12 -0700108 ---help---
109 If you have a TPM security chip from Infineon Technologies
Marcel Selhorstf9abb022005-08-05 11:59:33 -0700110 (either SLD 9630 TT 1.1 or SLB 9635 TT 1.2) say Yes and it
111 will be accessible from within Linux.
112 To compile this driver as a module, choose M here; the module
Marcel Selhorstebb81fd2005-07-27 11:45:12 -0700113 will be called tpm_infineon.
114 Further information on this driver and the supported hardware
Justin P. Mattock631dd1a2010-10-18 11:03:14 +0200115 can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/
Marcel Selhorstebb81fd2005-07-27 11:45:12 -0700116
Ashley Lai132f7622012-08-22 16:17:43 -0500117config TCG_IBMVTPM
118 tristate "IBM VTPM Interface"
Kent Yoder5b266032013-02-11 14:36:44 -0500119 depends on PPC_PSERIES
Ashley Lai132f7622012-08-22 16:17:43 -0500120 ---help---
121 If you have IBM virtual TPM (VTPM) support say Yes and it
122 will be accessible from within Linux. To compile this driver
123 as a module, choose M here; the module will be called tpm_ibmvtpm.
124
Daniel De Graafe2683952013-07-30 13:29:47 -0400125config TCG_XEN
126 tristate "XEN TPM Interface"
127 depends on TCG_TPM && XEN
Konrad Rzeszutek Wilk713efca2013-08-30 09:02:27 -0400128 select XEN_XENBUS_FRONTEND
Daniel De Graafe2683952013-07-30 13:29:47 -0400129 ---help---
130 If you want to make TPM support available to a Xen user domain,
131 say Yes and it will be accessible from within Linux. See
132 the manpages for xl, xl.conf, and docs/misc/vtpm.txt in
133 the Xen source repository for more details.
134 To compile this driver as a module, choose M here; the module
135 will be called xen-tpmfront.
136
Jarkko Sakkinen30fc8d12014-12-12 11:46:39 -0800137config TCG_CRB
138 tristate "TPM 2.0 CRB Interface"
Jiandi An08eff492017-03-24 04:55:45 -0500139 depends on ACPI
Jarkko Sakkinen30fc8d12014-12-12 11:46:39 -0800140 ---help---
141 If you have a TPM security chip that is compliant with the
142 TCG CRB 2.0 TPM specification say Yes and it will be accessible
143 from within Linux. To compile this driver as a module, choose
144 M here; the module will be called tpm_crb.
145
Stefan Berger6f996122016-04-18 13:26:15 -0400146config TCG_VTPM_PROXY
147 tristate "VTPM Proxy Interface"
148 depends on TCG_TPM
Arnd Bergmanna6885a52016-04-28 12:46:13 +0200149 select ANON_INODES
Stefan Berger6f996122016-04-18 13:26:15 -0400150 ---help---
151 This driver proxies for an emulated TPM (vTPM) running in userspace.
152 A device /dev/vtpmx is provided that creates a device pair
153 /dev/vtpmX and a server-side file descriptor on which the vTPM
154 can receive commands.
155
156
Christophe Ricardbf38b872015-03-08 11:17:14 +0100157source "drivers/char/tpm/st33zp24/Kconfig"
Jan Engelhardt7126b752007-07-15 23:39:31 -0700158endif # TCG_TPM