Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | # |
| 2 | # TPM device configuration |
| 3 | # |
| 4 | |
Jan Engelhardt | 7126b75 | 2007-07-15 23:39:31 -0700 | [diff] [blame] | 5 | menuconfig TCG_TPM |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 6 | tristate "TPM Hardware Support" |
Jan Engelhardt | 7126b75 | 2007-07-15 23:39:31 -0700 | [diff] [blame] | 7 | depends on HAS_IOMEM |
Eric Paris | da31894 | 2008-08-22 11:35:57 -0400 | [diff] [blame] | 8 | select SECURITYFS |
Arnd Bergmann | 4bf4b4e | 2017-02-28 22:12:55 +0100 | [diff] [blame] | 9 | select CRYPTO |
Nayna Jain | c1f92b4 | 2017-01-30 04:59:41 -0500 | [diff] [blame] | 10 | select CRYPTO_HASH_INFO |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 11 | ---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 Andrade | 7f2ab00 | 2010-05-13 17:37:54 -0300 | [diff] [blame] | 21 | Notes: |
| 22 | 1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI |
James Morris | ec4a162 | 2010-05-07 09:19:29 +1000 | [diff] [blame] | 23 | and CONFIG_PNPACPI. |
Rajiv Andrade | 7f2ab00 | 2010-05-13 17:37:54 -0300 | [diff] [blame] | 24 | 2) Without ACPI enabled, the BIOS event log won't be accessible, |
| 25 | which is required to validate the PCR 0-7 values. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 26 | |
Jan Engelhardt | 7126b75 | 2007-07-15 23:39:31 -0700 | [diff] [blame] | 27 | if TCG_TPM |
| 28 | |
Christophe Ricard | 41a5e1c | 2016-05-19 00:35:52 +0200 | [diff] [blame] | 29 | config 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 Doorn | 27084ef | 2006-04-22 02:38:03 -0700 | [diff] [blame] | 35 | config TCG_TIS |
Peter Huewe | 4450643 | 2015-03-15 00:54:43 +0100 | [diff] [blame] | 36 | tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface" |
Jason Gunthorpe | 420d439 | 2016-11-07 15:44:31 -0700 | [diff] [blame] | 37 | depends on X86 || OF |
Christophe Ricard | 41a5e1c | 2016-05-19 00:35:52 +0200 | [diff] [blame] | 38 | select TCG_TIS_CORE |
Leendert van Doorn | 27084ef | 2006-04-22 02:38:03 -0700 | [diff] [blame] | 39 | ---help--- |
| 40 | If you have a TPM security chip that is compliant with the |
Peter Huewe | 4450643 | 2015-03-15 00:54:43 +0100 | [diff] [blame] | 41 | 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 Doorn | 27084ef | 2006-04-22 02:38:03 -0700 | [diff] [blame] | 45 | |
Christophe Ricard | 0edbfea | 2016-05-19 00:35:53 +0200 | [diff] [blame] | 46 | config 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 Gunthorpe | a2871c6 | 2013-10-06 12:43:36 -0600 | [diff] [blame] | 58 | config 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 Huewe | aad628c | 2012-08-07 11:42:32 +0200 | [diff] [blame] | 67 | config 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 Huewe | b3f2436 | 2013-10-22 01:12:15 +0200 | [diff] [blame] | 76 | will be called tpm_i2c_infineon. |
Peter Huewe | aad628c | 2012-08-07 11:42:32 +0200 | [diff] [blame] | 77 | |
Jason Gunthorpe | 4c336e4 | 2013-10-06 12:43:13 -0600 | [diff] [blame] | 78 | config 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 Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 88 | config TCG_NSC |
| 89 | tristate "National Semiconductor TPM Interface" |
Rajiv Andrade | 2f592f2 | 2011-11-01 09:42:58 -0200 | [diff] [blame] | 90 | depends on X86 |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 91 | ---help--- |
David Sterba | 3dde6ad | 2007-05-09 07:12:20 +0200 | [diff] [blame] | 92 | If you have a TPM security chip from National Semiconductor |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 93 | 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 | |
| 97 | config TCG_ATMEL |
| 98 | tristate "Atmel TPM Interface" |
Uwe Kleine-König | ce816fa | 2014-04-07 15:39:19 -0700 | [diff] [blame] | 99 | depends on PPC64 || HAS_IOPORT_MAP |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 100 | ---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 Selhorst | ebb81fd | 2005-07-27 11:45:12 -0700 | [diff] [blame] | 105 | config TCG_INFINEON |
Marcel Selhorst | f9abb02 | 2005-08-05 11:59:33 -0700 | [diff] [blame] | 106 | tristate "Infineon Technologies TPM Interface" |
Bjorn Helgaas | cedb27d | 2008-04-29 01:03:25 -0700 | [diff] [blame] | 107 | depends on PNP |
Marcel Selhorst | ebb81fd | 2005-07-27 11:45:12 -0700 | [diff] [blame] | 108 | ---help--- |
| 109 | If you have a TPM security chip from Infineon Technologies |
Marcel Selhorst | f9abb02 | 2005-08-05 11:59:33 -0700 | [diff] [blame] | 110 | (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 Selhorst | ebb81fd | 2005-07-27 11:45:12 -0700 | [diff] [blame] | 113 | will be called tpm_infineon. |
| 114 | Further information on this driver and the supported hardware |
Justin P. Mattock | 631dd1a | 2010-10-18 11:03:14 +0200 | [diff] [blame] | 115 | can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/ |
Marcel Selhorst | ebb81fd | 2005-07-27 11:45:12 -0700 | [diff] [blame] | 116 | |
Ashley Lai | 132f762 | 2012-08-22 16:17:43 -0500 | [diff] [blame] | 117 | config TCG_IBMVTPM |
| 118 | tristate "IBM VTPM Interface" |
Kent Yoder | 5b26603 | 2013-02-11 14:36:44 -0500 | [diff] [blame] | 119 | depends on PPC_PSERIES |
Ashley Lai | 132f762 | 2012-08-22 16:17:43 -0500 | [diff] [blame] | 120 | ---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 Graaf | e268395 | 2013-07-30 13:29:47 -0400 | [diff] [blame] | 125 | config TCG_XEN |
| 126 | tristate "XEN TPM Interface" |
| 127 | depends on TCG_TPM && XEN |
Konrad Rzeszutek Wilk | 713efca | 2013-08-30 09:02:27 -0400 | [diff] [blame] | 128 | select XEN_XENBUS_FRONTEND |
Daniel De Graaf | e268395 | 2013-07-30 13:29:47 -0400 | [diff] [blame] | 129 | ---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 Sakkinen | 30fc8d1 | 2014-12-12 11:46:39 -0800 | [diff] [blame] | 137 | config TCG_CRB |
| 138 | tristate "TPM 2.0 CRB Interface" |
Jiandi An | 08eff49 | 2017-03-24 04:55:45 -0500 | [diff] [blame] | 139 | depends on ACPI |
Jarkko Sakkinen | 30fc8d1 | 2014-12-12 11:46:39 -0800 | [diff] [blame] | 140 | ---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 Berger | 6f99612 | 2016-04-18 13:26:15 -0400 | [diff] [blame] | 146 | config TCG_VTPM_PROXY |
| 147 | tristate "VTPM Proxy Interface" |
| 148 | depends on TCG_TPM |
Arnd Bergmann | a6885a5 | 2016-04-28 12:46:13 +0200 | [diff] [blame] | 149 | select ANON_INODES |
Stefan Berger | 6f99612 | 2016-04-18 13:26:15 -0400 | [diff] [blame] | 150 | ---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 Ricard | bf38b87 | 2015-03-08 11:17:14 +0100 | [diff] [blame] | 157 | source "drivers/char/tpm/st33zp24/Kconfig" |
Jan Engelhardt | 7126b75 | 2007-07-15 23:39:31 -0700 | [diff] [blame] | 158 | endif # TCG_TPM |