blob: af985cca413cbfef089f88aea1767c3e26bb18e1 [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
Nayna Jainc1f92b42017-01-30 04:59:41 -05009 select CRYPTO_HASH_INFO
Linus Torvalds1da177e2005-04-16 15:20:36 -070010 ---help---
11 If you have a TPM security chip in your system, which
12 implements the Trusted Computing Group's specification,
13 say Yes and it will be accessible from within Linux. For
14 more information see <http://www.trustedcomputinggroup.org>.
15 An implementation of the Trusted Software Stack (TSS), the
16 userspace enablement piece of the specification, can be
17 obtained at: <http://sourceforge.net/projects/trousers>. To
18 compile this driver as a module, choose M here; the module
19 will be called tpm. If unsure, say N.
Rajiv Andrade7f2ab002010-05-13 17:37:54 -030020 Notes:
21 1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
James Morrisec4a1622010-05-07 09:19:29 +100022 and CONFIG_PNPACPI.
Rajiv Andrade7f2ab002010-05-13 17:37:54 -030023 2) Without ACPI enabled, the BIOS event log won't be accessible,
24 which is required to validate the PCR 0-7 values.
Linus Torvalds1da177e2005-04-16 15:20:36 -070025
Jan Engelhardt7126b752007-07-15 23:39:31 -070026if TCG_TPM
27
Christophe Ricard41a5e1c2016-05-19 00:35:52 +020028config TCG_TIS_CORE
29 tristate
30 ---help---
31 TCG TIS TPM core driver. It implements the TPM TCG TIS logic and hooks
32 into the TPM kernel APIs. Physical layers will register against it.
33
Leendert van Doorn27084ef2006-04-22 02:38:03 -070034config TCG_TIS
Peter Huewe44506432015-03-15 00:54:43 +010035 tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface"
Jason Gunthorpe420d4392016-11-07 15:44:31 -070036 depends on X86 || OF
Christophe Ricard41a5e1c2016-05-19 00:35:52 +020037 select TCG_TIS_CORE
Leendert van Doorn27084ef2006-04-22 02:38:03 -070038 ---help---
39 If you have a TPM security chip that is compliant with the
Peter Huewe44506432015-03-15 00:54:43 +010040 TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO
41 specification (TPM2.0) say Yes and it will be accessible from
42 within Linux. To compile this driver as a module, choose M here;
43 the module will be called tpm_tis.
Leendert van Doorn27084ef2006-04-22 02:38:03 -070044
Christophe Ricard0edbfea2016-05-19 00:35:53 +020045config TCG_TIS_SPI
46 tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (SPI)"
47 depends on SPI
48 select TCG_TIS_CORE
49 ---help---
50 If you have a TPM security chip which is connected to a regular,
51 non-tcg SPI master (i.e. most embedded platforms) that is compliant with the
52 TCG TIS 1.3 TPM specification (TPM1.2) or the TCG PTP FIFO
53 specification (TPM2.0) say Yes and it will be accessible from
54 within Linux. To compile this driver as a module, choose M here;
55 the module will be called tpm_tis_spi.
56
Jason Gunthorpea2871c62013-10-06 12:43:36 -060057config TCG_TIS_I2C_ATMEL
58 tristate "TPM Interface Specification 1.2 Interface (I2C - Atmel)"
59 depends on I2C
60 ---help---
61 If you have an Atmel I2C TPM security chip say Yes and it will be
62 accessible from within Linux.
63 To compile this driver as a module, choose M here; the module will
64 be called tpm_tis_i2c_atmel.
65
Peter Hueweaad628c2012-08-07 11:42:32 +020066config TCG_TIS_I2C_INFINEON
67 tristate "TPM Interface Specification 1.2 Interface (I2C - Infineon)"
68 depends on I2C
69 ---help---
70 If you have a TPM security chip that is compliant with the
71 TCG TIS 1.2 TPM specification and Infineon's I2C Protocol Stack
72 Specification 0.20 say Yes and it will be accessible from within
73 Linux.
74 To compile this driver as a module, choose M here; the module
Peter Hueweb3f24362013-10-22 01:12:15 +020075 will be called tpm_i2c_infineon.
Peter Hueweaad628c2012-08-07 11:42:32 +020076
Jason Gunthorpe4c336e42013-10-06 12:43:13 -060077config TCG_TIS_I2C_NUVOTON
78 tristate "TPM Interface Specification 1.2 Interface (I2C - Nuvoton)"
79 depends on I2C
80 ---help---
81 If you have a TPM security chip with an I2C interface from
82 Nuvoton Technology Corp. say Yes and it will be accessible
83 from within Linux.
84 To compile this driver as a module, choose M here; the module
85 will be called tpm_i2c_nuvoton.
86
Linus Torvalds1da177e2005-04-16 15:20:36 -070087config TCG_NSC
88 tristate "National Semiconductor TPM Interface"
Rajiv Andrade2f592f22011-11-01 09:42:58 -020089 depends on X86
Linus Torvalds1da177e2005-04-16 15:20:36 -070090 ---help---
David Sterba3dde6ad2007-05-09 07:12:20 +020091 If you have a TPM security chip from National Semiconductor
Linus Torvalds1da177e2005-04-16 15:20:36 -070092 say Yes and it will be accessible from within Linux. To
93 compile this driver as a module, choose M here; the module
94 will be called tpm_nsc.
95
96config TCG_ATMEL
97 tristate "Atmel TPM Interface"
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -070098 depends on PPC64 || HAS_IOPORT_MAP
Linus Torvalds1da177e2005-04-16 15:20:36 -070099 ---help---
100 If you have a TPM security chip from Atmel say Yes and it
101 will be accessible from within Linux. To compile this driver
102 as a module, choose M here; the module will be called tpm_atmel.
103
Marcel Selhorstebb81fd2005-07-27 11:45:12 -0700104config TCG_INFINEON
Marcel Selhorstf9abb022005-08-05 11:59:33 -0700105 tristate "Infineon Technologies TPM Interface"
Bjorn Helgaascedb27d2008-04-29 01:03:25 -0700106 depends on PNP
Marcel Selhorstebb81fd2005-07-27 11:45:12 -0700107 ---help---
108 If you have a TPM security chip from Infineon Technologies
Marcel Selhorstf9abb022005-08-05 11:59:33 -0700109 (either SLD 9630 TT 1.1 or SLB 9635 TT 1.2) say Yes and it
110 will be accessible from within Linux.
111 To compile this driver as a module, choose M here; the module
Marcel Selhorstebb81fd2005-07-27 11:45:12 -0700112 will be called tpm_infineon.
113 Further information on this driver and the supported hardware
Justin P. Mattock631dd1a2010-10-18 11:03:14 +0200114 can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/
Marcel Selhorstebb81fd2005-07-27 11:45:12 -0700115
Ashley Lai132f7622012-08-22 16:17:43 -0500116config TCG_IBMVTPM
117 tristate "IBM VTPM Interface"
Kent Yoder5b266032013-02-11 14:36:44 -0500118 depends on PPC_PSERIES
Ashley Lai132f7622012-08-22 16:17:43 -0500119 ---help---
120 If you have IBM virtual TPM (VTPM) support say Yes and it
121 will be accessible from within Linux. To compile this driver
122 as a module, choose M here; the module will be called tpm_ibmvtpm.
123
Daniel De Graafe2683952013-07-30 13:29:47 -0400124config TCG_XEN
125 tristate "XEN TPM Interface"
126 depends on TCG_TPM && XEN
Konrad Rzeszutek Wilk713efca2013-08-30 09:02:27 -0400127 select XEN_XENBUS_FRONTEND
Daniel De Graafe2683952013-07-30 13:29:47 -0400128 ---help---
129 If you want to make TPM support available to a Xen user domain,
130 say Yes and it will be accessible from within Linux. See
131 the manpages for xl, xl.conf, and docs/misc/vtpm.txt in
132 the Xen source repository for more details.
133 To compile this driver as a module, choose M here; the module
134 will be called xen-tpmfront.
135
Jarkko Sakkinen30fc8d12014-12-12 11:46:39 -0800136config TCG_CRB
137 tristate "TPM 2.0 CRB Interface"
138 depends on X86 && ACPI
139 ---help---
140 If you have a TPM security chip that is compliant with the
141 TCG CRB 2.0 TPM specification say Yes and it will be accessible
142 from within Linux. To compile this driver as a module, choose
143 M here; the module will be called tpm_crb.
144
Stefan Berger6f996122016-04-18 13:26:15 -0400145config TCG_VTPM_PROXY
146 tristate "VTPM Proxy Interface"
147 depends on TCG_TPM
Arnd Bergmanna6885a52016-04-28 12:46:13 +0200148 select ANON_INODES
Stefan Berger6f996122016-04-18 13:26:15 -0400149 ---help---
150 This driver proxies for an emulated TPM (vTPM) running in userspace.
151 A device /dev/vtpmx is provided that creates a device pair
152 /dev/vtpmX and a server-side file descriptor on which the vTPM
153 can receive commands.
154
155
Christophe Ricardbf38b872015-03-08 11:17:14 +0100156source "drivers/char/tpm/st33zp24/Kconfig"
Jan Engelhardt7126b752007-07-15 23:39:31 -0700157endif # TCG_TPM