From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47533) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ve4G6-0005No-Ex for qemu-devel@nongnu.org; Wed, 06 Nov 2013 09:39:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ve4Fx-0000Ac-HA for qemu-devel@nongnu.org; Wed, 06 Nov 2013 09:39:02 -0500 Received: from e8.ny.us.ibm.com ([32.97.182.138]:48745) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ve4Fx-0000AU-Br for qemu-devel@nongnu.org; Wed, 06 Nov 2013 09:38:53 -0500 Received: from /spool/local by e8.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 6 Nov 2013 09:38:52 -0500 Received: from b01cxnp23034.gho.pok.ibm.com (b01cxnp23034.gho.pok.ibm.com [9.57.198.29]) by d01dlp03.pok.ibm.com (Postfix) with ESMTP id 4DCBAC90050 for ; Wed, 6 Nov 2013 09:38:46 -0500 (EST) Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by b01cxnp23034.gho.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id rA6Eckpi262514 for ; Wed, 6 Nov 2013 14:38:46 GMT Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id rA6EckRT011827 for ; Wed, 6 Nov 2013 12:38:46 -0200 From: Corey Bryant Date: Wed, 6 Nov 2013 09:38:42 -0500 Message-Id: <1383748722-8723-1-git-send-email-coreyb@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH 0/4] tpm: Provide a software vTPM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Corey Bryant , aliguori@amazon.com This patch series provides support for a software Trusted Platform Module (otherwise known as a vTPM). This support is provided via a new backend that works with the existing QEMU tpm-tis front end. With this patch series, multiple guests can run with their own vTPM. In comparison, the existing passthrough vTPM does not allow this because the host TPM cannot be shared. Note: There is seabios code that is not yet upstream that is required to run with this support. It provides support such as initialization, ACPI table updates, and menu updates. If anyone would like to run with that support, let me know and I can send you a bios.bin. Following is a sample command line: qemu-img create -f qcow2 /home/qemu/images/nvram.qcow2 500K qemu-system-x86_64 ... \ -drive file=/home/qemu/images/nvram.qcow2,if=none,id=nvram0-0-0,format=qcow2 \ -device tpm-tis,tpmdev=tpm-tpm0,id=tpm0 \ -tpmdev libtpms,id=tpm-tpm0,nvram=nvram0-0-0 Corey Bryant (4): tpm: Add TPM NVRAM implementation tpm: Share tpm_write_fatal_error_response tpm: QMP/HMP support for libtpms TPM backend tpm: Provide libtpms software TPM backend configure | 24 ++ hmp.c | 5 + hw/tpm/Makefile.objs | 2 + hw/tpm/tpm_libtpms.c | 885 ++++++++++++++++++++++++++++++++++++++++++ hw/tpm/tpm_nvram.c | 340 ++++++++++++++++ hw/tpm/tpm_nvram.h | 25 ++ hw/tpm/tpm_passthrough.c | 14 - hw/tpm/tpm_tis.h | 1 + include/sysemu/tpm_backend.h | 3 + qapi-schema.json | 18 +- qemu-options.hx | 31 ++- tpm.c | 28 ++- 12 files changed, 1357 insertions(+), 19 deletions(-) create mode 100644 hw/tpm/tpm_libtpms.c create mode 100644 hw/tpm/tpm_nvram.c create mode 100644 hw/tpm/tpm_nvram.h