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