* [Qemu-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
@ 2015-03-10 12:16 ` Quan Xu
0 siblings, 0 replies; 30+ messages in thread
From: Quan Xu @ 2015-03-10 12:16 UTC (permalink / raw)
To: kevin; +Cc: stefanb, xen-devel, qemu-devel, Quan Xu, stefano.stabellini
This patch series are only the SeaBios part to enable stubdom vTPM for HVM
virtual machine. It will work with Qemu patch series and Xen patch series.
========================
*INTRODUCTION*
========================
The goal of virtual Trusted Platform Module (vTPM) is to provide a TPM functionality
to virtual machines (Fedora, Ubuntu, Redhat, Windows .etc). This allows programs
to interact with a TPM in a virtual machine the same way they interact with a TPM
on the physical system. Each virtual machine gets its own unique, emulated, software
TPM. Each major component of vTPM is implemented as a stubdom, providing secure
separation guaranteed by the hypervisor.
The vTPM stubdom is a Xen mini-OS domain that emulates a TPM for the virtual machine
to use. It is a small wrapper around the Berlios TPM emulator. TPM commands are passed
from mini-os TPM backend driver.
Signed-off-by: Quan Xu <quan.xu@intel.com>
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Quan Xu (1):
SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
Makefile | 2 +-
src/post.c | 3 +
src/tpm.c | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/tpm.h | 141 ++++++++++++++++++++++++++++
4 files changed, 454 insertions(+), 1 deletion(-)
create mode 100644 src/tpm.c
create mode 100644 src/tpm.h
--
1.8.1.2
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
@ 2015-03-10 12:16 ` Quan Xu
0 siblings, 0 replies; 30+ messages in thread
From: Quan Xu @ 2015-03-10 12:16 UTC (permalink / raw)
To: kevin; +Cc: stefanb, xen-devel, qemu-devel, Quan Xu, stefano.stabellini
This patch series are only the SeaBios part to enable stubdom vTPM for HVM
virtual machine. It will work with Qemu patch series and Xen patch series.
========================
*INTRODUCTION*
========================
The goal of virtual Trusted Platform Module (vTPM) is to provide a TPM functionality
to virtual machines (Fedora, Ubuntu, Redhat, Windows .etc). This allows programs
to interact with a TPM in a virtual machine the same way they interact with a TPM
on the physical system. Each virtual machine gets its own unique, emulated, software
TPM. Each major component of vTPM is implemented as a stubdom, providing secure
separation guaranteed by the hypervisor.
The vTPM stubdom is a Xen mini-OS domain that emulates a TPM for the virtual machine
to use. It is a small wrapper around the Berlios TPM emulator. TPM commands are passed
from mini-os TPM backend driver.
Signed-off-by: Quan Xu <quan.xu@intel.com>
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Quan Xu (1):
SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
Makefile | 2 +-
src/post.c | 3 +
src/tpm.c | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/tpm.h | 141 ++++++++++++++++++++++++++++
4 files changed, 454 insertions(+), 1 deletion(-)
create mode 100644 src/tpm.c
create mode 100644 src/tpm.h
--
1.8.1.2
^ permalink raw reply [flat|nested] 30+ messages in thread
* [Qemu-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-10 12:16 ` Quan Xu
(?)
@ 2015-03-10 12:16 ` Quan Xu
2015-03-19 12:56 ` [Qemu-devel] [Xen-devel] " Ian Campbell
2015-03-19 12:56 ` Ian Campbell
-1 siblings, 2 replies; 30+ messages in thread
From: Quan Xu @ 2015-03-10 12:16 UTC (permalink / raw)
To: kevin; +Cc: stefanb, xen-devel, qemu-devel, Quan Xu, stefano.stabellini
Signed-off-by: Quan Xu <quan.xu@intel.com>
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
---
Makefile | 2 +-
src/post.c | 3 +
src/tpm.c | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/tpm.h | 141 ++++++++++++++++++++++++++++
4 files changed, 454 insertions(+), 1 deletion(-)
create mode 100644 src/tpm.c
create mode 100644 src/tpm.h
diff --git a/Makefile b/Makefile
index eecb8a1..945e997 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,7 @@ SRCBOTH=misc.c stacks.c output.c string.c block.c cdrom.c disk.c mouse.c kbd.c \
hw/virtio-ring.c hw/virtio-pci.c hw/virtio-blk.c hw/virtio-scsi.c \
hw/lsi-scsi.c hw/esp-scsi.c hw/megasas.c
SRC16=$(SRCBOTH)
-SRC32FLAT=$(SRCBOTH) post.c memmap.c malloc.c romfile.c x86.c optionroms.c \
+SRC32FLAT=$(SRCBOTH) post.c memmap.c malloc.c romfile.c tpm.c x86.c optionroms.c \
pmm.c font.c boot.c bootsplash.c jpeg.c bmp.c \
hw/ahci.c hw/pvscsi.c hw/usb-xhci.c hw/usb-hub.c \
fw/coreboot.c fw/lzmadecode.c fw/csm.c fw/biostables.c \
diff --git a/src/post.c b/src/post.c
index 0fdd28e..8cb1abd 100644
--- a/src/post.c
+++ b/src/post.c
@@ -28,6 +28,7 @@
#include "output.h" // dprintf
#include "string.h" // memset
#include "util.h" // kbd_init
+#include "tpm.h" //vtpm4hvm_setup
/****************************************************************
@@ -151,6 +152,8 @@ device_hardware_setup(void)
esp_scsi_setup();
megasas_setup();
pvscsi_setup();
+ if (runningOnXen())
+ vtpm4hvm_setup();
}
static void
diff --git a/src/tpm.c b/src/tpm.c
new file mode 100644
index 0000000..a834d30
--- /dev/null
+++ b/src/tpm.c
@@ -0,0 +1,309 @@
+/*
+ * Implementation of a TPM driver for the TPM TIS interface
+ *
+ * Copyright (C) 2006-2013 IBM Corporation
+ * Copyright (C) 2015 Intel Corporation
+ *
+ * Authors:
+ * Stefan Berger <stefanb@linux.vnet.ibm.com>
+ * Quan Xu <quan.xu@intel.com>
+ *
+ * This file may be distributed under the terms of the GNU
+ * LGPLv3 license.
+ */
+
+#include "config.h"
+#include "util.h"
+#include "tpm.h"
+
+static u32 tis_default_timeouts[4] = {
+ TIS_DEFAULT_TIMEOUT_A,
+ TIS_DEFAULT_TIMEOUT_B,
+ TIS_DEFAULT_TIMEOUT_C,
+ TIS_DEFAULT_TIMEOUT_D,
+};
+
+static u32 tpm_default_durations[3] = {
+ TPM_DEFAULT_DURATION_SHORT,
+ TPM_DEFAULT_DURATION_MEDIUM,
+ TPM_DEFAULT_DURATION_LONG,
+};
+
+
+/* if device is not there, return '0', '1' otherwise */
+static u32 tis_probe(void)
+{
+ u32 rc = 0;
+ u32 didvid = readl(TIS_REG(0, TIS_REG_DID_VID));
+
+ if ((didvid != 0) && (didvid != 0xffffffff))
+ rc = 1;
+
+ return rc;
+}
+
+static u32 tis_init(void)
+{
+ writeb(TIS_REG(0, TIS_REG_INT_ENABLE), 0);
+
+ if (tpm_drivers[TIS_DRIVER_IDX].durations == NULL) {
+ u32 *durations = malloc_low(sizeof(tpm_default_durations));
+ if (durations)
+ memcpy(durations, tpm_default_durations,
+ sizeof(tpm_default_durations));
+ else
+ durations = tpm_default_durations;
+ tpm_drivers[TIS_DRIVER_IDX].durations = durations;
+ }
+
+ if (tpm_drivers[TIS_DRIVER_IDX].timeouts == NULL) {
+ u32 *timeouts = malloc_low(sizeof(tis_default_timeouts));
+ if (timeouts)
+ memcpy(timeouts, tis_default_timeouts,
+ sizeof(tis_default_timeouts));
+ else
+ timeouts = tis_default_timeouts;
+ tpm_drivers[TIS_DRIVER_IDX].timeouts = timeouts;
+ }
+
+ return 1;
+}
+
+
+static void set_timeouts(u32 timeouts[4], u32 durations[3])
+{
+ u32 *tos = tpm_drivers[TIS_DRIVER_IDX].timeouts;
+ u32 *dus = tpm_drivers[TIS_DRIVER_IDX].durations;
+
+ if (tos && tos != tis_default_timeouts && timeouts)
+ memcpy(tos, timeouts, 4 * sizeof(u32));
+ if (dus && dus != tpm_default_durations && durations)
+ memcpy(dus, durations, 3 * sizeof(u32));
+}
+
+
+static u32 tis_wait_sts(u8 locty, u32 time, u8 mask, u8 expect)
+{
+ u32 rc = 1;
+
+ while (time > 0) {
+ u8 sts = readb(TIS_REG(locty, TIS_REG_STS));
+ if ((sts & mask) == expect) {
+ rc = 0;
+ break;
+ }
+ msleep(1);
+ time--;
+ }
+ return rc;
+}
+
+static u32 tis_activate(u8 locty)
+{
+ u32 rc = 0;
+ u8 acc;
+ int l;
+ u32 timeout_a = tpm_drivers[TIS_DRIVER_IDX].timeouts[TIS_TIMEOUT_TYPE_A];
+
+ if (!(readb(TIS_REG(locty, TIS_REG_ACCESS)) &
+ TIS_ACCESS_ACTIVE_LOCALITY)) {
+ /* release locality in use top-downwards */
+ for (l = 4; l >= 0; l--)
+ writeb(TIS_REG(l, TIS_REG_ACCESS),
+ TIS_ACCESS_ACTIVE_LOCALITY);
+ }
+
+ /* request access to locality */
+ writeb(TIS_REG(locty, TIS_REG_ACCESS), TIS_ACCESS_REQUEST_USE);
+
+ acc = readb(TIS_REG(locty, TIS_REG_ACCESS));
+ if ((acc & TIS_ACCESS_ACTIVE_LOCALITY)) {
+ writeb(TIS_REG(locty, TIS_REG_STS), TIS_STS_COMMAND_READY);
+ rc = tis_wait_sts(locty, timeout_a,
+ TIS_STS_COMMAND_READY, TIS_STS_COMMAND_READY);
+ }
+
+ return rc;
+}
+
+static u32 tis_find_active_locality(void)
+{
+ u8 locty;
+
+ for (locty = 0; locty <= 4; locty++) {
+ if ((readb(TIS_REG(locty, TIS_REG_ACCESS)) &
+ TIS_ACCESS_ACTIVE_LOCALITY))
+ return locty;
+ }
+
+ tis_activate(0);
+
+ return 0;
+}
+
+static u32 tis_ready(void)
+{
+ u32 rc = 0;
+ u8 locty = tis_find_active_locality();
+ u32 timeout_b = tpm_drivers[TIS_DRIVER_IDX].timeouts[TIS_TIMEOUT_TYPE_B];
+
+ writeb(TIS_REG(locty, TIS_REG_STS), TIS_STS_COMMAND_READY);
+ rc = tis_wait_sts(locty, timeout_b,
+ TIS_STS_COMMAND_READY, TIS_STS_COMMAND_READY);
+
+ return rc;
+}
+
+static u32 tis_senddata(const u8 *const data, u32 len)
+{
+ u32 rc = 0;
+ u32 offset = 0;
+ u32 end = 0;
+ u16 burst = 0;
+ u32 ctr = 0;
+ u8 locty = tis_find_active_locality();
+ u32 timeout_d = tpm_drivers[TIS_DRIVER_IDX].timeouts[TIS_TIMEOUT_TYPE_D];
+
+ do {
+ while (burst == 0 && ctr < timeout_d) {
+ burst = readl(TIS_REG(locty, TIS_REG_STS)) >> 8;
+ if (burst == 0) {
+ msleep(1);
+ ctr++;
+ }
+ }
+
+ if (burst == 0) {
+ rc = TCG_RESPONSE_TIMEOUT;
+ break;
+ }
+
+ while (1) {
+ writeb(TIS_REG(locty, TIS_REG_DATA_FIFO), data[offset++]);
+ burst--;
+
+ if (burst == 0 || offset == len)
+ break;
+ }
+
+ if (offset == len)
+ end = 1;
+ } while (end == 0);
+
+ return rc;
+}
+
+static u32 tis_readresp(u8 *buffer, u32 *len)
+{
+ u32 rc = 0;
+ u32 offset = 0;
+ u32 sts;
+ u8 locty = tis_find_active_locality();
+
+ while (offset < *len) {
+ buffer[offset] = readb(TIS_REG(locty, TIS_REG_DATA_FIFO));
+ offset++;
+ sts = readb(TIS_REG(locty, TIS_REG_STS));
+ /* data left ? */
+ if ((sts & TIS_STS_DATA_AVAILABLE) == 0)
+ break;
+ }
+
+ *len = offset;
+
+ return rc;
+}
+
+
+static u32 tis_waitdatavalid(void)
+{
+ u32 rc = 0;
+ u8 locty = tis_find_active_locality();
+ u32 timeout_c = tpm_drivers[TIS_DRIVER_IDX].timeouts[TIS_TIMEOUT_TYPE_C];
+
+ if (tis_wait_sts(locty, timeout_c, TIS_STS_VALID, TIS_STS_VALID) != 0)
+ rc = TCG_NO_RESPONSE;
+
+ return rc;
+}
+
+static u32 tis_waitrespready(enum tpmDurationType to_t)
+{
+ u32 rc = 0;
+ u8 locty = tis_find_active_locality();
+ u32 timeout = tpm_drivers[TIS_DRIVER_IDX].durations[to_t];
+
+ writeb(TIS_REG(locty ,TIS_REG_STS), TIS_STS_TPM_GO);
+
+ if (tis_wait_sts(locty, timeout,
+ TIS_STS_DATA_AVAILABLE, TIS_STS_DATA_AVAILABLE) != 0)
+ rc = TCG_NO_RESPONSE;
+
+ return rc;
+}
+
+
+struct tpm_driver tpm_drivers[TPM_NUM_DRIVERS] = {
+ [TIS_DRIVER_IDX] =
+ {
+ .timeouts = NULL,
+ .durations = NULL,
+ .set_timeouts = set_timeouts,
+ .probe = tis_probe,
+ .init = tis_init,
+ .activate = tis_activate,
+ .ready = tis_ready,
+ .senddata = tis_senddata,
+ .readresp = tis_readresp,
+ .waitdatavalid = tis_waitdatavalid,
+ .waitrespready = tis_waitrespready,
+ .sha1threshold = 100 * 1024,
+ },
+};
+
+typedef struct {
+ u8 tpm_probed:1;
+ u8 tpm_found:1;
+ u8 tpm_working:1;
+ u8 if_shutdown:1;
+ u8 tpm_driver_to_use:4;
+} tcpa_state_t;
+
+
+static tcpa_state_t tcpa_state = {
+ .tpm_driver_to_use = TPM_INVALID_DRIVER,
+};
+
+static u32
+is_tpm_present(void)
+{
+ u32 rc = 0;
+ unsigned int i;
+
+ for (i = 0; i < TPM_NUM_DRIVERS; i++) {
+ struct tpm_driver *td = &tpm_drivers[i];
+ if (td->probe() != 0) {
+ td->init();
+ tcpa_state.tpm_driver_to_use = i;
+ rc = 1;
+ break;
+ }
+ }
+
+ return rc;
+}
+
+int
+vtpm4hvm_setup(void)
+{
+ if (!tcpa_state.tpm_probed) {
+ tcpa_state.tpm_probed = 1;
+ tcpa_state.tpm_found = (is_tpm_present() != 0);
+ tcpa_state.tpm_working = 1;
+ }
+ if (!tcpa_state.tpm_working)
+ return 0;
+
+ return tcpa_state.tpm_found;
+}
+
diff --git a/src/tpm.h b/src/tpm.h
new file mode 100644
index 0000000..cac5cec
--- /dev/null
+++ b/src/tpm.h
@@ -0,0 +1,141 @@
+#ifndef TPM_DRIVERS_H
+#define TPM_DRIVERS_H
+
+#include "types.h" // u32
+
+
+enum tpmDurationType {
+ TPM_DURATION_TYPE_SHORT = 0,
+ TPM_DURATION_TYPE_MEDIUM,
+ TPM_DURATION_TYPE_LONG,
+};
+
+/* low level driver implementation */
+struct tpm_driver {
+ u32 *timeouts;
+ u32 *durations;
+ void (*set_timeouts)(u32 timeouts[4], u32 durations[3]);
+ u32 (*probe)(void);
+ u32 (*init)(void);
+ u32 (*activate)(u8 locty);
+ u32 (*ready)(void);
+ u32 (*senddata)(const u8 *const data, u32 len);
+ u32 (*readresp)(u8 *buffer, u32 *len);
+ u32 (*waitdatavalid)(void);
+ u32 (*waitrespready)(enum tpmDurationType to_t);
+ /* the TPM will be used for buffers of sizes below the sha1threshold
+ for calculating the hash */
+ u32 sha1threshold;
+};
+
+extern struct tpm_driver tpm_drivers[];
+
+
+#define TIS_DRIVER_IDX 0
+#define TPM_NUM_DRIVERS 1
+
+#define TPM_INVALID_DRIVER -1
+
+/* TIS driver */
+/* address of locality 0 (TIS) */
+#define TPM_TIS_BASE_ADDRESS 0xfed40000
+
+#define TIS_REG(LOCTY, REG) \
+ (void *)(TPM_TIS_BASE_ADDRESS + (LOCTY << 12) + REG)
+
+/* hardware registers */
+#define TIS_REG_ACCESS 0x0
+#define TIS_REG_INT_ENABLE 0x8
+#define TIS_REG_INT_VECTOR 0xc
+#define TIS_REG_INT_STATUS 0x10
+#define TIS_REG_INTF_CAPABILITY 0x14
+#define TIS_REG_STS 0x18
+#define TIS_REG_DATA_FIFO 0x24
+#define TIS_REG_DID_VID 0xf00
+#define TIS_REG_RID 0xf04
+
+#define TIS_STS_VALID (1 << 7) /* 0x80 */
+#define TIS_STS_COMMAND_READY (1 << 6) /* 0x40 */
+#define TIS_STS_TPM_GO (1 << 5) /* 0x20 */
+#define TIS_STS_DATA_AVAILABLE (1 << 4) /* 0x10 */
+#define TIS_STS_EXPECT (1 << 3) /* 0x08 */
+#define TIS_STS_RESPONSE_RETRY (1 << 1) /* 0x02 */
+
+#define TIS_ACCESS_TPM_REG_VALID_STS (1 << 7) /* 0x80 */
+#define TIS_ACCESS_ACTIVE_LOCALITY (1 << 5) /* 0x20 */
+#define TIS_ACCESS_BEEN_SEIZED (1 << 4) /* 0x10 */
+#define TIS_ACCESS_SEIZE (1 << 3) /* 0x08 */
+#define TIS_ACCESS_PENDING_REQUEST (1 << 2) /* 0x04 */
+#define TIS_ACCESS_REQUEST_USE (1 << 1) /* 0x02 */
+#define TIS_ACCESS_TPM_ESTABLISHMENT (1 << 0) /* 0x01 */
+
+#define SCALER 10
+
+#define TIS_DEFAULT_TIMEOUT_A (750 * SCALER)
+#define TIS_DEFAULT_TIMEOUT_B (2000 * SCALER)
+#define TIS_DEFAULT_TIMEOUT_C (750 * SCALER)
+#define TIS_DEFAULT_TIMEOUT_D (750 * SCALER)
+
+enum tisTimeoutType {
+ TIS_TIMEOUT_TYPE_A = 0,
+ TIS_TIMEOUT_TYPE_B,
+ TIS_TIMEOUT_TYPE_C,
+ TIS_TIMEOUT_TYPE_D,
+};
+
+#define TPM_DEFAULT_DURATION_SHORT (2000 * SCALER)
+#define TPM_DEFAULT_DURATION_MEDIUM (20000 * SCALER)
+#define TPM_DEFAULT_DURATION_LONG (60000 * SCALER)
+
+
+/***************************************************
+ * TCG BIOS *
+ ***************************************************/
+#define TPM_OK 0x0
+#define TPM_RET_BASE 0x1
+#define TCG_GENERAL_ERROR (TPM_RET_BASE + 0x0)
+#define TCG_TPM_IS_LOCKED (TPM_RET_BASE + 0x1)
+#define TCG_NO_RESPONSE (TPM_RET_BASE + 0x2)
+#define TCG_INVALID_RESPONSE (TPM_RET_BASE + 0x3)
+#define TCG_INVALID_ACCESS_REQUEST (TPM_RET_BASE + 0x4)
+#define TCG_FIRMWARE_ERROR (TPM_RET_BASE + 0x5)
+#define TCG_INTEGRITY_CHECK_FAILED (TPM_RET_BASE + 0x6)
+#define TCG_INVALID_DEVICE_ID (TPM_RET_BASE + 0x7)
+#define TCG_INVALID_VENDOR_ID (TPM_RET_BASE + 0x8)
+#define TCG_UNABLE_TO_OPEN (TPM_RET_BASE + 0x9)
+#define TCG_UNABLE_TO_CLOSE (TPM_RET_BASE + 0xa)
+#define TCG_RESPONSE_TIMEOUT (TPM_RET_BASE + 0xb)
+#define TCG_INVALID_COM_REQUEST (TPM_RET_BASE + 0xc)
+#define TCG_INVALID_ADR_REQUEST (TPM_RET_BASE + 0xd)
+#define TCG_WRITE_BYTE_ERROR (TPM_RET_BASE + 0xe)
+#define TCG_READ_BYTE_ERROR (TPM_RET_BASE + 0xf)
+#define TCG_BLOCK_WRITE_TIMEOUT (TPM_RET_BASE + 0x10)
+#define TCG_CHAR_WRITE_TIMEOUT (TPM_RET_BASE + 0x11)
+#define TCG_CHAR_READ_TIMEOUT (TPM_RET_BASE + 0x12)
+#define TCG_BLOCK_READ_TIMEOUT (TPM_RET_BASE + 0x13)
+#define TCG_TRANSFER_ABORT (TPM_RET_BASE + 0x14)
+#define TCG_INVALID_DRV_FUNCTION (TPM_RET_BASE + 0x15)
+#define TCG_OUTPUT_BUFFER_TOO_SHORT (TPM_RET_BASE + 0x16)
+#define TCG_FATAL_COM_ERROR (TPM_RET_BASE + 0x17)
+#define TCG_INVALID_INPUT_PARA (TPM_RET_BASE + 0x18)
+#define TCG_TCG_COMMAND_ERROR (TPM_RET_BASE + 0x19)
+#define TCG_INTERFACE_SHUTDOWN (TPM_RET_BASE + 0x20)
+#define TCG_PC_TPM_NOT_PRESENT (TPM_RET_BASE + 0x22)
+#define TCG_PC_TPM_DEACTIVATED (TPM_RET_BASE + 0x23)
+
+#define TPM_INVALID_ADR_REQUEST TCG_INVALID_ADR_REQUEST
+#define TPM_IS_LOCKED TCG_TPM_IS_LOCKED
+#define TPM_INVALID_DEVICE_ID TCG_INVALID_DEVICE_ID
+#define TPM_INVALID_VENDOR_ID TCG_INVALID_VENDOR_ID
+#define TPM_FIRMWARE_ERROR TCG_FIRMWARE_ERROR
+#define TPM_UNABLE_TO_OPEN TCG_UNABLE_TO_OPEN
+#define TPM_UNABLE_TO_CLOSE TCG_UNABLE_TO_CLOSE
+#define TPM_INVALID_RESPONSE TCG_INVALID_RESPONSE
+#define TPM_RESPONSE_TIMEOUT TCG_RESPONSE_TIMEOUT
+#define TPM_INVALID_ACCESS_REQUEST TCG_INVALID_ACCESS_REQUEST
+#define TPM_TRANSFER_ABORT TCG_TRANSFER_ABORT
+#define TPM_GENERAL_ERROR TCG_GENERAL_ERROR
+
+int vtpm4hvm_setup(void);
+
+#endif /* TPM_DRIVERS_H */
--
1.8.1.2
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-10 12:16 ` Quan Xu
(?)
(?)
@ 2015-03-10 12:16 ` Quan Xu
-1 siblings, 0 replies; 30+ messages in thread
From: Quan Xu @ 2015-03-10 12:16 UTC (permalink / raw)
To: kevin; +Cc: stefanb, xen-devel, qemu-devel, Quan Xu, stefano.stabellini
Signed-off-by: Quan Xu <quan.xu@intel.com>
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
---
Makefile | 2 +-
src/post.c | 3 +
src/tpm.c | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/tpm.h | 141 ++++++++++++++++++++++++++++
4 files changed, 454 insertions(+), 1 deletion(-)
create mode 100644 src/tpm.c
create mode 100644 src/tpm.h
diff --git a/Makefile b/Makefile
index eecb8a1..945e997 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,7 @@ SRCBOTH=misc.c stacks.c output.c string.c block.c cdrom.c disk.c mouse.c kbd.c \
hw/virtio-ring.c hw/virtio-pci.c hw/virtio-blk.c hw/virtio-scsi.c \
hw/lsi-scsi.c hw/esp-scsi.c hw/megasas.c
SRC16=$(SRCBOTH)
-SRC32FLAT=$(SRCBOTH) post.c memmap.c malloc.c romfile.c x86.c optionroms.c \
+SRC32FLAT=$(SRCBOTH) post.c memmap.c malloc.c romfile.c tpm.c x86.c optionroms.c \
pmm.c font.c boot.c bootsplash.c jpeg.c bmp.c \
hw/ahci.c hw/pvscsi.c hw/usb-xhci.c hw/usb-hub.c \
fw/coreboot.c fw/lzmadecode.c fw/csm.c fw/biostables.c \
diff --git a/src/post.c b/src/post.c
index 0fdd28e..8cb1abd 100644
--- a/src/post.c
+++ b/src/post.c
@@ -28,6 +28,7 @@
#include "output.h" // dprintf
#include "string.h" // memset
#include "util.h" // kbd_init
+#include "tpm.h" //vtpm4hvm_setup
/****************************************************************
@@ -151,6 +152,8 @@ device_hardware_setup(void)
esp_scsi_setup();
megasas_setup();
pvscsi_setup();
+ if (runningOnXen())
+ vtpm4hvm_setup();
}
static void
diff --git a/src/tpm.c b/src/tpm.c
new file mode 100644
index 0000000..a834d30
--- /dev/null
+++ b/src/tpm.c
@@ -0,0 +1,309 @@
+/*
+ * Implementation of a TPM driver for the TPM TIS interface
+ *
+ * Copyright (C) 2006-2013 IBM Corporation
+ * Copyright (C) 2015 Intel Corporation
+ *
+ * Authors:
+ * Stefan Berger <stefanb@linux.vnet.ibm.com>
+ * Quan Xu <quan.xu@intel.com>
+ *
+ * This file may be distributed under the terms of the GNU
+ * LGPLv3 license.
+ */
+
+#include "config.h"
+#include "util.h"
+#include "tpm.h"
+
+static u32 tis_default_timeouts[4] = {
+ TIS_DEFAULT_TIMEOUT_A,
+ TIS_DEFAULT_TIMEOUT_B,
+ TIS_DEFAULT_TIMEOUT_C,
+ TIS_DEFAULT_TIMEOUT_D,
+};
+
+static u32 tpm_default_durations[3] = {
+ TPM_DEFAULT_DURATION_SHORT,
+ TPM_DEFAULT_DURATION_MEDIUM,
+ TPM_DEFAULT_DURATION_LONG,
+};
+
+
+/* if device is not there, return '0', '1' otherwise */
+static u32 tis_probe(void)
+{
+ u32 rc = 0;
+ u32 didvid = readl(TIS_REG(0, TIS_REG_DID_VID));
+
+ if ((didvid != 0) && (didvid != 0xffffffff))
+ rc = 1;
+
+ return rc;
+}
+
+static u32 tis_init(void)
+{
+ writeb(TIS_REG(0, TIS_REG_INT_ENABLE), 0);
+
+ if (tpm_drivers[TIS_DRIVER_IDX].durations == NULL) {
+ u32 *durations = malloc_low(sizeof(tpm_default_durations));
+ if (durations)
+ memcpy(durations, tpm_default_durations,
+ sizeof(tpm_default_durations));
+ else
+ durations = tpm_default_durations;
+ tpm_drivers[TIS_DRIVER_IDX].durations = durations;
+ }
+
+ if (tpm_drivers[TIS_DRIVER_IDX].timeouts == NULL) {
+ u32 *timeouts = malloc_low(sizeof(tis_default_timeouts));
+ if (timeouts)
+ memcpy(timeouts, tis_default_timeouts,
+ sizeof(tis_default_timeouts));
+ else
+ timeouts = tis_default_timeouts;
+ tpm_drivers[TIS_DRIVER_IDX].timeouts = timeouts;
+ }
+
+ return 1;
+}
+
+
+static void set_timeouts(u32 timeouts[4], u32 durations[3])
+{
+ u32 *tos = tpm_drivers[TIS_DRIVER_IDX].timeouts;
+ u32 *dus = tpm_drivers[TIS_DRIVER_IDX].durations;
+
+ if (tos && tos != tis_default_timeouts && timeouts)
+ memcpy(tos, timeouts, 4 * sizeof(u32));
+ if (dus && dus != tpm_default_durations && durations)
+ memcpy(dus, durations, 3 * sizeof(u32));
+}
+
+
+static u32 tis_wait_sts(u8 locty, u32 time, u8 mask, u8 expect)
+{
+ u32 rc = 1;
+
+ while (time > 0) {
+ u8 sts = readb(TIS_REG(locty, TIS_REG_STS));
+ if ((sts & mask) == expect) {
+ rc = 0;
+ break;
+ }
+ msleep(1);
+ time--;
+ }
+ return rc;
+}
+
+static u32 tis_activate(u8 locty)
+{
+ u32 rc = 0;
+ u8 acc;
+ int l;
+ u32 timeout_a = tpm_drivers[TIS_DRIVER_IDX].timeouts[TIS_TIMEOUT_TYPE_A];
+
+ if (!(readb(TIS_REG(locty, TIS_REG_ACCESS)) &
+ TIS_ACCESS_ACTIVE_LOCALITY)) {
+ /* release locality in use top-downwards */
+ for (l = 4; l >= 0; l--)
+ writeb(TIS_REG(l, TIS_REG_ACCESS),
+ TIS_ACCESS_ACTIVE_LOCALITY);
+ }
+
+ /* request access to locality */
+ writeb(TIS_REG(locty, TIS_REG_ACCESS), TIS_ACCESS_REQUEST_USE);
+
+ acc = readb(TIS_REG(locty, TIS_REG_ACCESS));
+ if ((acc & TIS_ACCESS_ACTIVE_LOCALITY)) {
+ writeb(TIS_REG(locty, TIS_REG_STS), TIS_STS_COMMAND_READY);
+ rc = tis_wait_sts(locty, timeout_a,
+ TIS_STS_COMMAND_READY, TIS_STS_COMMAND_READY);
+ }
+
+ return rc;
+}
+
+static u32 tis_find_active_locality(void)
+{
+ u8 locty;
+
+ for (locty = 0; locty <= 4; locty++) {
+ if ((readb(TIS_REG(locty, TIS_REG_ACCESS)) &
+ TIS_ACCESS_ACTIVE_LOCALITY))
+ return locty;
+ }
+
+ tis_activate(0);
+
+ return 0;
+}
+
+static u32 tis_ready(void)
+{
+ u32 rc = 0;
+ u8 locty = tis_find_active_locality();
+ u32 timeout_b = tpm_drivers[TIS_DRIVER_IDX].timeouts[TIS_TIMEOUT_TYPE_B];
+
+ writeb(TIS_REG(locty, TIS_REG_STS), TIS_STS_COMMAND_READY);
+ rc = tis_wait_sts(locty, timeout_b,
+ TIS_STS_COMMAND_READY, TIS_STS_COMMAND_READY);
+
+ return rc;
+}
+
+static u32 tis_senddata(const u8 *const data, u32 len)
+{
+ u32 rc = 0;
+ u32 offset = 0;
+ u32 end = 0;
+ u16 burst = 0;
+ u32 ctr = 0;
+ u8 locty = tis_find_active_locality();
+ u32 timeout_d = tpm_drivers[TIS_DRIVER_IDX].timeouts[TIS_TIMEOUT_TYPE_D];
+
+ do {
+ while (burst == 0 && ctr < timeout_d) {
+ burst = readl(TIS_REG(locty, TIS_REG_STS)) >> 8;
+ if (burst == 0) {
+ msleep(1);
+ ctr++;
+ }
+ }
+
+ if (burst == 0) {
+ rc = TCG_RESPONSE_TIMEOUT;
+ break;
+ }
+
+ while (1) {
+ writeb(TIS_REG(locty, TIS_REG_DATA_FIFO), data[offset++]);
+ burst--;
+
+ if (burst == 0 || offset == len)
+ break;
+ }
+
+ if (offset == len)
+ end = 1;
+ } while (end == 0);
+
+ return rc;
+}
+
+static u32 tis_readresp(u8 *buffer, u32 *len)
+{
+ u32 rc = 0;
+ u32 offset = 0;
+ u32 sts;
+ u8 locty = tis_find_active_locality();
+
+ while (offset < *len) {
+ buffer[offset] = readb(TIS_REG(locty, TIS_REG_DATA_FIFO));
+ offset++;
+ sts = readb(TIS_REG(locty, TIS_REG_STS));
+ /* data left ? */
+ if ((sts & TIS_STS_DATA_AVAILABLE) == 0)
+ break;
+ }
+
+ *len = offset;
+
+ return rc;
+}
+
+
+static u32 tis_waitdatavalid(void)
+{
+ u32 rc = 0;
+ u8 locty = tis_find_active_locality();
+ u32 timeout_c = tpm_drivers[TIS_DRIVER_IDX].timeouts[TIS_TIMEOUT_TYPE_C];
+
+ if (tis_wait_sts(locty, timeout_c, TIS_STS_VALID, TIS_STS_VALID) != 0)
+ rc = TCG_NO_RESPONSE;
+
+ return rc;
+}
+
+static u32 tis_waitrespready(enum tpmDurationType to_t)
+{
+ u32 rc = 0;
+ u8 locty = tis_find_active_locality();
+ u32 timeout = tpm_drivers[TIS_DRIVER_IDX].durations[to_t];
+
+ writeb(TIS_REG(locty ,TIS_REG_STS), TIS_STS_TPM_GO);
+
+ if (tis_wait_sts(locty, timeout,
+ TIS_STS_DATA_AVAILABLE, TIS_STS_DATA_AVAILABLE) != 0)
+ rc = TCG_NO_RESPONSE;
+
+ return rc;
+}
+
+
+struct tpm_driver tpm_drivers[TPM_NUM_DRIVERS] = {
+ [TIS_DRIVER_IDX] =
+ {
+ .timeouts = NULL,
+ .durations = NULL,
+ .set_timeouts = set_timeouts,
+ .probe = tis_probe,
+ .init = tis_init,
+ .activate = tis_activate,
+ .ready = tis_ready,
+ .senddata = tis_senddata,
+ .readresp = tis_readresp,
+ .waitdatavalid = tis_waitdatavalid,
+ .waitrespready = tis_waitrespready,
+ .sha1threshold = 100 * 1024,
+ },
+};
+
+typedef struct {
+ u8 tpm_probed:1;
+ u8 tpm_found:1;
+ u8 tpm_working:1;
+ u8 if_shutdown:1;
+ u8 tpm_driver_to_use:4;
+} tcpa_state_t;
+
+
+static tcpa_state_t tcpa_state = {
+ .tpm_driver_to_use = TPM_INVALID_DRIVER,
+};
+
+static u32
+is_tpm_present(void)
+{
+ u32 rc = 0;
+ unsigned int i;
+
+ for (i = 0; i < TPM_NUM_DRIVERS; i++) {
+ struct tpm_driver *td = &tpm_drivers[i];
+ if (td->probe() != 0) {
+ td->init();
+ tcpa_state.tpm_driver_to_use = i;
+ rc = 1;
+ break;
+ }
+ }
+
+ return rc;
+}
+
+int
+vtpm4hvm_setup(void)
+{
+ if (!tcpa_state.tpm_probed) {
+ tcpa_state.tpm_probed = 1;
+ tcpa_state.tpm_found = (is_tpm_present() != 0);
+ tcpa_state.tpm_working = 1;
+ }
+ if (!tcpa_state.tpm_working)
+ return 0;
+
+ return tcpa_state.tpm_found;
+}
+
diff --git a/src/tpm.h b/src/tpm.h
new file mode 100644
index 0000000..cac5cec
--- /dev/null
+++ b/src/tpm.h
@@ -0,0 +1,141 @@
+#ifndef TPM_DRIVERS_H
+#define TPM_DRIVERS_H
+
+#include "types.h" // u32
+
+
+enum tpmDurationType {
+ TPM_DURATION_TYPE_SHORT = 0,
+ TPM_DURATION_TYPE_MEDIUM,
+ TPM_DURATION_TYPE_LONG,
+};
+
+/* low level driver implementation */
+struct tpm_driver {
+ u32 *timeouts;
+ u32 *durations;
+ void (*set_timeouts)(u32 timeouts[4], u32 durations[3]);
+ u32 (*probe)(void);
+ u32 (*init)(void);
+ u32 (*activate)(u8 locty);
+ u32 (*ready)(void);
+ u32 (*senddata)(const u8 *const data, u32 len);
+ u32 (*readresp)(u8 *buffer, u32 *len);
+ u32 (*waitdatavalid)(void);
+ u32 (*waitrespready)(enum tpmDurationType to_t);
+ /* the TPM will be used for buffers of sizes below the sha1threshold
+ for calculating the hash */
+ u32 sha1threshold;
+};
+
+extern struct tpm_driver tpm_drivers[];
+
+
+#define TIS_DRIVER_IDX 0
+#define TPM_NUM_DRIVERS 1
+
+#define TPM_INVALID_DRIVER -1
+
+/* TIS driver */
+/* address of locality 0 (TIS) */
+#define TPM_TIS_BASE_ADDRESS 0xfed40000
+
+#define TIS_REG(LOCTY, REG) \
+ (void *)(TPM_TIS_BASE_ADDRESS + (LOCTY << 12) + REG)
+
+/* hardware registers */
+#define TIS_REG_ACCESS 0x0
+#define TIS_REG_INT_ENABLE 0x8
+#define TIS_REG_INT_VECTOR 0xc
+#define TIS_REG_INT_STATUS 0x10
+#define TIS_REG_INTF_CAPABILITY 0x14
+#define TIS_REG_STS 0x18
+#define TIS_REG_DATA_FIFO 0x24
+#define TIS_REG_DID_VID 0xf00
+#define TIS_REG_RID 0xf04
+
+#define TIS_STS_VALID (1 << 7) /* 0x80 */
+#define TIS_STS_COMMAND_READY (1 << 6) /* 0x40 */
+#define TIS_STS_TPM_GO (1 << 5) /* 0x20 */
+#define TIS_STS_DATA_AVAILABLE (1 << 4) /* 0x10 */
+#define TIS_STS_EXPECT (1 << 3) /* 0x08 */
+#define TIS_STS_RESPONSE_RETRY (1 << 1) /* 0x02 */
+
+#define TIS_ACCESS_TPM_REG_VALID_STS (1 << 7) /* 0x80 */
+#define TIS_ACCESS_ACTIVE_LOCALITY (1 << 5) /* 0x20 */
+#define TIS_ACCESS_BEEN_SEIZED (1 << 4) /* 0x10 */
+#define TIS_ACCESS_SEIZE (1 << 3) /* 0x08 */
+#define TIS_ACCESS_PENDING_REQUEST (1 << 2) /* 0x04 */
+#define TIS_ACCESS_REQUEST_USE (1 << 1) /* 0x02 */
+#define TIS_ACCESS_TPM_ESTABLISHMENT (1 << 0) /* 0x01 */
+
+#define SCALER 10
+
+#define TIS_DEFAULT_TIMEOUT_A (750 * SCALER)
+#define TIS_DEFAULT_TIMEOUT_B (2000 * SCALER)
+#define TIS_DEFAULT_TIMEOUT_C (750 * SCALER)
+#define TIS_DEFAULT_TIMEOUT_D (750 * SCALER)
+
+enum tisTimeoutType {
+ TIS_TIMEOUT_TYPE_A = 0,
+ TIS_TIMEOUT_TYPE_B,
+ TIS_TIMEOUT_TYPE_C,
+ TIS_TIMEOUT_TYPE_D,
+};
+
+#define TPM_DEFAULT_DURATION_SHORT (2000 * SCALER)
+#define TPM_DEFAULT_DURATION_MEDIUM (20000 * SCALER)
+#define TPM_DEFAULT_DURATION_LONG (60000 * SCALER)
+
+
+/***************************************************
+ * TCG BIOS *
+ ***************************************************/
+#define TPM_OK 0x0
+#define TPM_RET_BASE 0x1
+#define TCG_GENERAL_ERROR (TPM_RET_BASE + 0x0)
+#define TCG_TPM_IS_LOCKED (TPM_RET_BASE + 0x1)
+#define TCG_NO_RESPONSE (TPM_RET_BASE + 0x2)
+#define TCG_INVALID_RESPONSE (TPM_RET_BASE + 0x3)
+#define TCG_INVALID_ACCESS_REQUEST (TPM_RET_BASE + 0x4)
+#define TCG_FIRMWARE_ERROR (TPM_RET_BASE + 0x5)
+#define TCG_INTEGRITY_CHECK_FAILED (TPM_RET_BASE + 0x6)
+#define TCG_INVALID_DEVICE_ID (TPM_RET_BASE + 0x7)
+#define TCG_INVALID_VENDOR_ID (TPM_RET_BASE + 0x8)
+#define TCG_UNABLE_TO_OPEN (TPM_RET_BASE + 0x9)
+#define TCG_UNABLE_TO_CLOSE (TPM_RET_BASE + 0xa)
+#define TCG_RESPONSE_TIMEOUT (TPM_RET_BASE + 0xb)
+#define TCG_INVALID_COM_REQUEST (TPM_RET_BASE + 0xc)
+#define TCG_INVALID_ADR_REQUEST (TPM_RET_BASE + 0xd)
+#define TCG_WRITE_BYTE_ERROR (TPM_RET_BASE + 0xe)
+#define TCG_READ_BYTE_ERROR (TPM_RET_BASE + 0xf)
+#define TCG_BLOCK_WRITE_TIMEOUT (TPM_RET_BASE + 0x10)
+#define TCG_CHAR_WRITE_TIMEOUT (TPM_RET_BASE + 0x11)
+#define TCG_CHAR_READ_TIMEOUT (TPM_RET_BASE + 0x12)
+#define TCG_BLOCK_READ_TIMEOUT (TPM_RET_BASE + 0x13)
+#define TCG_TRANSFER_ABORT (TPM_RET_BASE + 0x14)
+#define TCG_INVALID_DRV_FUNCTION (TPM_RET_BASE + 0x15)
+#define TCG_OUTPUT_BUFFER_TOO_SHORT (TPM_RET_BASE + 0x16)
+#define TCG_FATAL_COM_ERROR (TPM_RET_BASE + 0x17)
+#define TCG_INVALID_INPUT_PARA (TPM_RET_BASE + 0x18)
+#define TCG_TCG_COMMAND_ERROR (TPM_RET_BASE + 0x19)
+#define TCG_INTERFACE_SHUTDOWN (TPM_RET_BASE + 0x20)
+#define TCG_PC_TPM_NOT_PRESENT (TPM_RET_BASE + 0x22)
+#define TCG_PC_TPM_DEACTIVATED (TPM_RET_BASE + 0x23)
+
+#define TPM_INVALID_ADR_REQUEST TCG_INVALID_ADR_REQUEST
+#define TPM_IS_LOCKED TCG_TPM_IS_LOCKED
+#define TPM_INVALID_DEVICE_ID TCG_INVALID_DEVICE_ID
+#define TPM_INVALID_VENDOR_ID TCG_INVALID_VENDOR_ID
+#define TPM_FIRMWARE_ERROR TCG_FIRMWARE_ERROR
+#define TPM_UNABLE_TO_OPEN TCG_UNABLE_TO_OPEN
+#define TPM_UNABLE_TO_CLOSE TCG_UNABLE_TO_CLOSE
+#define TPM_INVALID_RESPONSE TCG_INVALID_RESPONSE
+#define TPM_RESPONSE_TIMEOUT TCG_RESPONSE_TIMEOUT
+#define TPM_INVALID_ACCESS_REQUEST TCG_INVALID_ACCESS_REQUEST
+#define TPM_TRANSFER_ABORT TCG_TRANSFER_ABORT
+#define TPM_GENERAL_ERROR TCG_GENERAL_ERROR
+
+int vtpm4hvm_setup(void);
+
+#endif /* TPM_DRIVERS_H */
--
1.8.1.2
^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-10 12:16 ` Quan Xu
` (2 preceding siblings ...)
(?)
@ 2015-03-11 19:49 ` Kevin O'Connor
2015-03-12 2:54 ` Xu, Quan
2015-03-12 2:54 ` [Qemu-devel] " Xu, Quan
-1 siblings, 2 replies; 30+ messages in thread
From: Kevin O'Connor @ 2015-03-11 19:49 UTC (permalink / raw)
To: Quan Xu, seabios; +Cc: stefanb, xen-devel, qemu-devel, stefano.stabellini
On Tue, Mar 10, 2015 at 08:16:03AM -0400, Quan Xu wrote:
> This patch series are only the SeaBios part to enable stubdom vTPM for HVM
> virtual machine. It will work with Qemu patch series and Xen patch series.
>
> ========================
> *INTRODUCTION*
> ========================
> The goal of virtual Trusted Platform Module (vTPM) is to provide a TPM functionality
> to virtual machines (Fedora, Ubuntu, Redhat, Windows .etc). This allows programs
> to interact with a TPM in a virtual machine the same way they interact with a TPM
> on the physical system. Each virtual machine gets its own unique, emulated, software
> TPM. Each major component of vTPM is implemented as a stubdom, providing secure
> separation guaranteed by the hypervisor.
>
> The vTPM stubdom is a Xen mini-OS domain that emulates a TPM for the virtual machine
> to use. It is a small wrapper around the Berlios TPM emulator. TPM commands are passed
> from mini-os TPM backend driver.
Thanks. Does this seabios patch require additional seabios patches
before it is useful? Does it depend on upstream patches in Xen/QEMU
that are not yet committed?
-Kevin
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-10 12:16 ` Quan Xu
` (3 preceding siblings ...)
(?)
@ 2015-03-11 19:49 ` Kevin O'Connor
-1 siblings, 0 replies; 30+ messages in thread
From: Kevin O'Connor @ 2015-03-11 19:49 UTC (permalink / raw)
To: Quan Xu, seabios; +Cc: stefanb, xen-devel, qemu-devel, stefano.stabellini
On Tue, Mar 10, 2015 at 08:16:03AM -0400, Quan Xu wrote:
> This patch series are only the SeaBios part to enable stubdom vTPM for HVM
> virtual machine. It will work with Qemu patch series and Xen patch series.
>
> ========================
> *INTRODUCTION*
> ========================
> The goal of virtual Trusted Platform Module (vTPM) is to provide a TPM functionality
> to virtual machines (Fedora, Ubuntu, Redhat, Windows .etc). This allows programs
> to interact with a TPM in a virtual machine the same way they interact with a TPM
> on the physical system. Each virtual machine gets its own unique, emulated, software
> TPM. Each major component of vTPM is implemented as a stubdom, providing secure
> separation guaranteed by the hypervisor.
>
> The vTPM stubdom is a Xen mini-OS domain that emulates a TPM for the virtual machine
> to use. It is a small wrapper around the Berlios TPM emulator. TPM commands are passed
> from mini-os TPM backend driver.
Thanks. Does this seabios patch require additional seabios patches
before it is useful? Does it depend on upstream patches in Xen/QEMU
that are not yet committed?
-Kevin
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-11 19:49 ` [Qemu-devel] " Kevin O'Connor
2015-03-12 2:54 ` Xu, Quan
@ 2015-03-12 2:54 ` Xu, Quan
1 sibling, 0 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-12 2:54 UTC (permalink / raw)
To: Kevin O'Connor, seabios
Cc: stefanb, xen-devel, qemu-devel, stefano.stabellini
> -----Original Message-----
> From: Kevin O'Connor [mailto:kevin@koconnor.net]
> Sent: Thursday, March 12, 2015 3:49 AM
> To: Xu, Quan; seabios@seabios.org
> Cc: stefano.stabellini@eu.citrix.com; stefanb@linux.vnet.ibm.com;
> qemu-devel@nongnu.org; xen-devel@lists.xen.org
> Subject: Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual
> machine
>
> On Tue, Mar 10, 2015 at 08:16:03AM -0400, Quan Xu wrote:
> > This patch series are only the SeaBios part to enable stubdom vTPM for
> > HVM virtual machine. It will work with Qemu patch series and Xen patch series.
> >
> > ========================
> > *INTRODUCTION*
> > ========================
> > The goal of virtual Trusted Platform Module (vTPM) is to provide a TPM
> > functionality to virtual machines (Fedora, Ubuntu, Redhat, Windows
> > .etc). This allows programs to interact with a TPM in a virtual
> > machine the same way they interact with a TPM on the physical system.
> > Each virtual machine gets its own unique, emulated, software TPM. Each
> > major component of vTPM is implemented as a stubdom, providing secure
> separation guaranteed by the hypervisor.
> >
> > The vTPM stubdom is a Xen mini-OS domain that emulates a TPM for the
> > virtual machine to use. It is a small wrapper around the Berlios TPM
> > emulator. TPM commands are passed from mini-os TPM backend driver.
>
> Thanks. Does this seabios patch require additional seabios patches before it is
> useful? Does it depend on upstream patches in Xen/QEMU that are not yet
> committed?
>
> -Kevin
Kevin,
Thanks for your reply.
It doesn't require additional seabios patches before it is useful. These patches
Should work with:
[PATCH v3 0/7] vTPM: Xen stubdom vTPM for HVM virtual machine --(Xen patch)
[PATCH v4 0/5] QEMU:Xen stubdom vTPM for HVM virtual machine --(Qemu patch)
I have committed but not upstream. I will forward them to you at next thread.
Thanks
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-11 19:49 ` [Qemu-devel] " Kevin O'Connor
@ 2015-03-12 2:54 ` Xu, Quan
2015-03-12 2:54 ` [Qemu-devel] " Xu, Quan
1 sibling, 0 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-12 2:54 UTC (permalink / raw)
To: Kevin O'Connor, seabios
Cc: stefanb, xen-devel, qemu-devel, stefano.stabellini
> -----Original Message-----
> From: Kevin O'Connor [mailto:kevin@koconnor.net]
> Sent: Thursday, March 12, 2015 3:49 AM
> To: Xu, Quan; seabios@seabios.org
> Cc: stefano.stabellini@eu.citrix.com; stefanb@linux.vnet.ibm.com;
> qemu-devel@nongnu.org; xen-devel@lists.xen.org
> Subject: Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual
> machine
>
> On Tue, Mar 10, 2015 at 08:16:03AM -0400, Quan Xu wrote:
> > This patch series are only the SeaBios part to enable stubdom vTPM for
> > HVM virtual machine. It will work with Qemu patch series and Xen patch series.
> >
> > ========================
> > *INTRODUCTION*
> > ========================
> > The goal of virtual Trusted Platform Module (vTPM) is to provide a TPM
> > functionality to virtual machines (Fedora, Ubuntu, Redhat, Windows
> > .etc). This allows programs to interact with a TPM in a virtual
> > machine the same way they interact with a TPM on the physical system.
> > Each virtual machine gets its own unique, emulated, software TPM. Each
> > major component of vTPM is implemented as a stubdom, providing secure
> separation guaranteed by the hypervisor.
> >
> > The vTPM stubdom is a Xen mini-OS domain that emulates a TPM for the
> > virtual machine to use. It is a small wrapper around the Berlios TPM
> > emulator. TPM commands are passed from mini-os TPM backend driver.
>
> Thanks. Does this seabios patch require additional seabios patches before it is
> useful? Does it depend on upstream patches in Xen/QEMU that are not yet
> committed?
>
> -Kevin
Kevin,
Thanks for your reply.
It doesn't require additional seabios patches before it is useful. These patches
Should work with:
[PATCH v3 0/7] vTPM: Xen stubdom vTPM for HVM virtual machine --(Xen patch)
[PATCH v4 0/5] QEMU:Xen stubdom vTPM for HVM virtual machine --(Qemu patch)
I have committed but not upstream. I will forward them to you at next thread.
Thanks
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-10 12:16 ` [Qemu-devel] " Quan Xu
@ 2015-03-19 12:56 ` Ian Campbell
2015-03-20 1:35 ` Xu, Quan
` (3 more replies)
2015-03-19 12:56 ` Ian Campbell
1 sibling, 4 replies; 30+ messages in thread
From: Ian Campbell @ 2015-03-19 12:56 UTC (permalink / raw)
To: Quan Xu; +Cc: kevin, xen-devel, qemu-devel, stefano.stabellini, stefanb
On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> esp_scsi_setup();
> megasas_setup();
> pvscsi_setup();
> + if (runningOnXen())
> + vtpm4hvm_setup();
Is there anything which is actually Xen specific about the driver in
tpm.[ch]? Would it be better to just probe for it, perhaps gates by a
Kconfig option which enables TPM support.
And following that train of thought I think you could reasonable drop
"4hvm" from the name. And possibly even the leading "v", since I suppose
seabios shouldn't really care if the tpm is emulated or real so long as
it looks like a real tpm.
Ian.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-10 12:16 ` [Qemu-devel] " Quan Xu
2015-03-19 12:56 ` [Qemu-devel] [Xen-devel] " Ian Campbell
@ 2015-03-19 12:56 ` Ian Campbell
1 sibling, 0 replies; 30+ messages in thread
From: Ian Campbell @ 2015-03-19 12:56 UTC (permalink / raw)
To: Quan Xu; +Cc: kevin, xen-devel, qemu-devel, stefano.stabellini, stefanb
On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> esp_scsi_setup();
> megasas_setup();
> pvscsi_setup();
> + if (runningOnXen())
> + vtpm4hvm_setup();
Is there anything which is actually Xen specific about the driver in
tpm.[ch]? Would it be better to just probe for it, perhaps gates by a
Kconfig option which enables TPM support.
And following that train of thought I think you could reasonable drop
"4hvm" from the name. And possibly even the leading "v", since I suppose
seabios shouldn't really care if the tpm is emulated or real so long as
it looks like a real tpm.
Ian.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-19 12:56 ` [Qemu-devel] [Xen-devel] " Ian Campbell
2015-03-20 1:35 ` Xu, Quan
@ 2015-03-20 1:35 ` Xu, Quan
2015-03-20 12:00 ` Stefan Berger
2015-03-20 12:00 ` Stefan Berger
2015-03-20 11:43 ` [Qemu-devel] [Xen-devel] " Stefan Berger
2015-03-20 11:43 ` Stefan Berger
3 siblings, 2 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-20 1:35 UTC (permalink / raw)
To: Ian Campbell; +Cc: kevin, xen-devel, qemu-devel, stefano.stabellini, stefanb
> -----Original Message-----
> From: Ian Campbell [mailto:ian.campbell@citrix.com]
> Sent: Thursday, March 19, 2015 8:57 PM
> To: Xu, Quan
> Cc: kevin@koconnor.net; stefanb@linux.vnet.ibm.com; xen-devel@lists.xen.org;
> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
> HVM virtual machine
>
> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> > @@ -151,6 +152,8 @@ device_hardware_setup(void)
> > esp_scsi_setup();
> > megasas_setup();
> > pvscsi_setup();
> > + if (runningOnXen())
> > + vtpm4hvm_setup();
>
> Is there anything which is actually Xen specific about the driver in tpm.[ch]?
> Would it be better to just probe for it, perhaps gates by a Kconfig option which
> enables TPM support.
>
> And following that train of thought I think you could reasonable drop "4hvm"
> from the name. And possibly even the leading "v", since I suppose seabios
> shouldn't really care if the tpm is emulated or real so long as it looks like a real
> tpm.
>
> Ian.
Thanks for your review. Make sense.
Quan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-19 12:56 ` [Qemu-devel] [Xen-devel] " Ian Campbell
@ 2015-03-20 1:35 ` Xu, Quan
2015-03-20 1:35 ` [Qemu-devel] [Xen-devel] " Xu, Quan
` (2 subsequent siblings)
3 siblings, 0 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-20 1:35 UTC (permalink / raw)
To: Ian Campbell; +Cc: kevin, xen-devel, qemu-devel, stefano.stabellini, stefanb
> -----Original Message-----
> From: Ian Campbell [mailto:ian.campbell@citrix.com]
> Sent: Thursday, March 19, 2015 8:57 PM
> To: Xu, Quan
> Cc: kevin@koconnor.net; stefanb@linux.vnet.ibm.com; xen-devel@lists.xen.org;
> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
> HVM virtual machine
>
> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> > @@ -151,6 +152,8 @@ device_hardware_setup(void)
> > esp_scsi_setup();
> > megasas_setup();
> > pvscsi_setup();
> > + if (runningOnXen())
> > + vtpm4hvm_setup();
>
> Is there anything which is actually Xen specific about the driver in tpm.[ch]?
> Would it be better to just probe for it, perhaps gates by a Kconfig option which
> enables TPM support.
>
> And following that train of thought I think you could reasonable drop "4hvm"
> from the name. And possibly even the leading "v", since I suppose seabios
> shouldn't really care if the tpm is emulated or real so long as it looks like a real
> tpm.
>
> Ian.
Thanks for your review. Make sense.
Quan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-19 12:56 ` [Qemu-devel] [Xen-devel] " Ian Campbell
2015-03-20 1:35 ` Xu, Quan
2015-03-20 1:35 ` [Qemu-devel] [Xen-devel] " Xu, Quan
@ 2015-03-20 11:43 ` Stefan Berger
2015-03-23 1:47 ` Xu, Quan
2015-03-23 1:47 ` [Qemu-devel] [Xen-devel] " Xu, Quan
2015-03-20 11:43 ` Stefan Berger
3 siblings, 2 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-20 11:43 UTC (permalink / raw)
To: Ian Campbell, Quan Xu; +Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
On 03/19/2015 08:56 AM, Ian Campbell wrote:
> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>> esp_scsi_setup();
>> megasas_setup();
>> pvscsi_setup();
>> + if (runningOnXen())
>> + vtpm4hvm_setup();
> Is there anything which is actually Xen specific about the driver in
> tpm.[ch]? Would it be better to just probe for it, perhaps gates by a
> Kconfig option which enables TPM support.
I also think the probing should be done. That code can also be recycled
from what I posted earlier. It's gated by a Kconfig option, so it
doesn't fill up the 128k ROM.
Stefan
>
> And following that train of thought I think you could reasonable drop
> "4hvm" from the name. And possibly even the leading "v", since I suppose
> seabios shouldn't really care if the tpm is emulated or real so long as
> it looks like a real tpm.
>
> Ian.
>
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-19 12:56 ` [Qemu-devel] [Xen-devel] " Ian Campbell
` (2 preceding siblings ...)
2015-03-20 11:43 ` [Qemu-devel] [Xen-devel] " Stefan Berger
@ 2015-03-20 11:43 ` Stefan Berger
3 siblings, 0 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-20 11:43 UTC (permalink / raw)
To: Ian Campbell, Quan Xu; +Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
On 03/19/2015 08:56 AM, Ian Campbell wrote:
> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>> esp_scsi_setup();
>> megasas_setup();
>> pvscsi_setup();
>> + if (runningOnXen())
>> + vtpm4hvm_setup();
> Is there anything which is actually Xen specific about the driver in
> tpm.[ch]? Would it be better to just probe for it, perhaps gates by a
> Kconfig option which enables TPM support.
I also think the probing should be done. That code can also be recycled
from what I posted earlier. It's gated by a Kconfig option, so it
doesn't fill up the 128k ROM.
Stefan
>
> And following that train of thought I think you could reasonable drop
> "4hvm" from the name. And possibly even the leading "v", since I suppose
> seabios shouldn't really care if the tpm is emulated or real so long as
> it looks like a real tpm.
>
> Ian.
>
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-20 1:35 ` [Qemu-devel] [Xen-devel] " Xu, Quan
@ 2015-03-20 12:00 ` Stefan Berger
2015-03-20 12:00 ` Stefan Berger
1 sibling, 0 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-20 12:00 UTC (permalink / raw)
To: Xu, Quan, Ian Campbell; +Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
On 03/19/2015 09:35 PM, Xu, Quan wrote:
>
>> -----Original Message-----
>> From: Ian Campbell [mailto:ian.campbell@citrix.com]
>> Sent: Thursday, March 19, 2015 8:57 PM
>> To: Xu, Quan
>> Cc: kevin@koconnor.net; stefanb@linux.vnet.ibm.com; xen-devel@lists.xen.org;
>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
>> HVM virtual machine
>>
>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>>> esp_scsi_setup();
>>> megasas_setup();
>>> pvscsi_setup();
>>> + if (runningOnXen())
>>> + vtpm4hvm_setup();
>> Is there anything which is actually Xen specific about the driver in tpm.[ch]?
>> Would it be better to just probe for it, perhaps gates by a Kconfig option which
>> enables TPM support.
>>
>> And following that train of thought I think you could reasonable drop "4hvm"
>> from the name. And possibly even the leading "v", since I suppose seabios
>> shouldn't really care if the tpm is emulated or real so long as it looks like a real
>> tpm.
>>
>> Ian.
> Thanks for your review. Make sense.
>
> Quan
From previously posted patches you should be able to take 1/8 with the
driver:
http://www.seabios.org/pipermail/seabios/2014-July/008179.html
2/8 added ACPI support, but this is not necessary; it contained the
probing parts, which could be merged into 1.
3/8 was doing TPM initialization, so that should be recyclable as well:
http://www.seabios.org/pipermail/seabios/2014-July/008180.html
I have a set of patches that removes the ACPI part in 2/8, though didn't
post it.
Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-20 1:35 ` [Qemu-devel] [Xen-devel] " Xu, Quan
2015-03-20 12:00 ` Stefan Berger
@ 2015-03-20 12:00 ` Stefan Berger
1 sibling, 0 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-20 12:00 UTC (permalink / raw)
To: Xu, Quan, Ian Campbell; +Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
On 03/19/2015 09:35 PM, Xu, Quan wrote:
>
>> -----Original Message-----
>> From: Ian Campbell [mailto:ian.campbell@citrix.com]
>> Sent: Thursday, March 19, 2015 8:57 PM
>> To: Xu, Quan
>> Cc: kevin@koconnor.net; stefanb@linux.vnet.ibm.com; xen-devel@lists.xen.org;
>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
>> HVM virtual machine
>>
>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>>> esp_scsi_setup();
>>> megasas_setup();
>>> pvscsi_setup();
>>> + if (runningOnXen())
>>> + vtpm4hvm_setup();
>> Is there anything which is actually Xen specific about the driver in tpm.[ch]?
>> Would it be better to just probe for it, perhaps gates by a Kconfig option which
>> enables TPM support.
>>
>> And following that train of thought I think you could reasonable drop "4hvm"
>> from the name. And possibly even the leading "v", since I suppose seabios
>> shouldn't really care if the tpm is emulated or real so long as it looks like a real
>> tpm.
>>
>> Ian.
> Thanks for your review. Make sense.
>
> Quan
From previously posted patches you should be able to take 1/8 with the
driver:
http://www.seabios.org/pipermail/seabios/2014-July/008179.html
2/8 added ACPI support, but this is not necessary; it contained the
probing parts, which could be merged into 1.
3/8 was doing TPM initialization, so that should be recyclable as well:
http://www.seabios.org/pipermail/seabios/2014-July/008180.html
I have a set of patches that removes the ACPI part in 2/8, though didn't
post it.
Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-20 11:43 ` [Qemu-devel] [Xen-devel] " Stefan Berger
2015-03-23 1:47 ` Xu, Quan
@ 2015-03-23 1:47 ` Xu, Quan
2015-03-23 10:57 ` Stefan Berger
2015-03-23 10:57 ` Stefan Berger
1 sibling, 2 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-23 1:47 UTC (permalink / raw)
To: Stefan Berger, Ian Campbell
Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
> -----Original Message-----
> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> Sent: Friday, March 20, 2015 7:44 PM
> To: Ian Campbell; Xu, Quan
> Cc: kevin@koconnor.net; xen-devel@lists.xen.org; qemu-devel@nongnu.org;
> stefano.stabellini@eu.citrix.com
> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
> HVM virtual machine
>
> On 03/19/2015 08:56 AM, Ian Campbell wrote:
> > On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> >> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> >> esp_scsi_setup();
> >> megasas_setup();
> >> pvscsi_setup();
> >> + if (runningOnXen())
> >> + vtpm4hvm_setup();
> > Is there anything which is actually Xen specific about the driver in
> > tpm.[ch]? Would it be better to just probe for it, perhaps gates by a
> > Kconfig option which enables TPM support.
>
> I also think the probing should be done. That code can also be recycled from what
> I posted earlier. It's gated by a Kconfig option, so it doesn't fill up the 128k ROM.
>
> Stefan
>
Agree, I will do it ASAP.
Quan
> >
> > And following that train of thought I think you could reasonable drop
> > "4hvm" from the name. And possibly even the leading "v", since I
> > suppose seabios shouldn't really care if the tpm is emulated or real
> > so long as it looks like a real tpm.
> >
> > Ian.
> >
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-20 11:43 ` [Qemu-devel] [Xen-devel] " Stefan Berger
@ 2015-03-23 1:47 ` Xu, Quan
2015-03-23 1:47 ` [Qemu-devel] [Xen-devel] " Xu, Quan
1 sibling, 0 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-23 1:47 UTC (permalink / raw)
To: Stefan Berger, Ian Campbell
Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
> -----Original Message-----
> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> Sent: Friday, March 20, 2015 7:44 PM
> To: Ian Campbell; Xu, Quan
> Cc: kevin@koconnor.net; xen-devel@lists.xen.org; qemu-devel@nongnu.org;
> stefano.stabellini@eu.citrix.com
> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
> HVM virtual machine
>
> On 03/19/2015 08:56 AM, Ian Campbell wrote:
> > On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> >> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> >> esp_scsi_setup();
> >> megasas_setup();
> >> pvscsi_setup();
> >> + if (runningOnXen())
> >> + vtpm4hvm_setup();
> > Is there anything which is actually Xen specific about the driver in
> > tpm.[ch]? Would it be better to just probe for it, perhaps gates by a
> > Kconfig option which enables TPM support.
>
> I also think the probing should be done. That code can also be recycled from what
> I posted earlier. It's gated by a Kconfig option, so it doesn't fill up the 128k ROM.
>
> Stefan
>
Agree, I will do it ASAP.
Quan
> >
> > And following that train of thought I think you could reasonable drop
> > "4hvm" from the name. And possibly even the leading "v", since I
> > suppose seabios shouldn't really care if the tpm is emulated or real
> > so long as it looks like a real tpm.
> >
> > Ian.
> >
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-23 1:47 ` [Qemu-devel] [Xen-devel] " Xu, Quan
@ 2015-03-23 10:57 ` Stefan Berger
2015-03-23 12:03 ` Xu, Quan
2015-03-23 12:03 ` [Qemu-devel] [Xen-devel] " Xu, Quan
2015-03-23 10:57 ` Stefan Berger
1 sibling, 2 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-23 10:57 UTC (permalink / raw)
To: Xu, Quan, Ian Campbell; +Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
On 03/22/2015 09:47 PM, Xu, Quan wrote:
>
>> -----Original Message-----
>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>> Sent: Friday, March 20, 2015 7:44 PM
>> To: Ian Campbell; Xu, Quan
>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org; qemu-devel@nongnu.org;
>> stefano.stabellini@eu.citrix.com
>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
>> HVM virtual machine
>>
>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>>>> esp_scsi_setup();
>>>> megasas_setup();
>>>> pvscsi_setup();
>>>> + if (runningOnXen())
>>>> + vtpm4hvm_setup();
>>> Is there anything which is actually Xen specific about the driver in
>>> tpm.[ch]? Would it be better to just probe for it, perhaps gates by a
>>> Kconfig option which enables TPM support.
>> I also think the probing should be done. That code can also be recycled from what
>> I posted earlier. It's gated by a Kconfig option, so it doesn't fill up the 128k ROM.
>>
>> Stefan
>>
> Agree, I will do it ASAP.
I reposted v9 of my series of patches. I will probably post v10 today.
Please try that one then since these patches should cover Xen, QEMU
(using a driver that only I can test at the moment), and to some extent
bare metal system.
Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-23 1:47 ` [Qemu-devel] [Xen-devel] " Xu, Quan
2015-03-23 10:57 ` Stefan Berger
@ 2015-03-23 10:57 ` Stefan Berger
1 sibling, 0 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-23 10:57 UTC (permalink / raw)
To: Xu, Quan, Ian Campbell; +Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
On 03/22/2015 09:47 PM, Xu, Quan wrote:
>
>> -----Original Message-----
>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>> Sent: Friday, March 20, 2015 7:44 PM
>> To: Ian Campbell; Xu, Quan
>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org; qemu-devel@nongnu.org;
>> stefano.stabellini@eu.citrix.com
>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
>> HVM virtual machine
>>
>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>>>> esp_scsi_setup();
>>>> megasas_setup();
>>>> pvscsi_setup();
>>>> + if (runningOnXen())
>>>> + vtpm4hvm_setup();
>>> Is there anything which is actually Xen specific about the driver in
>>> tpm.[ch]? Would it be better to just probe for it, perhaps gates by a
>>> Kconfig option which enables TPM support.
>> I also think the probing should be done. That code can also be recycled from what
>> I posted earlier. It's gated by a Kconfig option, so it doesn't fill up the 128k ROM.
>>
>> Stefan
>>
> Agree, I will do it ASAP.
I reposted v9 of my series of patches. I will probably post v10 today.
Please try that one then since these patches should cover Xen, QEMU
(using a driver that only I can test at the moment), and to some extent
bare metal system.
Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-23 10:57 ` Stefan Berger
2015-03-23 12:03 ` Xu, Quan
@ 2015-03-23 12:03 ` Xu, Quan
2015-03-23 20:00 ` [Qemu-devel] " Stefan Berger
2015-03-23 20:00 ` [Qemu-devel] [Xen-devel] " Stefan Berger
1 sibling, 2 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-23 12:03 UTC (permalink / raw)
To: Stefan Berger, Ian Campbell
Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
> -----Original Message-----
> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> Sent: Monday, March 23, 2015 6:57 PM
> To: Xu, Quan; Ian Campbell
> Cc: kevin@koconnor.net; xen-devel@lists.xen.org; qemu-devel@nongnu.org;
> stefano.stabellini@eu.citrix.com
> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
> HVM virtual machine
>
> On 03/22/2015 09:47 PM, Xu, Quan wrote:
> >
> >> -----Original Message-----
> >> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >> Sent: Friday, March 20, 2015 7:44 PM
> >> To: Ian Campbell; Xu, Quan
> >> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >> vTPM for HVM virtual machine
> >>
> >> On 03/19/2015 08:56 AM, Ian Campbell wrote:
> >>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> >>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> >>>> esp_scsi_setup();
> >>>> megasas_setup();
> >>>> pvscsi_setup();
> >>>> + if (runningOnXen())
> >>>> + vtpm4hvm_setup();
> >>> Is there anything which is actually Xen specific about the driver in
> >>> tpm.[ch]? Would it be better to just probe for it, perhaps gates by
> >>> a Kconfig option which enables TPM support.
> >> I also think the probing should be done. That code can also be
> >> recycled from what I posted earlier. It's gated by a Kconfig option, so it doesn't
> fill up the 128k ROM.
> >>
> >> Stefan
> >>
> > Agree, I will do it ASAP.
>
> I reposted v9 of my series of patches. I will probably post v10 today.
> Please try that one then since these patches should cover Xen, QEMU (using a
> driver that only I can test at the moment), and to some extent bare metal
> system.
>
>
> Stefan
>
Great! Could you also archive v10 to your github?
then I can also test it and go through these source code.
Quan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-23 10:57 ` Stefan Berger
@ 2015-03-23 12:03 ` Xu, Quan
2015-03-23 12:03 ` [Qemu-devel] [Xen-devel] " Xu, Quan
1 sibling, 0 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-23 12:03 UTC (permalink / raw)
To: Stefan Berger, Ian Campbell
Cc: kevin, qemu-devel, stefano.stabellini, xen-devel
> -----Original Message-----
> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> Sent: Monday, March 23, 2015 6:57 PM
> To: Xu, Quan; Ian Campbell
> Cc: kevin@koconnor.net; xen-devel@lists.xen.org; qemu-devel@nongnu.org;
> stefano.stabellini@eu.citrix.com
> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
> HVM virtual machine
>
> On 03/22/2015 09:47 PM, Xu, Quan wrote:
> >
> >> -----Original Message-----
> >> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >> Sent: Friday, March 20, 2015 7:44 PM
> >> To: Ian Campbell; Xu, Quan
> >> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >> vTPM for HVM virtual machine
> >>
> >> On 03/19/2015 08:56 AM, Ian Campbell wrote:
> >>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> >>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> >>>> esp_scsi_setup();
> >>>> megasas_setup();
> >>>> pvscsi_setup();
> >>>> + if (runningOnXen())
> >>>> + vtpm4hvm_setup();
> >>> Is there anything which is actually Xen specific about the driver in
> >>> tpm.[ch]? Would it be better to just probe for it, perhaps gates by
> >>> a Kconfig option which enables TPM support.
> >> I also think the probing should be done. That code can also be
> >> recycled from what I posted earlier. It's gated by a Kconfig option, so it doesn't
> fill up the 128k ROM.
> >>
> >> Stefan
> >>
> > Agree, I will do it ASAP.
>
> I reposted v9 of my series of patches. I will probably post v10 today.
> Please try that one then since these patches should cover Xen, QEMU (using a
> driver that only I can test at the moment), and to some extent bare metal
> system.
>
>
> Stefan
>
Great! Could you also archive v10 to your github?
then I can also test it and go through these source code.
Quan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-23 12:03 ` [Qemu-devel] [Xen-devel] " Xu, Quan
2015-03-23 20:00 ` [Qemu-devel] " Stefan Berger
@ 2015-03-23 20:00 ` Stefan Berger
2015-03-24 2:20 ` Xu, Quan
2015-03-24 2:20 ` Xu, Quan
1 sibling, 2 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-23 20:00 UTC (permalink / raw)
To: Xu, Quan, Ian Campbell; +Cc: kevin, xen-devel, qemu-devel, stefano.stabellini
On 03/23/2015 08:03 AM, Xu, Quan wrote:
>
>> -----Original Message-----
>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>> Sent: Monday, March 23, 2015 6:57 PM
>> To: Xu, Quan; Ian Campbell
>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org; qemu-devel@nongnu.org;
>> stefano.stabellini@eu.citrix.com
>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
>> HVM virtual machine
>>
>> On 03/22/2015 09:47 PM, Xu, Quan wrote:
>>>> -----Original Message-----
>>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>>>> Sent: Friday, March 20, 2015 7:44 PM
>>>> To: Ian Campbell; Xu, Quan
>>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
>>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
>>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
>>>> vTPM for HVM virtual machine
>>>>
>>>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
>>>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>>>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>>>>>> esp_scsi_setup();
>>>>>> megasas_setup();
>>>>>> pvscsi_setup();
>>>>>> + if (runningOnXen())
>>>>>> + vtpm4hvm_setup();
>>>>> Is there anything which is actually Xen specific about the driver in
>>>>> tpm.[ch]? Would it be better to just probe for it, perhaps gates by
>>>>> a Kconfig option which enables TPM support.
>>>> I also think the probing should be done. That code can also be
>>>> recycled from what I posted earlier. It's gated by a Kconfig option, so it doesn't
>> fill up the 128k ROM.
>>>> Stefan
>>>>
>>> Agree, I will do it ASAP.
>> I reposted v9 of my series of patches. I will probably post v10 today.
>> Please try that one then since these patches should cover Xen, QEMU (using a
>> driver that only I can test at the moment), and to some extent bare metal
>> system.
>>
>>
>> Stefan
>>
> Great! Could you also archive v10 to your github?
> then I can also test it and go through these source code.
I put it here now:
https://github.com/stefanberger/seabios-tpm
Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-23 12:03 ` [Qemu-devel] [Xen-devel] " Xu, Quan
@ 2015-03-23 20:00 ` Stefan Berger
2015-03-23 20:00 ` [Qemu-devel] [Xen-devel] " Stefan Berger
1 sibling, 0 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-23 20:00 UTC (permalink / raw)
To: Xu, Quan, Ian Campbell; +Cc: kevin, xen-devel, qemu-devel, stefano.stabellini
On 03/23/2015 08:03 AM, Xu, Quan wrote:
>
>> -----Original Message-----
>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>> Sent: Monday, March 23, 2015 6:57 PM
>> To: Xu, Quan; Ian Campbell
>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org; qemu-devel@nongnu.org;
>> stefano.stabellini@eu.citrix.com
>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for
>> HVM virtual machine
>>
>> On 03/22/2015 09:47 PM, Xu, Quan wrote:
>>>> -----Original Message-----
>>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>>>> Sent: Friday, March 20, 2015 7:44 PM
>>>> To: Ian Campbell; Xu, Quan
>>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
>>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
>>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
>>>> vTPM for HVM virtual machine
>>>>
>>>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
>>>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>>>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>>>>>> esp_scsi_setup();
>>>>>> megasas_setup();
>>>>>> pvscsi_setup();
>>>>>> + if (runningOnXen())
>>>>>> + vtpm4hvm_setup();
>>>>> Is there anything which is actually Xen specific about the driver in
>>>>> tpm.[ch]? Would it be better to just probe for it, perhaps gates by
>>>>> a Kconfig option which enables TPM support.
>>>> I also think the probing should be done. That code can also be
>>>> recycled from what I posted earlier. It's gated by a Kconfig option, so it doesn't
>> fill up the 128k ROM.
>>>> Stefan
>>>>
>>> Agree, I will do it ASAP.
>> I reposted v9 of my series of patches. I will probably post v10 today.
>> Please try that one then since these patches should cover Xen, QEMU (using a
>> driver that only I can test at the moment), and to some extent bare metal
>> system.
>>
>>
>> Stefan
>>
> Great! Could you also archive v10 to your github?
> then I can also test it and go through these source code.
I put it here now:
https://github.com/stefanberger/seabios-tpm
Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-23 20:00 ` [Qemu-devel] [Xen-devel] " Stefan Berger
@ 2015-03-24 2:20 ` Xu, Quan
2015-03-24 15:21 ` [Qemu-devel] " Stefan Berger
2015-03-24 15:21 ` [Qemu-devel] [Xen-devel] " Stefan Berger
2015-03-24 2:20 ` Xu, Quan
1 sibling, 2 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-24 2:20 UTC (permalink / raw)
To: Stefan Berger, Ian Campbell
Cc: wei.liu2, stefano.stabellini, qemu-devel, xen-devel, kevin, Jan Beulich
> -----Original Message-----
> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> Sent: Tuesday, March 24, 2015 4:01 AM
> To: Xu, Quan; Ian Campbell
> Cc: kevin@koconnor.net; qemu-devel@nongnu.org;
> stefano.stabellini@eu.citrix.com; xen-devel@lists.xen.org
> Subject: Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen
> stubdom vTPM for HVM virtual machine
>
> On 03/23/2015 08:03 AM, Xu, Quan wrote:
> >
> >> -----Original Message-----
> >> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >> Sent: Monday, March 23, 2015 6:57 PM
> >> To: Xu, Quan; Ian Campbell
> >> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >> vTPM for HVM virtual machine
> >>
> >> On 03/22/2015 09:47 PM, Xu, Quan wrote:
> >>>> -----Original Message-----
> >>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >>>> Sent: Friday, March 20, 2015 7:44 PM
> >>>> To: Ian Campbell; Xu, Quan
> >>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >>>> vTPM for HVM virtual machine
> >>>>
> >>>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
> >>>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> >>>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> >>>>>> esp_scsi_setup();
> >>>>>> megasas_setup();
> >>>>>> pvscsi_setup();
> >>>>>> + if (runningOnXen())
> >>>>>> + vtpm4hvm_setup();
> >>>>> Is there anything which is actually Xen specific about the driver
> >>>>> in tpm.[ch]? Would it be better to just probe for it, perhaps
> >>>>> gates by a Kconfig option which enables TPM support.
> >>>> I also think the probing should be done. That code can also be
> >>>> recycled from what I posted earlier. It's gated by a Kconfig
> >>>> option, so it doesn't
> >> fill up the 128k ROM.
> >>>> Stefan
> >>>>
> >>> Agree, I will do it ASAP.
> >> I reposted v9 of my series of patches. I will probably post v10 today.
> >> Please try that one then since these patches should cover Xen, QEMU
> >> (using a driver that only I can test at the moment), and to some
> >> extent bare metal system.
> >>
> >>
> >> Stefan
> >>
> > Great! Could you also archive v10 to your github?
> > then I can also test it and go through these source code.
>
> I put it here now:
>
> https://github.com/stefanberger/seabios-tpm
>
> Stefan
Thanks.
MS windows guest VM are maybe tricky issues. In my early-stage SeaBios patch,
I deal with TPM TCPA and SSDT in SeaBios, but MS windows guest VM is blue screens(Linux guest virtual machines are working).
It works when I deal with TPM TCPA and SSDT in hvmloader for Windows guest VM.
CCed Jan/Wei.
Quan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-23 20:00 ` [Qemu-devel] [Xen-devel] " Stefan Berger
2015-03-24 2:20 ` Xu, Quan
@ 2015-03-24 2:20 ` Xu, Quan
1 sibling, 0 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-24 2:20 UTC (permalink / raw)
To: Stefan Berger, Ian Campbell
Cc: wei.liu2, stefano.stabellini, qemu-devel, xen-devel, kevin, Jan Beulich
> -----Original Message-----
> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> Sent: Tuesday, March 24, 2015 4:01 AM
> To: Xu, Quan; Ian Campbell
> Cc: kevin@koconnor.net; qemu-devel@nongnu.org;
> stefano.stabellini@eu.citrix.com; xen-devel@lists.xen.org
> Subject: Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen
> stubdom vTPM for HVM virtual machine
>
> On 03/23/2015 08:03 AM, Xu, Quan wrote:
> >
> >> -----Original Message-----
> >> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >> Sent: Monday, March 23, 2015 6:57 PM
> >> To: Xu, Quan; Ian Campbell
> >> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >> vTPM for HVM virtual machine
> >>
> >> On 03/22/2015 09:47 PM, Xu, Quan wrote:
> >>>> -----Original Message-----
> >>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >>>> Sent: Friday, March 20, 2015 7:44 PM
> >>>> To: Ian Campbell; Xu, Quan
> >>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >>>> vTPM for HVM virtual machine
> >>>>
> >>>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
> >>>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> >>>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> >>>>>> esp_scsi_setup();
> >>>>>> megasas_setup();
> >>>>>> pvscsi_setup();
> >>>>>> + if (runningOnXen())
> >>>>>> + vtpm4hvm_setup();
> >>>>> Is there anything which is actually Xen specific about the driver
> >>>>> in tpm.[ch]? Would it be better to just probe for it, perhaps
> >>>>> gates by a Kconfig option which enables TPM support.
> >>>> I also think the probing should be done. That code can also be
> >>>> recycled from what I posted earlier. It's gated by a Kconfig
> >>>> option, so it doesn't
> >> fill up the 128k ROM.
> >>>> Stefan
> >>>>
> >>> Agree, I will do it ASAP.
> >> I reposted v9 of my series of patches. I will probably post v10 today.
> >> Please try that one then since these patches should cover Xen, QEMU
> >> (using a driver that only I can test at the moment), and to some
> >> extent bare metal system.
> >>
> >>
> >> Stefan
> >>
> > Great! Could you also archive v10 to your github?
> > then I can also test it and go through these source code.
>
> I put it here now:
>
> https://github.com/stefanberger/seabios-tpm
>
> Stefan
Thanks.
MS windows guest VM are maybe tricky issues. In my early-stage SeaBios patch,
I deal with TPM TCPA and SSDT in SeaBios, but MS windows guest VM is blue screens(Linux guest virtual machines are working).
It works when I deal with TPM TCPA and SSDT in hvmloader for Windows guest VM.
CCed Jan/Wei.
Quan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-24 2:20 ` Xu, Quan
2015-03-24 15:21 ` [Qemu-devel] " Stefan Berger
@ 2015-03-24 15:21 ` Stefan Berger
2015-03-25 1:51 ` Xu, Quan
2015-03-25 1:51 ` [Qemu-devel] " Xu, Quan
1 sibling, 2 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-24 15:21 UTC (permalink / raw)
To: Xu, Quan, Ian Campbell
Cc: wei.liu2, stefano.stabellini, qemu-devel, xen-devel, kevin, Jan Beulich
On 03/23/2015 10:20 PM, Xu, Quan wrote:
>
>> -----Original Message-----
>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>> Sent: Tuesday, March 24, 2015 4:01 AM
>> To: Xu, Quan; Ian Campbell
>> Cc: kevin@koconnor.net; qemu-devel@nongnu.org;
>> stefano.stabellini@eu.citrix.com; xen-devel@lists.xen.org
>> Subject: Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen
>> stubdom vTPM for HVM virtual machine
>>
>> On 03/23/2015 08:03 AM, Xu, Quan wrote:
>>>> -----Original Message-----
>>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>>>> Sent: Monday, March 23, 2015 6:57 PM
>>>> To: Xu, Quan; Ian Campbell
>>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
>>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
>>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
>>>> vTPM for HVM virtual machine
>>>>
>>>> On 03/22/2015 09:47 PM, Xu, Quan wrote:
>>>>>> -----Original Message-----
>>>>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>>>>>> Sent: Friday, March 20, 2015 7:44 PM
>>>>>> To: Ian Campbell; Xu, Quan
>>>>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
>>>>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
>>>>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
>>>>>> vTPM for HVM virtual machine
>>>>>>
>>>>>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
>>>>>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>>>>>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>>>>>>>> esp_scsi_setup();
>>>>>>>> megasas_setup();
>>>>>>>> pvscsi_setup();
>>>>>>>> + if (runningOnXen())
>>>>>>>> + vtpm4hvm_setup();
>>>>>>> Is there anything which is actually Xen specific about the driver
>>>>>>> in tpm.[ch]? Would it be better to just probe for it, perhaps
>>>>>>> gates by a Kconfig option which enables TPM support.
>>>>>> I also think the probing should be done. That code can also be
>>>>>> recycled from what I posted earlier. It's gated by a Kconfig
>>>>>> option, so it doesn't
>>>> fill up the 128k ROM.
>>>>>> Stefan
>>>>>>
>>>>> Agree, I will do it ASAP.
>>>> I reposted v9 of my series of patches. I will probably post v10 today.
>>>> Please try that one then since these patches should cover Xen, QEMU
>>>> (using a driver that only I can test at the moment), and to some
>>>> extent bare metal system.
>>>>
>>>>
>>>> Stefan
>>>>
>>> Great! Could you also archive v10 to your github?
>>> then I can also test it and go through these source code.
>> I put it here now:
>>
>> https://github.com/stefanberger/seabios-tpm
>>
>> Stefan
> Thanks.
> MS windows guest VM are maybe tricky issues. In my early-stage SeaBios patch,
> I deal with TPM TCPA and SSDT in SeaBios, but MS windows guest VM is blue screens(Linux guest virtual machines are working).
> It works when I deal with TPM TCPA and SSDT in hvmloader for Windows guest VM.
Can you be a bit more specific as to what gets it to work or which
modifications you have to make in SeaBIOS to make it work?
Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-24 2:20 ` Xu, Quan
@ 2015-03-24 15:21 ` Stefan Berger
2015-03-24 15:21 ` [Qemu-devel] [Xen-devel] " Stefan Berger
1 sibling, 0 replies; 30+ messages in thread
From: Stefan Berger @ 2015-03-24 15:21 UTC (permalink / raw)
To: Xu, Quan, Ian Campbell
Cc: wei.liu2, stefano.stabellini, qemu-devel, xen-devel, kevin, Jan Beulich
On 03/23/2015 10:20 PM, Xu, Quan wrote:
>
>> -----Original Message-----
>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>> Sent: Tuesday, March 24, 2015 4:01 AM
>> To: Xu, Quan; Ian Campbell
>> Cc: kevin@koconnor.net; qemu-devel@nongnu.org;
>> stefano.stabellini@eu.citrix.com; xen-devel@lists.xen.org
>> Subject: Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen
>> stubdom vTPM for HVM virtual machine
>>
>> On 03/23/2015 08:03 AM, Xu, Quan wrote:
>>>> -----Original Message-----
>>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>>>> Sent: Monday, March 23, 2015 6:57 PM
>>>> To: Xu, Quan; Ian Campbell
>>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
>>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
>>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
>>>> vTPM for HVM virtual machine
>>>>
>>>> On 03/22/2015 09:47 PM, Xu, Quan wrote:
>>>>>> -----Original Message-----
>>>>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
>>>>>> Sent: Friday, March 20, 2015 7:44 PM
>>>>>> To: Ian Campbell; Xu, Quan
>>>>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
>>>>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
>>>>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
>>>>>> vTPM for HVM virtual machine
>>>>>>
>>>>>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
>>>>>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
>>>>>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
>>>>>>>> esp_scsi_setup();
>>>>>>>> megasas_setup();
>>>>>>>> pvscsi_setup();
>>>>>>>> + if (runningOnXen())
>>>>>>>> + vtpm4hvm_setup();
>>>>>>> Is there anything which is actually Xen specific about the driver
>>>>>>> in tpm.[ch]? Would it be better to just probe for it, perhaps
>>>>>>> gates by a Kconfig option which enables TPM support.
>>>>>> I also think the probing should be done. That code can also be
>>>>>> recycled from what I posted earlier. It's gated by a Kconfig
>>>>>> option, so it doesn't
>>>> fill up the 128k ROM.
>>>>>> Stefan
>>>>>>
>>>>> Agree, I will do it ASAP.
>>>> I reposted v9 of my series of patches. I will probably post v10 today.
>>>> Please try that one then since these patches should cover Xen, QEMU
>>>> (using a driver that only I can test at the moment), and to some
>>>> extent bare metal system.
>>>>
>>>>
>>>> Stefan
>>>>
>>> Great! Could you also archive v10 to your github?
>>> then I can also test it and go through these source code.
>> I put it here now:
>>
>> https://github.com/stefanberger/seabios-tpm
>>
>> Stefan
> Thanks.
> MS windows guest VM are maybe tricky issues. In my early-stage SeaBios patch,
> I deal with TPM TCPA and SSDT in SeaBios, but MS windows guest VM is blue screens(Linux guest virtual machines are working).
> It works when I deal with TPM TCPA and SSDT in hvmloader for Windows guest VM.
Can you be a bit more specific as to what gets it to work or which
modifications you have to make in SeaBIOS to make it work?
Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-24 15:21 ` [Qemu-devel] [Xen-devel] " Stefan Berger
@ 2015-03-25 1:51 ` Xu, Quan
2015-03-25 1:51 ` [Qemu-devel] " Xu, Quan
1 sibling, 0 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-25 1:51 UTC (permalink / raw)
To: Stefan Berger, Ian Campbell
Cc: wei.liu2, stefano.stabellini, qemu-devel, xen-devel, kevin, Jan Beulich
> -----Original Message-----
> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> Sent: Tuesday, March 24, 2015 11:22 PM
> To: Xu, Quan; Ian Campbell
> Cc: kevin@koconnor.net; qemu-devel@nongnu.org;
> stefano.stabellini@eu.citrix.com; xen-devel@lists.xen.org; Jan Beulich;
> wei.liu2@citrix.com
> Subject: Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen
> stubdom vTPM for HVM virtual machine
>
> On 03/23/2015 10:20 PM, Xu, Quan wrote:
> >
> >> -----Original Message-----
> >> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >> Sent: Tuesday, March 24, 2015 4:01 AM
> >> To: Xu, Quan; Ian Campbell
> >> Cc: kevin@koconnor.net; qemu-devel@nongnu.org;
> >> stefano.stabellini@eu.citrix.com; xen-devel@lists.xen.org
> >> Subject: Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable
> >> Xen stubdom vTPM for HVM virtual machine
> >>
> >> On 03/23/2015 08:03 AM, Xu, Quan wrote:
> >>>> -----Original Message-----
> >>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >>>> Sent: Monday, March 23, 2015 6:57 PM
> >>>> To: Xu, Quan; Ian Campbell
> >>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >>>> vTPM for HVM virtual machine
> >>>>
> >>>> On 03/22/2015 09:47 PM, Xu, Quan wrote:
> >>>>>> -----Original Message-----
> >>>>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >>>>>> Sent: Friday, March 20, 2015 7:44 PM
> >>>>>> To: Ian Campbell; Xu, Quan
> >>>>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >>>>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >>>>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >>>>>> vTPM for HVM virtual machine
> >>>>>>
> >>>>>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
> >>>>>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> >>>>>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> >>>>>>>> esp_scsi_setup();
> >>>>>>>> megasas_setup();
> >>>>>>>> pvscsi_setup();
> >>>>>>>> + if (runningOnXen())
> >>>>>>>> + vtpm4hvm_setup();
> >>>>>>> Is there anything which is actually Xen specific about the
> >>>>>>> driver in tpm.[ch]? Would it be better to just probe for it,
> >>>>>>> perhaps gates by a Kconfig option which enables TPM support.
> >>>>>> I also think the probing should be done. That code can also be
> >>>>>> recycled from what I posted earlier. It's gated by a Kconfig
> >>>>>> option, so it doesn't
> >>>> fill up the 128k ROM.
> >>>>>> Stefan
> >>>>>>
> >>>>> Agree, I will do it ASAP.
> >>>> I reposted v9 of my series of patches. I will probably post v10 today.
> >>>> Please try that one then since these patches should cover Xen, QEMU
> >>>> (using a driver that only I can test at the moment), and to some
> >>>> extent bare metal system.
> >>>>
> >>>>
> >>>> Stefan
> >>>>
> >>> Great! Could you also archive v10 to your github?
> >>> then I can also test it and go through these source code.
> >> I put it here now:
> >>
> >> https://github.com/stefanberger/seabios-tpm
> >>
> >> Stefan
> > Thanks.
> > MS windows guest VM are maybe tricky issues. In my early-stage SeaBios
> > patch, I deal with TPM TCPA and SSDT in SeaBios, but MS windows guest VM is
> blue screens(Linux guest virtual machines are working).
> > It works when I deal with TPM TCPA and SSDT in hvmloader for Windows guest
> VM.
>
> Can you be a bit more specific as to what gets it to work or which modifications
> you have to make in SeaBIOS to make it work?
>
>
I put it here: https://github.com/virt2x/pseab2
It is my previous version of seabios to make it work for Linux guest virtual machines.
6d256386e823048cdbf23cf3e707f42cfd20a38b is my patch.
It based on:
[PATCH 1/2] Add an implementation of a TPM TIS driver
[PATCH 2/2] Provide ACPI SSDT table for TPM device
Maybe it was Xen bios tables issues. I deleted it in my previous patch.
[...]
- if (usingXen()) {
- xen_copy_biostables();
- return;
- }
-
[...]
Thanks, I look forward to workingwith you for vTPM/IMA ... .etc.
Quan
> Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Qemu-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine
2015-03-24 15:21 ` [Qemu-devel] [Xen-devel] " Stefan Berger
2015-03-25 1:51 ` Xu, Quan
@ 2015-03-25 1:51 ` Xu, Quan
1 sibling, 0 replies; 30+ messages in thread
From: Xu, Quan @ 2015-03-25 1:51 UTC (permalink / raw)
To: Stefan Berger, Ian Campbell
Cc: wei.liu2, stefano.stabellini, qemu-devel, xen-devel, kevin, Jan Beulich
> -----Original Message-----
> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> Sent: Tuesday, March 24, 2015 11:22 PM
> To: Xu, Quan; Ian Campbell
> Cc: kevin@koconnor.net; qemu-devel@nongnu.org;
> stefano.stabellini@eu.citrix.com; xen-devel@lists.xen.org; Jan Beulich;
> wei.liu2@citrix.com
> Subject: Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen
> stubdom vTPM for HVM virtual machine
>
> On 03/23/2015 10:20 PM, Xu, Quan wrote:
> >
> >> -----Original Message-----
> >> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >> Sent: Tuesday, March 24, 2015 4:01 AM
> >> To: Xu, Quan; Ian Campbell
> >> Cc: kevin@koconnor.net; qemu-devel@nongnu.org;
> >> stefano.stabellini@eu.citrix.com; xen-devel@lists.xen.org
> >> Subject: Re: [Qemu-devel] [Xen-devel] [PATCH] SeaBios/vTPM: Enable
> >> Xen stubdom vTPM for HVM virtual machine
> >>
> >> On 03/23/2015 08:03 AM, Xu, Quan wrote:
> >>>> -----Original Message-----
> >>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >>>> Sent: Monday, March 23, 2015 6:57 PM
> >>>> To: Xu, Quan; Ian Campbell
> >>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >>>> vTPM for HVM virtual machine
> >>>>
> >>>> On 03/22/2015 09:47 PM, Xu, Quan wrote:
> >>>>>> -----Original Message-----
> >>>>>> From: Stefan Berger [mailto:stefanb@linux.vnet.ibm.com]
> >>>>>> Sent: Friday, March 20, 2015 7:44 PM
> >>>>>> To: Ian Campbell; Xu, Quan
> >>>>>> Cc: kevin@koconnor.net; xen-devel@lists.xen.org;
> >>>>>> qemu-devel@nongnu.org; stefano.stabellini@eu.citrix.com
> >>>>>> Subject: Re: [Xen-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom
> >>>>>> vTPM for HVM virtual machine
> >>>>>>
> >>>>>> On 03/19/2015 08:56 AM, Ian Campbell wrote:
> >>>>>>> On Tue, 2015-03-10 at 08:16 -0400, Quan Xu wrote:
> >>>>>>>> @@ -151,6 +152,8 @@ device_hardware_setup(void)
> >>>>>>>> esp_scsi_setup();
> >>>>>>>> megasas_setup();
> >>>>>>>> pvscsi_setup();
> >>>>>>>> + if (runningOnXen())
> >>>>>>>> + vtpm4hvm_setup();
> >>>>>>> Is there anything which is actually Xen specific about the
> >>>>>>> driver in tpm.[ch]? Would it be better to just probe for it,
> >>>>>>> perhaps gates by a Kconfig option which enables TPM support.
> >>>>>> I also think the probing should be done. That code can also be
> >>>>>> recycled from what I posted earlier. It's gated by a Kconfig
> >>>>>> option, so it doesn't
> >>>> fill up the 128k ROM.
> >>>>>> Stefan
> >>>>>>
> >>>>> Agree, I will do it ASAP.
> >>>> I reposted v9 of my series of patches. I will probably post v10 today.
> >>>> Please try that one then since these patches should cover Xen, QEMU
> >>>> (using a driver that only I can test at the moment), and to some
> >>>> extent bare metal system.
> >>>>
> >>>>
> >>>> Stefan
> >>>>
> >>> Great! Could you also archive v10 to your github?
> >>> then I can also test it and go through these source code.
> >> I put it here now:
> >>
> >> https://github.com/stefanberger/seabios-tpm
> >>
> >> Stefan
> > Thanks.
> > MS windows guest VM are maybe tricky issues. In my early-stage SeaBios
> > patch, I deal with TPM TCPA and SSDT in SeaBios, but MS windows guest VM is
> blue screens(Linux guest virtual machines are working).
> > It works when I deal with TPM TCPA and SSDT in hvmloader for Windows guest
> VM.
>
> Can you be a bit more specific as to what gets it to work or which modifications
> you have to make in SeaBIOS to make it work?
>
>
I put it here: https://github.com/virt2x/pseab2
It is my previous version of seabios to make it work for Linux guest virtual machines.
6d256386e823048cdbf23cf3e707f42cfd20a38b is my patch.
It based on:
[PATCH 1/2] Add an implementation of a TPM TIS driver
[PATCH 2/2] Provide ACPI SSDT table for TPM device
Maybe it was Xen bios tables issues. I deleted it in my previous patch.
[...]
- if (usingXen()) {
- xen_copy_biostables();
- return;
- }
-
[...]
Thanks, I look forward to workingwith you for vTPM/IMA ... .etc.
Quan
> Stefan
^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2015-03-25 1:51 UTC | newest]
Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-10 12:16 [Qemu-devel] [PATCH] SeaBios/vTPM: Enable Xen stubdom vTPM for HVM virtual machine Quan Xu
2015-03-10 12:16 ` Quan Xu
2015-03-10 12:16 ` [Qemu-devel] " Quan Xu
2015-03-19 12:56 ` [Qemu-devel] [Xen-devel] " Ian Campbell
2015-03-20 1:35 ` Xu, Quan
2015-03-20 1:35 ` [Qemu-devel] [Xen-devel] " Xu, Quan
2015-03-20 12:00 ` Stefan Berger
2015-03-20 12:00 ` Stefan Berger
2015-03-20 11:43 ` [Qemu-devel] [Xen-devel] " Stefan Berger
2015-03-23 1:47 ` Xu, Quan
2015-03-23 1:47 ` [Qemu-devel] [Xen-devel] " Xu, Quan
2015-03-23 10:57 ` Stefan Berger
2015-03-23 12:03 ` Xu, Quan
2015-03-23 12:03 ` [Qemu-devel] [Xen-devel] " Xu, Quan
2015-03-23 20:00 ` [Qemu-devel] " Stefan Berger
2015-03-23 20:00 ` [Qemu-devel] [Xen-devel] " Stefan Berger
2015-03-24 2:20 ` Xu, Quan
2015-03-24 15:21 ` [Qemu-devel] " Stefan Berger
2015-03-24 15:21 ` [Qemu-devel] [Xen-devel] " Stefan Berger
2015-03-25 1:51 ` Xu, Quan
2015-03-25 1:51 ` [Qemu-devel] " Xu, Quan
2015-03-24 2:20 ` Xu, Quan
2015-03-23 10:57 ` Stefan Berger
2015-03-20 11:43 ` Stefan Berger
2015-03-19 12:56 ` Ian Campbell
2015-03-10 12:16 ` Quan Xu
2015-03-11 19:49 ` [Qemu-devel] " Kevin O'Connor
2015-03-12 2:54 ` Xu, Quan
2015-03-12 2:54 ` [Qemu-devel] " Xu, Quan
2015-03-11 19:49 ` Kevin O'Connor
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.