Skip to content

Commit 132f762

Browse files
Ashley LaiKent Yoder
authored andcommitted
drivers/char/tpm: Add new device driver to support IBM vTPM
This patch adds a new device driver to support IBM virtual TPM (vTPM) for PPC64. IBM vTPM is supported through the adjunct partition with firmware release 740 or higher. With vTPM support, each lpar is able to have its own vTPM without the physical TPM hardware. This driver provides TPM functionalities by communicating with the vTPM adjunct partition through Hypervisor calls (Hcalls) and Command/Response Queue (CRQ) commands. Signed-off-by: Ashley Lai <[email protected]> Signed-off-by: Kent Yoder <[email protected]>
1 parent 7e72fe7 commit 132f762

File tree

5 files changed

+836
-0
lines changed

5 files changed

+836
-0
lines changed

drivers/char/tpm/Kconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,12 @@ config TCG_INFINEON
7373
Further information on this driver and the supported hardware
7474
can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-tpm/
7575

76+
config TCG_IBMVTPM
77+
tristate "IBM VTPM Interface"
78+
depends on PPC64
79+
---help---
80+
If you have IBM virtual TPM (VTPM) support say Yes and it
81+
will be accessible from within Linux. To compile this driver
82+
as a module, choose M here; the module will be called tpm_ibmvtpm.
83+
7684
endif # TCG_TPM

drivers/char/tpm/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ obj-$(CONFIG_TCG_TIS_I2C_INFINEON) += tpm_i2c_infineon.o
1111
obj-$(CONFIG_TCG_NSC) += tpm_nsc.o
1212
obj-$(CONFIG_TCG_ATMEL) += tpm_atmel.o
1313
obj-$(CONFIG_TCG_INFINEON) += tpm_infineon.o
14+
obj-$(CONFIG_TCG_IBMVTPM) += tpm_ibmvtpm.o

drivers/char/tpm/tpm.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ struct tpm_vendor_specific {
100100
bool timeout_adjusted;
101101
unsigned long duration[3]; /* jiffies */
102102
bool duration_adjusted;
103+
void *data;
103104

104105
wait_queue_head_t read_queue;
105106
wait_queue_head_t int_queue;

0 commit comments

Comments
 (0)