1#
2# TPM device configuration
3#
4
5menuconfig TCG_TPM
6	tristate "TPM Hardware Support"
7	depends on HAS_IOMEM
8	select SECURITYFS
9	select CRYPTO
10	select CRYPTO_HASH_INFO
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.
21	  Notes:
22	  1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
23	  and CONFIG_PNPACPI.
24	  2) Without ACPI enabled, the BIOS event log won't be accessible,
25	  which is required to validate the PCR 0-7 values.
26
27if TCG_TPM
28
29config HW_RANDOM_TPM
30	bool "TPM HW Random Number Generator support"
31	depends on TCG_TPM && HW_RANDOM && !(TCG_TPM=y && HW_RANDOM=m)
32	default y
33	---help---
34	  This setting exposes the TPM's Random Number Generator as a hwrng
35	  device. This allows the kernel to collect randomness from the TPM at
36	  boot, and provides the TPM randomines in /dev/hwrng.
37
38	  If unsure, say Y.
39
40config TCG_TIS_CORE
41	tristate
42	---help---
43	TCG TIS TPM core driver. It implements the TPM TCG TIS logic and hooks
44	into the TPM kernel APIs. Physical layers will register against it.
45
46config TCG_TIS
47	tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface"
48	depends on X86 || OF
49	select TCG_TIS_CORE
50	---help---
51	  If you have a TPM security chip that is compliant with the
52	  TCG TIS 1.2 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.
56
57config TCG_TIS_SPI
58	tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (SPI)"
59	depends on SPI
60	select TCG_TIS_CORE
61	---help---
62	  If you have a TPM security chip which is connected to a regular,
63	  non-tcg SPI master (i.e. most embedded platforms) that is compliant with the
64	  TCG TIS 1.3 TPM specification (TPM1.2) or the TCG PTP FIFO
65	  specification (TPM2.0) say Yes and it will be accessible from
66	  within Linux. To compile this driver as a module, choose  M here;
67	  the module will be called tpm_tis_spi.
68
69config TCG_TIS_I2C_ATMEL
70	tristate "TPM Interface Specification 1.2 Interface (I2C - Atmel)"
71	depends on I2C
72	---help---
73	  If you have an Atmel I2C TPM security chip say Yes and it will be
74	  accessible from within Linux.
75	  To compile this driver as a module, choose M here; the module will
76	  be called tpm_tis_i2c_atmel.
77
78config TCG_TIS_I2C_INFINEON
79	tristate "TPM Interface Specification 1.2 Interface (I2C - Infineon)"
80	depends on I2C
81	---help---
82	  If you have a TPM security chip that is compliant with the
83	  TCG TIS 1.2 TPM specification and Infineon's I2C Protocol Stack
84	  Specification 0.20 say Yes and it will be accessible from within
85	  Linux.
86	  To compile this driver as a module, choose M here; the module
87	  will be called tpm_i2c_infineon.
88
89config TCG_TIS_I2C_NUVOTON
90	tristate "TPM Interface Specification 1.2 Interface (I2C - Nuvoton)"
91	depends on I2C
92	---help---
93	  If you have a TPM security chip with an I2C interface from
94	  Nuvoton Technology Corp. say Yes and it will be accessible
95	  from within Linux.
96	  To compile this driver as a module, choose M here; the module
97	  will be called tpm_i2c_nuvoton.
98
99config TCG_NSC
100	tristate "National Semiconductor TPM Interface"
101	depends on X86
102	---help---
103	  If you have a TPM security chip from National Semiconductor
104	  say Yes and it will be accessible from within Linux.  To
105	  compile this driver as a module, choose M here; the module
106	  will be called tpm_nsc.
107
108config TCG_ATMEL
109	tristate "Atmel TPM Interface"
110	depends on PPC64 || HAS_IOPORT_MAP
111	---help---
112	  If you have a TPM security chip from Atmel say Yes and it
113	  will be accessible from within Linux.  To compile this driver
114	  as a module, choose M here; the module will be called tpm_atmel.
115
116config TCG_INFINEON
117	tristate "Infineon Technologies TPM Interface"
118	depends on PNP
119	---help---
120	  If you have a TPM security chip from Infineon Technologies
121	  (either SLD 9630 TT 1.1 or SLB 9635 TT 1.2) say Yes and it
122	  will be accessible from within Linux.
123	  To compile this driver as a module, choose M here; the module
124	  will be called tpm_infineon.
125	  Further information on this driver and the supported hardware
126	  can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/
127
128config TCG_IBMVTPM
129	tristate "IBM VTPM Interface"
130	depends on PPC_PSERIES
131	---help---
132	  If you have IBM virtual TPM (VTPM) support say Yes and it
133	  will be accessible from within Linux.  To compile this driver
134	  as a module, choose M here; the module will be called tpm_ibmvtpm.
135
136config TCG_XEN
137	tristate "XEN TPM Interface"
138	depends on TCG_TPM && XEN
139	select XEN_XENBUS_FRONTEND
140	---help---
141	  If you want to make TPM support available to a Xen user domain,
142	  say Yes and it will be accessible from within Linux. See
143	  the manpages for xl, xl.conf, and docs/misc/vtpm.txt in
144	  the Xen source repository for more details.
145	  To compile this driver as a module, choose M here; the module
146	  will be called xen-tpmfront.
147
148config TCG_CRB
149	tristate "TPM 2.0 CRB Interface"
150	depends on ACPI
151	---help---
152	  If you have a TPM security chip that is compliant with the
153	  TCG CRB 2.0 TPM specification say Yes and it will be accessible
154	  from within Linux.  To compile this driver as a module, choose
155	  M here; the module will be called tpm_crb.
156
157config TCG_VTPM_PROXY
158	tristate "VTPM Proxy Interface"
159	depends on TCG_TPM
160	select ANON_INODES
161	---help---
162	  This driver proxies for an emulated TPM (vTPM) running in userspace.
163	  A device /dev/vtpmx is provided that creates a device pair
164	  /dev/vtpmX and a server-side file descriptor on which the vTPM
165	  can receive commands.
166
167
168source "drivers/char/tpm/st33zp24/Kconfig"
169endif # TCG_TPM
170