Merge tag 'at91-5.2-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux...
[linux-2.6-microblaze.git] / drivers / char / tpm / Kconfig
1 #
2 # TPM device configuration
3 #
4
5 menuconfig TCG_TPM
6         tristate "TPM Hardware Support"
7         depends on HAS_IOMEM
8         imply 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
27 if TCG_TPM
28
29 config 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
40 config 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
46 config 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
57 config 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
69 config 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
78 config 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
89 config 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
99 config 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
108 config 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
116 config 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
128 config 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
136 config 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
148 config 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
157 config TCG_VTPM_PROXY
158         tristate "VTPM Proxy Interface"
159         depends on TCG_TPM
160         ---help---
161           This driver proxies for an emulated TPM (vTPM) running in userspace.
162           A device /dev/vtpmx is provided that creates a device pair
163           /dev/vtpmX and a server-side file descriptor on which the vTPM
164           can receive commands.
165
166
167 source "drivers/char/tpm/st33zp24/Kconfig"
168 endif # TCG_TPM