linux/drivers/char/tpm
Stefan Berger 6f99612e25 tpm: Proxy driver for supporting multiple emulated TPMs
This patch implements a proxy driver for supporting multiple emulated TPMs
in a system.

The driver implements a device /dev/vtpmx that is used to created
a client device pair /dev/tpmX (e.g., /dev/tpm10) and a server side that
is accessed using a file descriptor returned by an ioctl.
The device /dev/tpmX is the usual TPM device created by the core TPM
driver. Applications or kernel subsystems can send TPM commands to it
and the corresponding server-side file descriptor receives these
commands and delivers them to an emulated TPM.

The driver retrievs the TPM 1.2 durations and timeouts. Since this requires
the startup of the TPM, we send a startup for TPM 1.2 as well as TPM 2.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>

CC: linux-kernel@vger.kernel.org
CC: linux-doc@vger.kernel.org
CC: linux-api@vger.kernel.org
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
2016-06-25 17:26:35 +03:00
..
st33zp24 tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
Kconfig tpm: Proxy driver for supporting multiple emulated TPMs 2016-06-25 17:26:35 +03:00
Makefile tpm: Proxy driver for supporting multiple emulated TPMs 2016-06-25 17:26:35 +03:00
tpm-chip.c tpm: Introduce TPM_CHIP_FLAG_VIRTUAL 2016-06-25 17:26:35 +03:00
tpm-dev.c tpm: Provide strong locking for device removal 2016-06-25 17:26:35 +03:00
tpm-interface.c tpm: Remove all uses of drvdata from the TPM Core 2016-06-25 17:26:35 +03:00
tpm-sysfs.c tpm: Remove all uses of drvdata from the TPM Core 2016-06-25 17:26:35 +03:00
tpm.h tpm: Introduce TPM_CHIP_FLAG_VIRTUAL 2016-06-25 17:26:35 +03:00
tpm2-cmd.c tpm: Move tpm_vendor_specific data related with PTP specification to tpm_chip 2016-06-25 17:26:35 +03:00
tpm_acpi.c ACPI: Clean up acpi_os_map/unmap_memory() to eliminate __iomem. 2014-05-27 18:13:08 +02:00
tpm_atmel.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_atmel.h tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_crb.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_eventlog.c tpm: Get rid of devname 2016-06-25 17:26:35 +03:00
tpm_eventlog.h tpm: fix tpm_bios_log_setup stub prototype 2016-06-25 17:26:35 +03:00
tpm_i2c_atmel.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_i2c_infineon.c tpm: Move tpm_vendor_specific data related with PTP specification to tpm_chip 2016-06-25 17:26:35 +03:00
tpm_i2c_nuvoton.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_ibmvtpm.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_ibmvtpm.h tpm_ibmvtpm: properly handle interrupted packet receptions 2015-12-20 15:27:12 +02:00
tpm_infineon.c tpm: Get rid of chip->pdev 2016-06-25 17:26:35 +03:00
tpm_nsc.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_of.c TPM: Avoid reference to potentially freed memory 2015-11-09 17:52:55 +02:00
tpm_ppi.c tpm: move the PPI attributes to character device directory. 2015-10-19 01:01:20 +02:00
tpm_tis.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_vtpm_proxy.c tpm: Proxy driver for supporting multiple emulated TPMs 2016-06-25 17:26:35 +03:00
xen-tpmfront.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00