xref: /linux/drivers/char/tpm/Kconfig (revision 4bf4b4ed9de40eb58232a9f576391fdc5e13a7b4)
11da177e4SLinus Torvalds#
21da177e4SLinus Torvalds# TPM device configuration
31da177e4SLinus Torvalds#
41da177e4SLinus Torvalds
57126b75cSJan Engelhardtmenuconfig TCG_TPM
61da177e4SLinus Torvalds	tristate "TPM Hardware Support"
77126b75cSJan Engelhardt	depends on HAS_IOMEM
8da31894eSEric Paris	select SECURITYFS
9*4bf4b4edSArnd Bergmann	select CRYPTO
10c1f92b4bSNayna Jain	select CRYPTO_HASH_INFO
111da177e4SLinus Torvalds	---help---
121da177e4SLinus Torvalds	  If you have a TPM security chip in your system, which
131da177e4SLinus Torvalds	  implements the Trusted Computing Group's specification,
141da177e4SLinus Torvalds	  say Yes and it will be accessible from within Linux.  For
151da177e4SLinus Torvalds	  more information see <http://www.trustedcomputinggroup.org>.
161da177e4SLinus Torvalds	  An implementation of the Trusted Software Stack (TSS), the
171da177e4SLinus Torvalds	  userspace enablement piece of the specification, can be
181da177e4SLinus Torvalds	  obtained at: <http://sourceforge.net/projects/trousers>.  To
191da177e4SLinus Torvalds	  compile this driver as a module, choose M here; the module
201da177e4SLinus Torvalds	  will be called tpm. If unsure, say N.
217f2ab000SRajiv Andrade	  Notes:
227f2ab000SRajiv Andrade	  1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
23ec4a162aSJames Morris	  and CONFIG_PNPACPI.
247f2ab000SRajiv Andrade	  2) Without ACPI enabled, the BIOS event log won't be accessible,
257f2ab000SRajiv Andrade	  which is required to validate the PCR 0-7 values.
261da177e4SLinus Torvalds
277126b75cSJan Engelhardtif TCG_TPM
287126b75cSJan Engelhardt
2941a5e1cfSChristophe Ricardconfig TCG_TIS_CORE
3041a5e1cfSChristophe Ricard	tristate
3141a5e1cfSChristophe Ricard	---help---
3241a5e1cfSChristophe Ricard	TCG TIS TPM core driver. It implements the TPM TCG TIS logic and hooks
3341a5e1cfSChristophe Ricard	into the TPM kernel APIs. Physical layers will register against it.
3441a5e1cfSChristophe Ricard
3527084efeSLeendert van Doornconfig TCG_TIS
3644506436SPeter Huewe	tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface"
37420d4398SJason Gunthorpe	depends on X86 || OF
3841a5e1cfSChristophe Ricard	select TCG_TIS_CORE
3927084efeSLeendert van Doorn	---help---
4027084efeSLeendert van Doorn	  If you have a TPM security chip that is compliant with the
4144506436SPeter Huewe	  TCG TIS 1.2 TPM specification (TPM1.2) or the TCG PTP FIFO
4244506436SPeter Huewe	  specification (TPM2.0) say Yes and it will be accessible from
4344506436SPeter Huewe	  within Linux. To compile this driver as a module, choose  M here;
4444506436SPeter Huewe	  the module will be called tpm_tis.
4527084efeSLeendert van Doorn
460edbfea5SChristophe Ricardconfig TCG_TIS_SPI
470edbfea5SChristophe Ricard	tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (SPI)"
480edbfea5SChristophe Ricard	depends on SPI
490edbfea5SChristophe Ricard	select TCG_TIS_CORE
500edbfea5SChristophe Ricard	---help---
510edbfea5SChristophe Ricard	  If you have a TPM security chip which is connected to a regular,
520edbfea5SChristophe Ricard	  non-tcg SPI master (i.e. most embedded platforms) that is compliant with the
530edbfea5SChristophe Ricard	  TCG TIS 1.3 TPM specification (TPM1.2) or the TCG PTP FIFO
540edbfea5SChristophe Ricard	  specification (TPM2.0) say Yes and it will be accessible from
550edbfea5SChristophe Ricard	  within Linux. To compile this driver as a module, choose  M here;
560edbfea5SChristophe Ricard	  the module will be called tpm_tis_spi.
570edbfea5SChristophe Ricard
58a2871c62SJason Gunthorpeconfig TCG_TIS_I2C_ATMEL
59a2871c62SJason Gunthorpe	tristate "TPM Interface Specification 1.2 Interface (I2C - Atmel)"
60a2871c62SJason Gunthorpe	depends on I2C
61a2871c62SJason Gunthorpe	---help---
62a2871c62SJason Gunthorpe	  If you have an Atmel I2C TPM security chip say Yes and it will be
63a2871c62SJason Gunthorpe	  accessible from within Linux.
64a2871c62SJason Gunthorpe	  To compile this driver as a module, choose M here; the module will
65a2871c62SJason Gunthorpe	  be called tpm_tis_i2c_atmel.
66a2871c62SJason Gunthorpe
67aad628c1SPeter Hueweconfig TCG_TIS_I2C_INFINEON
68aad628c1SPeter Huewe	tristate "TPM Interface Specification 1.2 Interface (I2C - Infineon)"
69aad628c1SPeter Huewe	depends on I2C
70aad628c1SPeter Huewe	---help---
71aad628c1SPeter Huewe	  If you have a TPM security chip that is compliant with the
72aad628c1SPeter Huewe	  TCG TIS 1.2 TPM specification and Infineon's I2C Protocol Stack
73aad628c1SPeter Huewe	  Specification 0.20 say Yes and it will be accessible from within
74aad628c1SPeter Huewe	  Linux.
75aad628c1SPeter Huewe	  To compile this driver as a module, choose M here; the module
76b3f2436aSPeter Huewe	  will be called tpm_i2c_infineon.
77aad628c1SPeter Huewe
784c336e4bSJason Gunthorpeconfig TCG_TIS_I2C_NUVOTON
794c336e4bSJason Gunthorpe	tristate "TPM Interface Specification 1.2 Interface (I2C - Nuvoton)"
804c336e4bSJason Gunthorpe	depends on I2C
814c336e4bSJason Gunthorpe	---help---
824c336e4bSJason Gunthorpe	  If you have a TPM security chip with an I2C interface from
834c336e4bSJason Gunthorpe	  Nuvoton Technology Corp. say Yes and it will be accessible
844c336e4bSJason Gunthorpe	  from within Linux.
854c336e4bSJason Gunthorpe	  To compile this driver as a module, choose M here; the module
864c336e4bSJason Gunthorpe	  will be called tpm_i2c_nuvoton.
874c336e4bSJason Gunthorpe
881da177e4SLinus Torvaldsconfig TCG_NSC
891da177e4SLinus Torvalds	tristate "National Semiconductor TPM Interface"
902f592f2aSRajiv Andrade	depends on X86
911da177e4SLinus Torvalds	---help---
923dde6ad8SDavid Sterba	  If you have a TPM security chip from National Semiconductor
931da177e4SLinus Torvalds	  say Yes and it will be accessible from within Linux.  To
941da177e4SLinus Torvalds	  compile this driver as a module, choose M here; the module
951da177e4SLinus Torvalds	  will be called tpm_nsc.
961da177e4SLinus Torvalds
971da177e4SLinus Torvaldsconfig TCG_ATMEL
981da177e4SLinus Torvalds	tristate "Atmel TPM Interface"
99ce816fa8SUwe Kleine-König	depends on PPC64 || HAS_IOPORT_MAP
1001da177e4SLinus Torvalds	---help---
1011da177e4SLinus Torvalds	  If you have a TPM security chip from Atmel say Yes and it
1021da177e4SLinus Torvalds	  will be accessible from within Linux.  To compile this driver
1031da177e4SLinus Torvalds	  as a module, choose M here; the module will be called tpm_atmel.
1041da177e4SLinus Torvalds
105ebb81fdbSMarcel Selhorstconfig TCG_INFINEON
106f9abb020SMarcel Selhorst	tristate "Infineon Technologies TPM Interface"
107cedb27deSBjorn Helgaas	depends on PNP
108ebb81fdbSMarcel Selhorst	---help---
109ebb81fdbSMarcel Selhorst	  If you have a TPM security chip from Infineon Technologies
110f9abb020SMarcel Selhorst	  (either SLD 9630 TT 1.1 or SLB 9635 TT 1.2) say Yes and it
111f9abb020SMarcel Selhorst	  will be accessible from within Linux.
112f9abb020SMarcel Selhorst	  To compile this driver as a module, choose M here; the module
113ebb81fdbSMarcel Selhorst	  will be called tpm_infineon.
114ebb81fdbSMarcel Selhorst	  Further information on this driver and the supported hardware
115631dd1a8SJustin P. Mattock	  can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/
116ebb81fdbSMarcel Selhorst
117132f7629SAshley Laiconfig TCG_IBMVTPM
118132f7629SAshley Lai	tristate "IBM VTPM Interface"
1195b266032SKent Yoder	depends on PPC_PSERIES
120132f7629SAshley Lai	---help---
121132f7629SAshley Lai	  If you have IBM virtual TPM (VTPM) support say Yes and it
122132f7629SAshley Lai	  will be accessible from within Linux.  To compile this driver
123132f7629SAshley Lai	  as a module, choose M here; the module will be called tpm_ibmvtpm.
124132f7629SAshley Lai
125e2683957SDaniel De Graafconfig TCG_XEN
126e2683957SDaniel De Graaf	tristate "XEN TPM Interface"
127e2683957SDaniel De Graaf	depends on TCG_TPM && XEN
128713efcabSKonrad Rzeszutek Wilk	select XEN_XENBUS_FRONTEND
129e2683957SDaniel De Graaf	---help---
130e2683957SDaniel De Graaf	  If you want to make TPM support available to a Xen user domain,
131e2683957SDaniel De Graaf	  say Yes and it will be accessible from within Linux. See
132e2683957SDaniel De Graaf	  the manpages for xl, xl.conf, and docs/misc/vtpm.txt in
133e2683957SDaniel De Graaf	  the Xen source repository for more details.
134e2683957SDaniel De Graaf	  To compile this driver as a module, choose M here; the module
135e2683957SDaniel De Graaf	  will be called xen-tpmfront.
136e2683957SDaniel De Graaf
13730fc8d13SJarkko Sakkinenconfig TCG_CRB
13830fc8d13SJarkko Sakkinen	tristate "TPM 2.0 CRB Interface"
13930fc8d13SJarkko Sakkinen	depends on X86 && ACPI
14030fc8d13SJarkko Sakkinen	---help---
14130fc8d13SJarkko Sakkinen	  If you have a TPM security chip that is compliant with the
14230fc8d13SJarkko Sakkinen	  TCG CRB 2.0 TPM specification say Yes and it will be accessible
14330fc8d13SJarkko Sakkinen	  from within Linux.  To compile this driver as a module, choose
14430fc8d13SJarkko Sakkinen	  M here; the module will be called tpm_crb.
14530fc8d13SJarkko Sakkinen
1466f99612eSStefan Bergerconfig TCG_VTPM_PROXY
1476f99612eSStefan Berger	tristate "VTPM Proxy Interface"
1486f99612eSStefan Berger	depends on TCG_TPM
149a6885a53SArnd Bergmann	select ANON_INODES
1506f99612eSStefan Berger	---help---
1516f99612eSStefan Berger	  This driver proxies for an emulated TPM (vTPM) running in userspace.
1526f99612eSStefan Berger	  A device /dev/vtpmx is provided that creates a device pair
1536f99612eSStefan Berger	  /dev/vtpmX and a server-side file descriptor on which the vTPM
1546f99612eSStefan Berger	  can receive commands.
1556f99612eSStefan Berger
1566f99612eSStefan Berger
157bf38b871SChristophe Ricardsource "drivers/char/tpm/st33zp24/Kconfig"
1587126b75cSJan Engelhardtendif # TCG_TPM
159