The following series of patches extends TPM support with an external TPM that offers a Linux CUSE (character device in userspace) interface. This TPM lets each VM access its own private vTPM. The CUSE TPM supports suspend/resume and migration. Much out-of-band functionality necessary to control the CUSE TPM is implemented using ioctl's.
The series extends the TPM support so far that most functionality of TPM support on a physical platform is now available to each x86 VM, this includes the Physical Presence Interface support that has its counter-part in the SeaBIOS and is implemented using ACPI. http://www.seabios.org/pipermail/seabios/2015-March/008978.html Stefan Berger (5): Provide support for the CUSE TPM Support Physical Presence Interface Spec Introduce condition to notifiy waiters of completed command Introduce condition in TPM backend for notification Add support for VM suspend/resume for TPM TIS hmp.c | 6 + hw/i386/acpi-tpm-core.dsl | 277 +++++++++++++++++++++++++++++ hw/i386/acpi-tpm2.dsl | 27 +++ hw/i386/q35-acpi-dsdt.dsl | 1 + hw/i386/ssdt-tpm.dsl | 12 +- hw/tpm/tpm_int.h | 4 + hw/tpm/tpm_ioctl.h | 178 +++++++++++++++++++ hw/tpm/tpm_passthrough.c | 410 +++++++++++++++++++++++++++++++++++++++++-- hw/tpm/tpm_tis.c | 152 +++++++++++++++- hw/tpm/tpm_tis.h | 2 + hw/tpm/tpm_util.c | 206 ++++++++++++++++++++++ hw/tpm/tpm_util.h | 7 + include/sysemu/tpm_backend.h | 12 ++ qapi-schema.json | 17 +- qemu-options.hx | 21 ++- qmp-commands.hx | 2 +- tpm.c | 11 +- 17 files changed, 1316 insertions(+), 29 deletions(-) create mode 100644 hw/i386/acpi-tpm-core.dsl create mode 100644 hw/i386/acpi-tpm2.dsl create mode 100644 hw/tpm/tpm_ioctl.h -- 1.9.3