qemu/hw
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
..
9pfs 9pfs: check the size of transport buffer before marshaling 2017-09-20 08:48:52 +02:00
acpi
adc
alpha
arm hw/arm/xlnx-zynqmp: Mark the "xlnx, zynqmp" device with user_creatable = false 2017-10-06 16:46:47 +01:00
audio migration: pre_save return int 2017-09-27 11:35:59 +01:00
block hw/block/onenand: Remove dead code block 2017-10-06 16:28:58 +02:00
bt
char s390x/3270: handle writes of arbitrary length 2017-10-06 10:53:02 +02:00
core machine: Add a valid_cpu_types property 2017-10-09 23:21:52 -03:00
cpu
cris
display migration: Route more error paths 2017-09-27 11:44:18 +01:00
dma
gpio hw/gpio/omap_gpio.c: Don't use old_mmio 2017-09-21 16:34:27 +01:00
i2c migration: pre_save return int 2017-09-27 11:35:59 +01:00
i386 kvmclock: use the updated system_timer_msr 2017-10-02 14:39:51 +02:00
ide Migration pull 2017-09-27 2017-09-27 22:44:51 +01:00
input virtio-input: send rel-wheel events for wheel buttons 2017-09-29 10:36:33 +02:00
intc nvic: Fix miscalculation of offsets into ITNS array 2017-10-12 16:33:16 +01:00
ipack
ipmi
isa hw/isa/pc87312: Mark the device with user_creatable = false 2017-09-26 09:11:23 +03:00
lm32
m68k
mem
microblaze
mips mips: replace cpu_mips_init() with cpu_generic_init() 2017-09-21 13:25:37 +01:00
misc macio: use object link between MACIO_IDE and MAC_DBDMA object 2017-09-27 13:05:41 +10:00
moxie
net migration: pre_save return int 2017-09-27 11:35:59 +01:00
nios2
nvram
openrisc
pci
pci-bridge
pci-host migration: pre_save return int 2017-09-27 11:35:59 +01:00
pcmcia
ppc Migration pull 2017-09-27 2017-09-27 22:44:51 +01:00
s390x hw/s390x: Mark the "sclpquiesce" device with user_creatable = false 2017-10-06 10:53:02 +02:00
scsi migration: pre_save return int 2017-09-27 11:35:59 +01:00
sd hw/sd: fix out-of-bounds check for multi block reads 2017-10-06 16:46:47 +01:00
sh4
smbios
sparc
sparc64 sun4u: use sunhme as default on-board NIC 2017-09-21 08:38:42 +01:00
ssi msf2: Add Smartfusion2 SPI controller 2017-09-21 16:36:56 +01:00
timer migration: pre_save return int 2017-09-27 11:35:59 +01:00
tpm tpm: Added support for TPM emulator 2017-10-13 07:34:33 -04:00
tricore
unicore32
usb usb: fix host-stub.c build race 2017-10-05 11:03:25 +02:00
vfio s390x: sort some devices into categories 2017-10-06 10:53:02 +02:00
virtio migration: Route more error paths 2017-09-27 11:44:18 +01:00
watchdog watchdog/aspeed: fix variable type to store reload value 2017-10-12 13:20:06 +01:00
xen xen/pt: allow QEMU to request MSI unmasking at bind time 2017-09-20 19:05:27 -07:00
xenpv
xtensa
Makefile.objs