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 ioctls.
This series of patches applies to 38a762fe. Stefan Berger (4): Provide support for the CUSE TPM Introduce condition to notify waiters of completed command Introduce condition in TPM backend for notification Add support for VM suspend/resume for TPM TIS hmp.c | 6 + hw/tpm/tpm_int.h | 4 + hw/tpm/tpm_ioctl.h | 215 +++++++++++++++++++++++ hw/tpm/tpm_passthrough.c | 409 +++++++++++++++++++++++++++++++++++++++++-- hw/tpm/tpm_tis.c | 151 +++++++++++++++- hw/tpm/tpm_tis.h | 2 + hw/tpm/tpm_util.c | 223 +++++++++++++++++++++++ hw/tpm/tpm_util.h | 7 + include/sysemu/tpm_backend.h | 12 ++ qapi-schema.json | 18 +- qemu-options.hx | 21 ++- qmp-commands.hx | 2 +- tpm.c | 11 +- 13 files changed, 1062 insertions(+), 19 deletions(-) create mode 100644 hw/tpm/tpm_ioctl.h -- 2.4.3