forked from Minki/linux
4c336e4b15
This chip is/was also branded as a Winbond WPCT301. Originally written by Dan Morav <dmorav@nuvoton.com> and posted to LKML: https://lkml.org/lkml/2011/9/7/206 The original posting was not merged, I have taken it as a starting point, forward ported, tested and revised the driver: - Rework interrupt handling to work properly with level triggered interrupts. The old version just locked up. - Synchronize various items with Peter Huewe's Infineon driver: * Add durations/timeouts sysfs calls * Remove I2C device auto-detection * Don't fiddle with chip->release * Call tpm_dev_vendor_release in the probe error path * Use MODULE_DEVICE_TABLE for the I2C ids * Provide OF compatible strings for DT support * Use SIMPLE_DEV_PM_OPS * Use module_i2c_driver - checkpatch cleanups - Testing on ARM Kirkwood with GPIO interrupts, with this device tree: tpm@57 { compatible = "nuvoton,npct501"; reg = <0x57>; interrupt-parent = <&gpio1>; interrupts = <6 IRQ_TYPE_LEVEL_LOW>; }; Signed-off-by: Dan Morav <dmorav@nuvoton.com> [jgg: revised and tested] Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> [phuewe: minor whitespace changes, fixed module name in kconfig] Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
117 lines
4.2 KiB
Plaintext
117 lines
4.2 KiB
Plaintext
#
|
|
# TPM device configuration
|
|
#
|
|
|
|
menuconfig TCG_TPM
|
|
tristate "TPM Hardware Support"
|
|
depends on HAS_IOMEM
|
|
select SECURITYFS
|
|
---help---
|
|
If you have a TPM security chip in your system, which
|
|
implements the Trusted Computing Group's specification,
|
|
say Yes and it will be accessible from within Linux. For
|
|
more information see <http://www.trustedcomputinggroup.org>.
|
|
An implementation of the Trusted Software Stack (TSS), the
|
|
userspace enablement piece of the specification, can be
|
|
obtained at: <http://sourceforge.net/projects/trousers>. To
|
|
compile this driver as a module, choose M here; the module
|
|
will be called tpm. If unsure, say N.
|
|
Notes:
|
|
1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
|
|
and CONFIG_PNPACPI.
|
|
2) Without ACPI enabled, the BIOS event log won't be accessible,
|
|
which is required to validate the PCR 0-7 values.
|
|
|
|
if TCG_TPM
|
|
|
|
config TCG_TIS
|
|
tristate "TPM Interface Specification 1.2 Interface"
|
|
depends on X86
|
|
---help---
|
|
If you have a TPM security chip that is compliant with the
|
|
TCG TIS 1.2 TPM specification say Yes and it will be accessible
|
|
from within Linux. To compile this driver as a module, choose
|
|
M here; the module will be called tpm_tis.
|
|
|
|
config TCG_TIS_I2C_INFINEON
|
|
tristate "TPM Interface Specification 1.2 Interface (I2C - Infineon)"
|
|
depends on I2C
|
|
---help---
|
|
If you have a TPM security chip that is compliant with the
|
|
TCG TIS 1.2 TPM specification and Infineon's I2C Protocol Stack
|
|
Specification 0.20 say Yes and it will be accessible from within
|
|
Linux.
|
|
To compile this driver as a module, choose M here; the module
|
|
will be called tpm_tis_i2c_infineon.
|
|
|
|
config TCG_TIS_I2C_NUVOTON
|
|
tristate "TPM Interface Specification 1.2 Interface (I2C - Nuvoton)"
|
|
depends on I2C
|
|
---help---
|
|
If you have a TPM security chip with an I2C interface from
|
|
Nuvoton Technology Corp. say Yes and it will be accessible
|
|
from within Linux.
|
|
To compile this driver as a module, choose M here; the module
|
|
will be called tpm_i2c_nuvoton.
|
|
|
|
config TCG_NSC
|
|
tristate "National Semiconductor TPM Interface"
|
|
depends on X86
|
|
---help---
|
|
If you have a TPM security chip from National Semiconductor
|
|
say Yes and it will be accessible from within Linux. To
|
|
compile this driver as a module, choose M here; the module
|
|
will be called tpm_nsc.
|
|
|
|
config TCG_ATMEL
|
|
tristate "Atmel TPM Interface"
|
|
depends on PPC64 || HAS_IOPORT
|
|
---help---
|
|
If you have a TPM security chip from Atmel say Yes and it
|
|
will be accessible from within Linux. To compile this driver
|
|
as a module, choose M here; the module will be called tpm_atmel.
|
|
|
|
config TCG_INFINEON
|
|
tristate "Infineon Technologies TPM Interface"
|
|
depends on PNP
|
|
---help---
|
|
If you have a TPM security chip from Infineon Technologies
|
|
(either SLD 9630 TT 1.1 or SLB 9635 TT 1.2) say Yes and it
|
|
will be accessible from within Linux.
|
|
To compile this driver as a module, choose M here; the module
|
|
will be called tpm_infineon.
|
|
Further information on this driver and the supported hardware
|
|
can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/
|
|
|
|
config TCG_IBMVTPM
|
|
tristate "IBM VTPM Interface"
|
|
depends on PPC_PSERIES
|
|
---help---
|
|
If you have IBM virtual TPM (VTPM) support say Yes and it
|
|
will be accessible from within Linux. To compile this driver
|
|
as a module, choose M here; the module will be called tpm_ibmvtpm.
|
|
|
|
config TCG_ST33_I2C
|
|
tristate "STMicroelectronics ST33 I2C TPM"
|
|
depends on I2C
|
|
depends on GPIOLIB
|
|
---help---
|
|
If you have a TPM security chip from STMicroelectronics working with
|
|
an I2C bus say Yes and it will be accessible from within Linux.
|
|
To compile this driver as a module, choose M here; the module will be
|
|
called tpm_stm_st33_i2c.
|
|
|
|
config TCG_XEN
|
|
tristate "XEN TPM Interface"
|
|
depends on TCG_TPM && XEN
|
|
select XEN_XENBUS_FRONTEND
|
|
---help---
|
|
If you want to make TPM support available to a Xen user domain,
|
|
say Yes and it will be accessible from within Linux. See
|
|
the manpages for xl, xl.conf, and docs/misc/vtpm.txt in
|
|
the Xen source repository for more details.
|
|
To compile this driver as a module, choose M here; the module
|
|
will be called xen-tpmfront.
|
|
|
|
endif # TCG_TPM
|