qemu/hw/tpm
Amarnath Valluri f4ede81eed tpm: Added support for TPM emulator
This change introduces a new TPM backend driver that can communicate with
swtpm(software TPM emulator) using unix domain socket interface. QEMU talks to
the TPM emulator using QEMU's socket-based chardev backend device.

Swtpm uses two Unix sockets for communications, one for plain TPM commands and
responses, and one for out-of-band control messages. QEMU passes the data
socket to be used over the control channel.

The swtpm and associated tools can be found here:
    https://github.com/stefanberger/swtpm

The swtpm's control channel protocol specification can be found here:
    https://github.com/stefanberger/swtpm/wiki/Control-Channel-Specification

Usage:
    # setup TPM state directory
    mkdir /tmp/mytpm
    chown -R tss:root /tmp/mytpm
    /usr/bin/swtpm_setup --tpm-state /tmp/mytpm --createek

    # Ask qemu to use TPM emulator with given tpm state directory
    qemu-system-x86_64 \
        [...] \
        -chardev socket,id=chrtpm,path=/tmp/swtpm-sock \
        -tpmdev emulator,id=tpm0,chardev=chrtpm \
        -device tpm-tis,tpmdev=tpm0 \
        [...]

Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2017-10-13 07:34:33 -04:00
..
Makefile.objs tpm: Added support for TPM emulator 2017-10-13 07:34:33 -04:00
tpm_emulator.c tpm: Added support for TPM emulator 2017-10-13 07:34:33 -04:00
tpm_int.h tpm: Probe for connected TPM 1.2 or TPM 2 2015-05-31 20:29:02 +02:00
tpm_ioctl.h tpm: Added support for TPM emulator 2017-10-13 07:34:33 -04:00
tpm_passthrough.c tpm-passthrough: move reusable code to utils 2017-10-13 07:34:33 -04:00
tpm_tis.c tpm-backend: Move realloc_buffer() implementation to tpm-tis model 2017-10-13 07:34:33 -04:00
tpm_tis.h Extend TPM TIS interface to support TPM 2 2015-05-31 20:29:02 +02:00
tpm_util.c tpm-passthrough: move reusable code to utils 2017-10-13 07:34:33 -04:00
tpm_util.h tpm-passthrough: move reusable code to utils 2017-10-13 07:34:33 -04:00