qapi/tpm.json | 7 +- hw/tpm/tpm_int.h | 25 +- hw/tpm/tpm_tis.h | 70 ------ hw/tpm/tpm_util.h | 8 +- include/hw/acpi/tpm.h | 65 +++++ include/sysemu/tpm.h | 59 +++-- include/sysemu/tpm_backend.h | 70 ++---- backends/tpm.c | 121 ++++----- hw/i386/acpi-build.c | 33 ++- hw/tpm/tpm_crb.c | 320 ++++++++++++++++++++++++ hw/tpm/tpm_emulator.c | 95 +++---- hw/tpm/tpm_passthrough.c | 114 +++------ hw/tpm/tpm_tis.c | 499 +++++++++++++++++++------------------ hw/tpm/tpm_util.c | 1 + tpm.c | 63 ++--- default-configs/i386-softmmu.mak | 1 + default-configs/x86_64-softmmu.mak | 1 + hw/tpm/Makefile.objs | 1 + scripts/checkpatch.pl | 1 - 19 files changed, 899 insertions(+), 655 deletions(-) delete mode 100644 hw/tpm/tpm_tis.h create mode 100644 hw/tpm/tpm_crb.c
Hi, I accumulated a series of patch doing some TPM code cleanup while doing review. I removed some dead code, simplified other parts, and tried to isolate implementation of the backend and frontend by using a new TPMIf interface. I solved a few issues, and added some FIXME for what should be tackled. Finally, I implemented a simple CRB device (tpm 2.0) that is work in progress for now - it works fine with passthrough, but swtpm/libtpms with win10 has some issues that need more investigations. seabios CRB support is required for TPM 2.0 & emulation (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) Comments/review welcome! Based-on: <1507222112-20315-1-git-send-email-stefanb@linux.vnet.ibm.com> Marc-André Lureau (42): tpm-tis: remove unused hw_access argument tpm-tis: remove RAISE_STS_IRQ tpm: make tpm_get_backend_driver() static tpm: lookup tpm backend class in tpm_driver_find_by_type() tpm: replace tpm_get_backend_driver() to drop be_drivers tpm: remove tpm_register_driver() tpm: move TPMSizedBuffer to tpm_tis.h tpm: remove TPMDriverOps tpm: remove init() class method tpm: remove configure_tpm() hop tpm: remove unused TPMBackendCmd tpm: remove needless cast tpm: remove locty argument from receive_cb tpm: add TPMBackendCmd to hold the request state tpm-emulator: fix error handling tpm: remove locty_data from TPMState tpm-tis: move TPMState to TIS header tpm-tis: remove tpm_tis.h header tpm-tis: fold TPMTISEmuState in TPMState tpm: add a QOM TPM interface tpm: move recv_data_callback to TPM interface tpm-backend: store TPMIf interface, improve backend_init() tpm-tis: no longer expose TPMState tpm-be: call request_completed() out of thread tpm-be: report error instead of front-end tpm-be: ask model to the TPM interface tpm: remove unused opened code tpm-passthrough: don't save guessed cancel_path in options tpm-be: update optional function pointers tpm-passthrough: pass TPMPassthruState to handle_device_opts tpm-backend: move set 'id' to common code tpm-passthrough: make it safer to destroy after creation tpm-passthrough: remove error cleanup from handle_device_opts tpm-passthrough: workaround a possible race tpm-tis: simplify header inclusion tpm: rename qemu_find_tpm() -> qemu_find_tpm_be() tpm: lookup the the TPM interface instead of TIS device tpm: add TPM interface to lookup TPM version tpm: add tpm_cmd_get_size() to tpm_util acpi: change TPM TIS data conditions tpm-emulator: add a FIXME comment about blocking cancel WIP: add TPM CRB device qapi/tpm.json | 7 +- hw/tpm/tpm_int.h | 25 +- hw/tpm/tpm_tis.h | 70 ------ hw/tpm/tpm_util.h | 8 +- include/hw/acpi/tpm.h | 65 +++++ include/sysemu/tpm.h | 59 +++-- include/sysemu/tpm_backend.h | 70 ++---- backends/tpm.c | 121 ++++----- hw/i386/acpi-build.c | 33 ++- hw/tpm/tpm_crb.c | 320 ++++++++++++++++++++++++ hw/tpm/tpm_emulator.c | 95 +++---- hw/tpm/tpm_passthrough.c | 114 +++------ hw/tpm/tpm_tis.c | 499 +++++++++++++++++++------------------ hw/tpm/tpm_util.c | 1 + tpm.c | 63 ++--- default-configs/i386-softmmu.mak | 1 + default-configs/x86_64-softmmu.mak | 1 + hw/tpm/Makefile.objs | 1 + scripts/checkpatch.pl | 1 - 19 files changed, 899 insertions(+), 655 deletions(-) delete mode 100644 hw/tpm/tpm_tis.h create mode 100644 hw/tpm/tpm_crb.c -- 2.14.1.146.gd35faa819
Hi, This series failed automatic build test. Please find the testing commands and their output below. If you have docker installed, you can probably reproduce it locally. Type: series Message-id: 20171009225623.29232-1-marcandre.lureau@redhat.com Subject: [Qemu-devel] [PATCH 00/42] TPM: code cleanup & CRB device === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc # Let docker tests dump environment info export SHOW_ENV=1 export J=8 time make docker-test-quick@centos6 time make docker-test-build@min-glib time make docker-test-mingw@fedora time make docker-test-block@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 From https://github.com/patchew-project/qemu * [new tag] patchew/20171009225623.29232-1-marcandre.lureau@redhat.com -> patchew/20171009225623.29232-1-marcandre.lureau@redhat.com Switched to a new branch 'test' 1dce39db4e WIP: add TPM CRB device 481a3ff9a1 tpm-emulator: add a FIXME comment about blocking cancel 92b718f0bc acpi: change TPM TIS data conditions 7a5b3c7e34 tpm: add tpm_cmd_get_size() to tpm_util c86a6c13fe tpm: add TPM interface to lookup TPM version cb6c286a51 tpm: lookup the the TPM interface instead of TIS device 0a9cb16319 tpm: rename qemu_find_tpm() -> qemu_find_tpm_be() 3d466eac2e tpm-tis: simplify header inclusion 051ab09e7f tpm-passthrough: workaround a possible race e71b0dfd67 tpm-passthrough: remove error cleanup from handle_device_opts 61a0c63b00 tpm-passthrough: make it safer to destroy after creation 97eff12f27 tpm-backend: move set 'id' to common code e27125f135 tpm-passthrough: pass TPMPassthruState to handle_device_opts ecc5e62220 tpm-be: update optional function pointers 89c2da5c03 tpm-passthrough: don't save guessed cancel_path in options 3b407217ac tpm: remove unused opened code 3c2d81a760 tpm-be: ask model to the TPM interface e17d2a2182 tpm-be: report error instead of front-end f6ef06e45a tpm-be: call request_completed() out of thread 66e88599a8 tpm-tis: no longer expose TPMState 2c1dd01ce2 tpm-backend: store TPMIf interface, improve backend_init() ab75259a6a tpm: move recv_data_callback to TPM interface ed74316259 tpm: add a QOM TPM interface f337bf38c4 tpm-tis: fold TPMTISEmuState in TPMState ea1ab75a79 tpm-tis: remove tpm_tis.h header 9e5a008957 tpm-tis: move TPMState to TIS header d3876cfd87 tpm: remove locty_data from TPMState fa98b71832 tpm-emulator: fix error handling 615d6665cf tpm: add TPMBackendCmd to hold the request state efcbfbf394 tpm: remove locty argument from receive_cb 275316a7ec tpm: remove needless cast 31f46d602f tpm: remove unused TPMBackendCmd 6f3a9189fa tpm: remove configure_tpm() hop caffb9d70e tpm: remove init() class method e409f33d71 tpm: remove TPMDriverOps 469aa44016 tpm: move TPMSizedBuffer to tpm_tis.h 3ab076999f tpm: remove tpm_register_driver() 989a4ad6b3 tpm: replace tpm_get_backend_driver() to drop be_drivers c2f5ab0c8a tpm: lookup tpm backend class in tpm_driver_find_by_type() b6b7b04801 tpm: make tpm_get_backend_driver() static c20e4a8a99 tpm-tis: remove RAISE_STS_IRQ 4cb2372572 tpm-tis: remove unused hw_access argument === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into '/var/tmp/patchew-tester-tmp-0efrn1fp/src/dtc'... Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d' BUILD centos6 make[1]: Entering directory '/var/tmp/patchew-tester-tmp-0efrn1fp/src' GEN docker-src.2017-10-09-19.30.27.26521/qemu.tar COPY RUNNER RUN test-quick in qemu:centos6 Packages installed: SDL-devel-1.2.14-7.el6_7.1.x86_64 bison-2.4.1-5.el6.x86_64 bzip2-devel-1.0.5-7.el6_0.x86_64 ccache-3.1.6-2.el6.x86_64 csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64 flex-2.5.35-9.el6.x86_64 gcc-4.4.7-18.el6.x86_64 gettext-0.17-18.el6.x86_64 git-1.7.1-9.el6_9.x86_64 glib2-devel-2.28.8-9.el6.x86_64 libepoxy-devel-1.2-3.el6.x86_64 libfdt-devel-1.4.0-1.el6.x86_64 librdmacm-devel-1.0.21-0.el6.x86_64 lzo-devel-2.03-3.1.el6_5.1.x86_64 make-3.81-23.el6.x86_64 mesa-libEGL-devel-11.0.7-4.el6.x86_64 mesa-libgbm-devel-11.0.7-4.el6.x86_64 package g++ is not installed pixman-devel-0.32.8-1.el6.x86_64 spice-glib-devel-0.26-8.el6.x86_64 spice-server-devel-0.12.4-16.el6.x86_64 tar-1.23-15.el6_8.x86_64 vte-devel-0.25.1-9.el6.x86_64 xen-devel-4.6.6-2.el6.x86_64 zlib-devel-1.2.3-29.el6.x86_64 Environment variables: PACKAGES=bison bzip2-devel ccache csnappy-devel flex g++ gcc gettext git glib2-devel libepoxy-devel libfdt-devel librdmacm-devel lzo-devel make mesa-libEGL-devel mesa-libgbm-devel pixman-devel SDL-devel spice-glib-devel spice-server-devel tar vte-devel xen-devel zlib-devel HOSTNAME=6bc53d17e441 TERM=xterm MAKEFLAGS= -j8 J=8 CCACHE_DIR=/var/tmp/ccache EXTRA_CONFIGURE_OPTS= V= SHOW_ENV=1 PATH=/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ TARGET_LIST= SHLVL=1 HOME=/root TEST_DIR=/tmp/qemu-test FEATURES= dtc DEBUG= _=/usr/bin/env Configure options: --enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install No C++ compiler available; disabling C++ specific optional code Install prefix /tmp/qemu-test/install BIOS directory /tmp/qemu-test/install/share/qemu firmware path /tmp/qemu-test/install/share/qemu-firmware binary directory /tmp/qemu-test/install/bin library directory /tmp/qemu-test/install/lib module directory /tmp/qemu-test/install/lib/qemu libexec directory /tmp/qemu-test/install/libexec include directory /tmp/qemu-test/install/include config directory /tmp/qemu-test/install/etc local state directory /tmp/qemu-test/install/var Manual directory /tmp/qemu-test/install/share/man ELF interp prefix /usr/gnemul/qemu-%M Source path /tmp/qemu-test/src C compiler cc Host C compiler cc C++ compiler Objective-C compiler cc ARFLAGS rv CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -I/usr/include/libpng12 -I/usr/include/libdrm -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/spice-1 LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g make make install install python python -B smbd /usr/sbin/smbd module support no host CPU x86_64 host big endian no target list x86_64-softmmu aarch64-softmmu gprof enabled no sparse enabled no strip binaries yes profiler no static build no SDL support yes (1.2.14) GTK support yes (2.24.23) GTK GL support no VTE support yes (0.25.1) TLS priority NORMAL GNUTLS support no GNUTLS rnd no libgcrypt no libgcrypt kdf no nettle no nettle kdf no libtasn1 no curses support yes virgl support no curl support no mingw32 support no Audio drivers oss Block whitelist (rw) Block whitelist (ro) VirtFS support no Multipath support no VNC support yes VNC SASL support no VNC JPEG support yes VNC PNG support yes xen support yes xen ctrl version 40600 pv dom build no brlapi support no bluez support no Documentation no PIE yes vde support no netmap support no Linux AIO support no ATTR/XATTR support yes Install blobs yes KVM support yes HAX support no TCG support yes TCG debug enabled no TCG interpreter no RDMA support yes fdt support yes preadv support yes fdatasync yes madvise yes posix_madvise yes libcap-ng support no vhost-net support yes vhost-scsi support yes vhost-vsock support yes vhost-user support yes Trace backends log spice support yes (0.12.6/0.12.4) rbd support no xfsctl support no smartcard support yes libusb no usb net redir no OpenGL support yes OpenGL dmabufs no libiscsi support no libnfs support no build guest agent yes QGA VSS support no QGA w32 disk info no QGA MSI support no seccomp support no coroutine backend ucontext coroutine pool yes debug stack usage no crypto afalg no GlusterFS support no gcov gcov gcov enabled no TPM support yes libssh2 support no TPM passthrough yes TPM emulator yes QOM debugging yes Live block migration yes lzo support yes snappy support no bzip2 support yes NUMA host support no tcmalloc support no jemalloc support no avx2 optimization no replication support yes VxHS block device no mkdir -p dtc/libfdt mkdir -p dtc/tests GEN x86_64-softmmu/config-devices.mak.tmp GEN aarch64-softmmu/config-devices.mak.tmp GEN qemu-options.def GEN config-host.h GEN qapi-types.h GEN qmp-commands.h GEN qapi-visit.h GEN qapi-event.h GEN x86_64-softmmu/config-devices.mak GEN aarch64-softmmu/config-devices.mak GEN qmp-marshal.c GEN qapi-types.c GEN qapi-visit.c GEN qapi-event.c GEN qmp-introspect.h GEN qmp-introspect.c GEN trace/generated-tcg-tracers.h GEN trace/generated-helpers-wrappers.h GEN trace/generated-helpers.h GEN trace/generated-helpers.c GEN module_block.h GEN tests/test-qapi-types.h GEN tests/test-qapi-visit.h GEN tests/test-qmp-commands.h GEN tests/test-qapi-event.h GEN tests/test-qmp-introspect.h GEN trace-root.h GEN util/trace.h GEN crypto/trace.h GEN io/trace.h GEN migration/trace.h GEN block/trace.h GEN chardev/trace.h GEN hw/block/trace.h GEN hw/block/dataplane/trace.h GEN hw/char/trace.h GEN hw/intc/trace.h GEN hw/net/trace.h GEN hw/virtio/trace.h GEN hw/audio/trace.h GEN hw/misc/trace.h GEN hw/usb/trace.h GEN hw/scsi/trace.h GEN hw/nvram/trace.h GEN hw/display/trace.h GEN hw/input/trace.h GEN hw/timer/trace.h GEN hw/dma/trace.h GEN hw/sparc/trace.h GEN hw/sd/trace.h GEN hw/isa/trace.h GEN hw/mem/trace.h GEN hw/i386/trace.h GEN hw/i386/xen/trace.h GEN hw/9pfs/trace.h GEN hw/ppc/trace.h GEN hw/pci/trace.h GEN hw/s390x/trace.h GEN hw/vfio/trace.h GEN hw/acpi/trace.h GEN hw/arm/trace.h GEN hw/alpha/trace.h GEN hw/xen/trace.h GEN hw/ide/trace.h GEN ui/trace.h GEN audio/trace.h GEN net/trace.h GEN target/arm/trace.h GEN target/i386/trace.h GEN target/mips/trace.h GEN target/sparc/trace.h GEN target/s390x/trace.h GEN target/ppc/trace.h GEN qom/trace.h GEN linux-user/trace.h GEN qapi/trace.h GEN accel/tcg/trace.h GEN accel/kvm/trace.h GEN nbd/trace.h GEN scsi/trace.h GEN trace-root.c GEN util/trace.c GEN crypto/trace.c GEN io/trace.c GEN migration/trace.c GEN block/trace.c GEN chardev/trace.c GEN hw/block/trace.c GEN hw/block/dataplane/trace.c GEN hw/char/trace.c GEN hw/intc/trace.c GEN hw/net/trace.c GEN hw/virtio/trace.c GEN hw/audio/trace.c GEN hw/misc/trace.c GEN hw/usb/trace.c GEN hw/scsi/trace.c GEN hw/nvram/trace.c GEN hw/display/trace.c GEN hw/input/trace.c GEN hw/timer/trace.c GEN hw/dma/trace.c GEN hw/sparc/trace.c GEN hw/sd/trace.c GEN hw/isa/trace.c GEN hw/mem/trace.c GEN hw/i386/trace.c GEN hw/i386/xen/trace.c GEN hw/9pfs/trace.c GEN hw/ppc/trace.c GEN hw/pci/trace.c GEN hw/s390x/trace.c GEN hw/vfio/trace.c GEN hw/acpi/trace.c GEN hw/arm/trace.c GEN hw/alpha/trace.c GEN hw/xen/trace.c GEN hw/ide/trace.c GEN ui/trace.c GEN audio/trace.c GEN net/trace.c GEN target/arm/trace.c GEN target/i386/trace.c GEN target/mips/trace.c GEN target/sparc/trace.c GEN target/s390x/trace.c GEN target/ppc/trace.c GEN qom/trace.c GEN linux-user/trace.c GEN qapi/trace.c GEN accel/tcg/trace.c GEN accel/kvm/trace.c GEN nbd/trace.c GEN scsi/trace.c GEN config-all-devices.mak DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c DEP /tmp/qemu-test/src/dtc/tests/trees.S DEP /tmp/qemu-test/src/dtc/tests/testutils.c DEP /tmp/qemu-test/src/dtc/tests/value-labels.c DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c DEP /tmp/qemu-test/src/dtc/tests/check_path.c DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c DEP /tmp/qemu-test/src/dtc/tests/overlay.c DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c DEP /tmp/qemu-test/src/dtc/tests/incbin.c DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c DEP /tmp/qemu-test/src/dtc/tests/references.c DEP /tmp/qemu-test/src/dtc/tests/path-references.c DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c DEP /tmp/qemu-test/src/dtc/tests/del_node.c DEP /tmp/qemu-test/src/dtc/tests/del_property.c DEP /tmp/qemu-test/src/dtc/tests/setprop.c DEP /tmp/qemu-test/src/dtc/tests/set_name.c DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c DEP /tmp/qemu-test/src/dtc/tests/open_pack.c DEP /tmp/qemu-test/src/dtc/tests/nopulate.c DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c DEP /tmp/qemu-test/src/dtc/tests/nop_node.c DEP /tmp/qemu-test/src/dtc/tests/nop_property.c DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c DEP /tmp/qemu-test/src/dtc/tests/stringlist.c DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c DEP /tmp/qemu-test/src/dtc/tests/notfound.c DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c DEP /tmp/qemu-test/src/dtc/tests/char_literal.c DEP /tmp/qemu-test/src/dtc/tests/get_alias.c DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c DEP /tmp/qemu-test/src/dtc/tests/get_path.c DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c DEP /tmp/qemu-test/src/dtc/tests/getprop.c DEP /tmp/qemu-test/src/dtc/tests/get_name.c DEP /tmp/qemu-test/src/dtc/tests/path_offset.c DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c DEP /tmp/qemu-test/src/dtc/tests/find_property.c DEP /tmp/qemu-test/src/dtc/tests/root_node.c DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c DEP /tmp/qemu-test/src/dtc/util.c DEP /tmp/qemu-test/src/dtc/fdtput.c DEP /tmp/qemu-test/src/dtc/fdtget.c DEP /tmp/qemu-test/src/dtc/fdtdump.c LEX convert-dtsv0-lexer.lex.c DEP /tmp/qemu-test/src/dtc/srcpos.c BISON dtc-parser.tab.c LEX dtc-lexer.lex.c DEP /tmp/qemu-test/src/dtc/livetree.c DEP /tmp/qemu-test/src/dtc/fstree.c DEP /tmp/qemu-test/src/dtc/treesource.c DEP /tmp/qemu-test/src/dtc/flattree.c DEP /tmp/qemu-test/src/dtc/dtc.c DEP /tmp/qemu-test/src/dtc/data.c DEP /tmp/qemu-test/src/dtc/checks.c DEP convert-dtsv0-lexer.lex.c DEP dtc-parser.tab.c DEP dtc-lexer.lex.c CHK version_gen.h UPD version_gen.h DEP /tmp/qemu-test/src/dtc/util.c CC libfdt/fdt.o CC libfdt/fdt_wip.o CC libfdt/fdt_ro.o CC libfdt/fdt_sw.o CC libfdt/fdt_strerror.o CC libfdt/fdt_rw.o CC libfdt/fdt_empty_tree.o CC libfdt/fdt_addresses.o CC libfdt/fdt_overlay.o AR libfdt/libfdt.a ar: creating libfdt/libfdt.a a - libfdt/fdt.o a - libfdt/fdt_ro.o a - libfdt/fdt_wip.o a - libfdt/fdt_sw.o a - libfdt/fdt_rw.o a - libfdt/fdt_strerror.o a - libfdt/fdt_empty_tree.o a - libfdt/fdt_addresses.o a - libfdt/fdt_overlay.o CC tests/qemu-iotests/socket_scm_helper.o GEN qga/qapi-generated/qga-qapi-types.h GEN qga/qapi-generated/qga-qapi-visit.h GEN qga/qapi-generated/qga-qapi-visit.c GEN qga/qapi-generated/qga-qapi-types.c GEN qga/qapi-generated/qga-qmp-commands.h GEN qga/qapi-generated/qga-qmp-marshal.c CC qmp-introspect.o CC qapi-types.o CC qapi-visit.o CC qapi-event.o CC qapi/qapi-visit-core.o CC qapi/qobject-input-visitor.o CC qapi/qapi-dealloc-visitor.o CC qapi/qobject-output-visitor.o CC qapi/qmp-registry.o CC qapi/qmp-dispatch.o CC qapi/string-input-visitor.o CC qapi/string-output-visitor.o CC qapi/opts-visitor.o CC qapi/qapi-clone-visitor.o CC qapi/qmp-event.o CC qapi/qapi-util.o CC qobject/qnull.o CC qobject/qnum.o CC qobject/qstring.o CC qobject/qdict.o CC qobject/qlist.o CC qobject/qbool.o CC qobject/qlit.o CC qobject/qjson.o CC qobject/qobject.o CC qobject/json-lexer.o CC qobject/json-streamer.o CC qobject/json-parser.o CC trace/control.o CC trace/qmp.o CC util/osdep.o CC util/cutils.o CC util/unicode.o CC util/qemu-timer-common.o CC util/bufferiszero.o CC util/lockcnt.o CC util/aiocb.o CC util/async.o CC util/thread-pool.o CC util/qemu-timer.o CC util/main-loop.o CC util/iohandler.o CC util/aio-posix.o CC util/compatfd.o CC util/event_notifier-posix.o CC util/mmap-alloc.o CC util/oslib-posix.o CC util/qemu-openpty.o CC util/qemu-thread-posix.o CC util/memfd.o CC util/envlist.o CC util/path.o CC util/module.o CC util/host-utils.o CC util/bitmap.o CC util/bitops.o CC util/hbitmap.o CC util/acl.o CC util/fifo8.o CC util/cacheinfo.o CC util/error.o CC util/qemu-error.o CC util/id.o CC util/iov.o CC util/qemu-config.o CC util/qemu-sockets.o CC util/uri.o CC util/notify.o CC util/qemu-option.o CC util/qemu-progress.o CC util/keyval.o CC util/hexdump.o CC util/crc32c.o CC util/uuid.o CC util/throttle.o CC util/getauxval.o CC util/readline.o CC util/rcu.o CC util/qemu-coroutine.o CC util/qemu-coroutine-lock.o CC util/qemu-coroutine-io.o CC util/qemu-coroutine-sleep.o CC util/coroutine-ucontext.o CC util/buffer.o CC util/timed-average.o CC util/base64.o CC util/log.o CC util/qdist.o CC util/qht.o CC util/range.o CC util/stats64.o CC util/systemd.o CC trace-root.o CC util/trace.o CC crypto/trace.o CC io/trace.o CC migration/trace.o CC block/trace.o CC chardev/trace.o CC hw/block/trace.o CC hw/block/dataplane/trace.o CC hw/char/trace.o CC hw/intc/trace.o CC hw/net/trace.o CC hw/virtio/trace.o CC hw/audio/trace.o CC hw/misc/trace.o CC hw/usb/trace.o CC hw/scsi/trace.o CC hw/nvram/trace.o CC hw/display/trace.o CC hw/input/trace.o CC hw/timer/trace.o CC hw/dma/trace.o CC hw/sparc/trace.o CC hw/sd/trace.o CC hw/isa/trace.o CC hw/mem/trace.o CC hw/i386/trace.o CC hw/i386/xen/trace.o CC hw/9pfs/trace.o CC hw/ppc/trace.o CC hw/pci/trace.o CC hw/s390x/trace.o CC hw/vfio/trace.o CC hw/acpi/trace.o CC hw/arm/trace.o CC hw/alpha/trace.o CC hw/xen/trace.o CC hw/ide/trace.o CC ui/trace.o CC audio/trace.o CC net/trace.o CC target/arm/trace.o CC target/i386/trace.o CC target/mips/trace.o CC target/sparc/trace.o CC target/s390x/trace.o CC target/ppc/trace.o CC qom/trace.o CC linux-user/trace.o CC qapi/trace.o CC accel/tcg/trace.o CC accel/kvm/trace.o CC nbd/trace.o CC scsi/trace.o CC crypto/pbkdf-stub.o CC stubs/arch-query-cpu-def.o CC stubs/arch-query-cpu-model-expansion.o CC stubs/arch-query-cpu-model-comparison.o CC stubs/arch-query-cpu-model-baseline.o CC stubs/bdrv-next-monitor-owned.o CC stubs/blk-commit-all.o CC stubs/blockdev-close-all-bdrv-states.o CC stubs/clock-warp.o CC stubs/cpu-get-clock.o CC stubs/cpu-get-icount.o CC stubs/dump.o CC stubs/error-printf.o CC stubs/fdset.o CC stubs/gdbstub.o CC stubs/get-vm-name.o CC stubs/iothread.o CC stubs/iothread-lock.o CC stubs/is-daemonized.o CC stubs/machine-init-done.o CC stubs/migr-blocker.o CC stubs/change-state-handler.o CC stubs/monitor.o CC stubs/notify-event.o CC stubs/qtest.o CC stubs/replay.o CC stubs/runstate-check.o CC stubs/set-fd-handler.o CC stubs/slirp.o CC stubs/sysbus.o CC stubs/trace-control.o CC stubs/uuid.o CC stubs/vm-stop.o CC stubs/vmstate.o CC stubs/qmp_pc_dimm.o CC stubs/target-monitor-defs.o CC stubs/target-get-monitor-def.o CC stubs/pc_madt_cpu_entry.o CC stubs/vmgenid.o CC stubs/xen-common.o CC stubs/xen-hvm.o CC stubs/pci-host-piix.o CC contrib/ivshmem-client/ivshmem-client.o CC contrib/ivshmem-client/main.o CC contrib/ivshmem-server/ivshmem-server.o CC contrib/ivshmem-server/main.o CC qemu-nbd.o CC block.o CC blockjob.o CC qemu-io-cmds.o CC replication.o CC block/raw-format.o CC block/qcow.o CC block/vdi.o CC block/vmdk.o CC block/cloop.o CC block/bochs.o CC block/vpc.o CC block/vvfat.o CC block/dmg.o CC block/qcow2.o CC block/qcow2-refcount.o CC block/qcow2-cluster.o CC block/qcow2-snapshot.o CC block/qcow2-cache.o CC block/qcow2-bitmap.o CC block/qed.o CC block/qed-l2-cache.o CC block/qed-table.o CC block/qed-cluster.o CC block/qed-check.o CC block/vhdx.o CC block/vhdx-endian.o CC block/vhdx-log.o CC block/quorum.o CC block/parallels.o CC block/blkdebug.o CC block/blkverify.o CC block/blkreplay.o CC block/block-backend.o CC block/snapshot.o CC block/qapi.o CC block/file-posix.o CC block/null.o CC block/mirror.o CC block/commit.o CC block/io.o CC block/throttle-groups.o CC block/nbd.o CC block/nbd-client.o CC block/sheepdog.o CC block/accounting.o CC block/dirty-bitmap.o CC block/write-threshold.o CC block/backup.o CC block/replication.o CC block/throttle.o CC block/crypto.o CC nbd/server.o CC nbd/client.o CC nbd/common.o CC scsi/utils.o CC scsi/pr-manager.o CC scsi/pr-manager-helper.o CC block/dmg-bz2.o CC crypto/init.o CC crypto/hash.o CC crypto/hash-glib.o CC crypto/hmac.o CC crypto/hmac-glib.o CC crypto/aes.o CC crypto/desrfb.o CC crypto/cipher.o CC crypto/tlscreds.o CC crypto/tlscredsanon.o CC crypto/tlscredsx509.o CC crypto/tlssession.o CC crypto/secret.o CC crypto/random-platform.o CC crypto/pbkdf.o CC crypto/ivgen.o CC crypto/ivgen-essiv.o CC crypto/ivgen-plain.o CC crypto/ivgen-plain64.o CC crypto/afsplit.o CC crypto/xts.o CC crypto/block.o CC crypto/block-qcow.o CC crypto/block-luks.o CC io/channel.o CC io/channel-buffer.o CC io/channel-command.o CC io/channel-file.o CC io/channel-socket.o CC io/channel-tls.o CC io/channel-watch.o CC io/channel-websock.o CC io/channel-util.o CC io/dns-resolver.o CC io/task.o CC qom/object.o CC qom/container.o CC qom/qom-qobject.o CC qom/object_interfaces.o GEN qemu-img-cmds.h CC qemu-io.o CC scsi/qemu-pr-helper.o CC qemu-bridge-helper.o CC blockdev.o CC blockdev-nbd.o CC bootdevice.o CC iothread.o CC qdev-monitor.o CC device-hotplug.o CC os-posix.o CC bt-host.o CC bt-vhci.o CC dma-helpers.o CC vl.o CC tpm.o CC device_tree.o CC qmp-marshal.o CC qmp.o CC hmp.o CC cpus-common.o CC audio/audio.o CC audio/noaudio.o CC audio/wavaudio.o CC audio/mixeng.o CC audio/sdlaudio.o CC audio/ossaudio.o CC audio/spiceaudio.o CC audio/wavcapture.o CC backends/rng.o CC backends/rng-egd.o CC backends/rng-random.o CC backends/tpm.o CC backends/hostmem.o CC backends/hostmem-ram.o CC backends/hostmem-file.o CC backends/cryptodev.o CC backends/cryptodev-builtin.o CC chardev/msmouse.o CC block/stream.o CC chardev/wctablet.o CC chardev/testdev.o CC chardev/spice.o CC disas/arm.o CC disas/i386.o CC fsdev/qemu-fsdev-dummy.o CC fsdev/qemu-fsdev-opts.o CC fsdev/qemu-fsdev-throttle.o CC hw/acpi/core.o CC hw/acpi/piix4.o CC hw/acpi/pcihp.o CC hw/acpi/ich9.o CC hw/acpi/tco.o CC hw/acpi/cpu_hotplug.o CC hw/acpi/memory_hotplug.o CC hw/acpi/cpu.o CC hw/acpi/nvdimm.o CC hw/acpi/vmgenid.o CC hw/acpi/acpi_interface.o CC hw/acpi/bios-linker-loader.o CC hw/acpi/aml-build.o CC hw/acpi/ipmi.o CC hw/acpi/acpi-stub.o CC hw/acpi/ipmi-stub.o CC hw/audio/sb16.o CC hw/audio/es1370.o CC hw/audio/ac97.o CC hw/audio/fmopl.o CC hw/audio/adlib.o CC hw/audio/gus.o CC hw/audio/gusemu_hal.o CC hw/audio/gusemu_mixer.o CC hw/audio/cs4231a.o CC hw/audio/intel-hda.o CC hw/audio/hda-codec.o CC hw/audio/pcspk.o CC hw/audio/wm8750.o CC hw/audio/pl041.o CC hw/audio/lm4549.o CC hw/audio/marvell_88w8618.o CC hw/audio/soundhw.o CC hw/block/block.o CC hw/block/cdrom.o CC hw/block/hd-geometry.o CC hw/block/fdc.o CC hw/block/m25p80.o CC hw/block/nand.o CC hw/block/pflash_cfi01.o CC hw/block/pflash_cfi02.o CC hw/block/xen_disk.o CC hw/block/ecc.o CC hw/block/onenand.o CC hw/block/nvme.o CC hw/bt/core.o CC hw/bt/l2cap.o CC hw/bt/sdp.o CC hw/bt/hci.o CC hw/bt/hid.o CC hw/bt/hci-csr.o CC hw/char/ipoctal232.o CC hw/char/parallel.o CC hw/char/pl011.o CC hw/char/serial.o CC hw/char/serial-isa.o CC hw/char/serial-pci.o CC hw/char/virtio-console.o CC hw/char/xen_console.o CC hw/char/cadence_uart.o CC hw/char/cmsdk-apb-uart.o CC hw/char/debugcon.o CC hw/char/imx_serial.o CC hw/core/qdev.o CC hw/core/qdev-properties.o CC hw/core/bus.o CC hw/core/reset.o CC hw/core/fw-path-provider.o CC hw/core/irq.o CC hw/core/hotplug.o CC hw/core/nmi.o CC hw/core/ptimer.o CC hw/core/sysbus.o CC hw/core/machine.o CC hw/core/loader.o CC hw/core/qdev-properties-system.o CC hw/core/register.o CC hw/core/or-irq.o CC hw/core/platform-bus.o CC hw/cpu/core.o CC hw/display/ads7846.o CC hw/display/cirrus_vga.o CC hw/display/pl110.o CC hw/display/ssd0303.o CC hw/display/ssd0323.o CC hw/display/xenfb.o CC hw/display/vga-pci.o CC hw/display/vga-isa.o CC hw/display/vmware_vga.o CC hw/display/blizzard.o CC hw/display/exynos4210_fimd.o CC hw/display/framebuffer.o CC hw/display/tc6393xb.o CC hw/display/qxl.o CC hw/display/qxl-logger.o CC hw/display/qxl-render.o CC hw/dma/pl080.o CC hw/dma/pl330.o CC hw/dma/i8257.o CC hw/dma/xlnx-zynq-devcfg.o CC hw/gpio/max7310.o CC hw/gpio/pl061.o CC hw/gpio/zaurus.o CC hw/gpio/gpio_key.o CC hw/i2c/core.o CC hw/i2c/smbus_eeprom.o CC hw/i2c/smbus.o CC hw/i2c/i2c-ddc.o CC hw/i2c/versatile_i2c.o CC hw/i2c/smbus_ich9.o CC hw/i2c/pm_smbus.o CC hw/i2c/bitbang_i2c.o CC hw/i2c/exynos4210_i2c.o CC hw/i2c/imx_i2c.o CC hw/i2c/aspeed_i2c.o CC hw/ide/core.o CC hw/ide/atapi.o CC hw/ide/qdev.o CC hw/ide/pci.o CC hw/ide/isa.o CC hw/ide/piix.o CC hw/ide/microdrive.o CC hw/ide/ahci.o CC hw/input/hid.o CC hw/ide/ich.o CC hw/input/lm832x.o CC hw/input/pckbd.o CC hw/input/pl050.o CC hw/input/ps2.o CC hw/input/stellaris_input.o CC hw/input/tsc2005.o CC hw/input/vmmouse.o CC hw/input/virtio-input.o CC hw/input/virtio-input-hid.o CC hw/input/virtio-input-host.o CC hw/intc/i8259_common.o CC hw/intc/i8259.o CC hw/intc/pl190.o CC hw/intc/imx_avic.o CC hw/intc/realview_gic.o CC hw/intc/ioapic_common.o CC hw/intc/arm_gic_common.o CC hw/intc/arm_gic.o CC hw/intc/arm_gicv2m.o CC hw/intc/arm_gicv3_common.o CC hw/intc/arm_gicv3.o CC hw/intc/arm_gicv3_dist.o CC hw/intc/arm_gicv3_redist.o CC hw/intc/arm_gicv3_its_common.o CC hw/intc/intc.o CC hw/ipack/ipack.o CC hw/ipack/tpci200.o CC hw/ipmi/ipmi.o CC hw/ipmi/ipmi_bmc_sim.o CC hw/ipmi/ipmi_bmc_extern.o CC hw/ipmi/isa_ipmi_kcs.o CC hw/ipmi/isa_ipmi_bt.o CC hw/isa/isa-bus.o CC hw/isa/apm.o CC hw/mem/pc-dimm.o CC hw/mem/nvdimm.o CC hw/misc/applesmc.o CC hw/misc/max111x.o CC hw/misc/tmp105.o CC hw/misc/tmp421.o CC hw/misc/debugexit.o CC hw/misc/sga.o CC hw/misc/pc-testdev.o CC hw/misc/pci-testdev.o CC hw/misc/edu.o CC hw/misc/unimp.o CC hw/misc/arm_l2x0.o CC hw/misc/arm_integrator_debug.o CC hw/misc/a9scu.o CC hw/misc/arm11scu.o CC hw/net/xen_nic.o CC hw/net/ne2000.o CC hw/net/eepro100.o CC hw/net/pcnet-pci.o CC hw/net/pcnet.o CC hw/net/e1000.o CC hw/net/e1000x_common.o CC hw/net/net_tx_pkt.o CC hw/net/net_rx_pkt.o CC hw/net/e1000e.o CC hw/net/e1000e_core.o CC hw/net/rtl8139.o CC hw/net/vmxnet3.o CC hw/net/smc91c111.o CC hw/net/lan9118.o CC hw/net/ne2000-isa.o CC hw/net/xgmac.o CC hw/net/allwinner_emac.o CC hw/net/imx_fec.o CC hw/net/cadence_gem.o CC hw/net/stellaris_enet.o CC hw/net/ftgmac100.o CC hw/net/rocker/rocker.o CC hw/net/rocker/rocker_fp.o CC hw/net/rocker/rocker_desc.o CC hw/net/rocker/rocker_world.o CC hw/net/rocker/rocker_of_dpa.o CC hw/nvram/eeprom93xx.o CC hw/nvram/fw_cfg.o CC hw/nvram/chrp_nvram.o CC hw/pci-bridge/pci_bridge_dev.o CC hw/pci-bridge/pcie_pci_bridge.o CC hw/pci-bridge/pcie_root_port.o CC hw/pci-bridge/gen_pcie_root_port.o CC hw/pci-bridge/pci_expander_bridge.o CC hw/pci-bridge/xio3130_upstream.o CC hw/pci-bridge/xio3130_downstream.o CC hw/pci-bridge/ioh3420.o CC hw/pci-bridge/i82801b11.o CC hw/pci-host/pam.o CC hw/pci-host/versatile.o CC hw/pci-host/q35.o CC hw/pci-host/piix.o CC hw/pci-host/gpex.o CC hw/pci/pci.o CC hw/pci/pci_bridge.o CC hw/pci/msix.o CC hw/pci/msi.o CC hw/pci/shpc.o CC hw/pci/slotid_cap.o CC hw/pci/pci_host.o CC hw/pci/pcie_host.o CC hw/pci/pcie.o CC hw/pci/pcie_aer.o CC hw/pci/pcie_port.o CC hw/pci/pci-stub.o CC hw/pcmcia/pcmcia.o CC hw/scsi/scsi-disk.o CC hw/scsi/scsi-generic.o CC hw/scsi/scsi-bus.o CC hw/scsi/lsi53c895a.o CC hw/scsi/mptsas.o CC hw/scsi/mptconfig.o CC hw/scsi/mptendian.o CC hw/scsi/megasas.o CC hw/scsi/vmw_pvscsi.o CC hw/scsi/esp.o CC hw/scsi/esp-pci.o CC hw/sd/pl181.o CC hw/sd/ssi-sd.o CC hw/sd/sd.o CC hw/sd/core.o CC hw/sd/sdhci.o CC hw/smbios/smbios.o CC hw/smbios/smbios_type_38.o CC hw/smbios/smbios-stub.o CC hw/smbios/smbios_type_38-stub.o CC hw/ssi/pl022.o CC hw/ssi/ssi.o CC hw/ssi/xilinx_spips.o CC hw/ssi/aspeed_smc.o CC hw/ssi/stm32f2xx_spi.o CC hw/ssi/mss-spi.o CC hw/timer/arm_timer.o CC hw/timer/arm_mptimer.o CC hw/timer/armv7m_systick.o CC hw/timer/a9gtimer.o CC hw/timer/cadence_ttc.o CC hw/timer/ds1338.o CC hw/timer/hpet.o CC hw/timer/i8254_common.o CC hw/timer/i8254.o CC hw/timer/pl031.o CC hw/timer/twl92230.o CC hw/timer/imx_epit.o CC hw/timer/imx_gpt.o CC hw/timer/stm32f2xx_timer.o CC hw/timer/aspeed_timer.o CC hw/timer/cmsdk-apb-timer.o CC hw/timer/mss-timer.o CC hw/tpm/tpm_tis.o CC hw/tpm/tpm_crb.o CC hw/tpm/tpm_passthrough.o CC hw/tpm/tpm_util.o /tmp/qemu-test/src/hw/tpm/tpm_crb.c: In function 'tpm_crb_reset': /tmp/qemu-test/src/hw/tpm/tpm_crb.c:205: error: unknown field 'intf_id_bits' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:206: error: unknown field 'type' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:207: error: unknown field 'version' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:207: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:207: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:208: error: unknown field 'cap_locality' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:208: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:208: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:209: error: unknown field 'cap_crb_idle_bypass' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:209: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:209: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:210: error: unknown field 'cap_data_xfer_size_support' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:210: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:210: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:211: error: unknown field 'cap_fifo' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:211: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:211: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:212: error: unknown field 'cap_crb' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:212: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:212: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:213: error: unknown field 'cap_if_res' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:213: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:213: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:214: error: unknown field 'if_selector' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:214: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:214: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:215: error: unknown field 'if_selector_lock' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:215: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:215: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:216: error: unknown field 'rid' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:216: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:216: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:217: error: unknown field 'vid' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:217: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:217: warning: (near initialization for '(anonymous).<anonymous>') /tmp/qemu-test/src/hw/tpm/tpm_crb.c:218: error: unknown field 'did' specified in initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:218: warning: excess elements in union initializer /tmp/qemu-test/src/hw/tpm/tpm_crb.c:218: warning: (near initialization for '(anonymous).<anonymous>') make: *** [hw/tpm/tpm_crb.o] Error 1 make: *** Waiting for unfinished jobs.... Traceback (most recent call last): File "./tests/docker/docker.py", line 385, in <module> sys.exit(main()) File "./tests/docker/docker.py", line 382, in main return args.cmdobj.run(args, argv) File "./tests/docker/docker.py", line 239, in run return Docker().run(argv, args.keep, quiet=args.quiet) File "./tests/docker/docker.py", line 207, in run quiet=quiet) File "./tests/docker/docker.py", line 125, in _do_check return subprocess.check_call(self._command + cmd, **kwargs) File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=d69319c4ad4911e7bbb952540069c830', '-u', '0', '-t', '--security-opt', 'seccomp=unconfined', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-0efrn1fp/src/docker-src.2017-10-09-19.30.27.26521:/var/tmp/qemu:z,ro', 'qemu:centos6', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2 make[1]: *** [tests/docker/Makefile.include:129: docker-run] Error 1 make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-0efrn1fp/src' make: *** [tests/docker/Makefile.include:161: docker-run-test-quick@centos6] Error 2 real 2m24.250s user 0m1.607s sys 0m1.680s === OUTPUT END === Test command exited with code: 2 --- Email generated automatically by Patchew [http://patchew.org/]. Please send your feedback to patchew-devel@freelists.org
On 10/09/2017 06:55 PM, Marc-André Lureau wrote: > Hi, > > I accumulated a series of patch doing some TPM code cleanup while > doing review. I removed some dead code, simplified other parts, and > tried to isolate implementation of the backend and frontend by using a > new TPMIf interface. I solved a few issues, and added some FIXME for > what should be tackled. Finally, I implemented a simple CRB device > (tpm 2.0) that is work in progress for now - it works fine with > passthrough, but swtpm/libtpms with win10 has some issues that need > more investigations. > > seabios CRB support is required for TPM 2.0 & emulation > (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) > > Comments/review welcome! Are you going to post a v2 soon? Stefan
Hi Stefan ----- Original Message ----- > On 10/09/2017 06:55 PM, Marc-André Lureau wrote: > > Hi, > > > > I accumulated a series of patch doing some TPM code cleanup while > > doing review. I removed some dead code, simplified other parts, and > > tried to isolate implementation of the backend and frontend by using a > > new TPMIf interface. I solved a few issues, and added some FIXME for > > what should be tackled. Finally, I implemented a simple CRB device > > (tpm 2.0) that is work in progress for now - it works fine with > > passthrough, but swtpm/libtpms with win10 has some issues that need > > more investigations. > > > > seabios CRB support is required for TPM 2.0 & emulation > > (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) > > > > Comments/review welcome! > > Are you going to post a v2 soon? I was wondering if you would take the patches that you already reviewed for the next pull request. That way v2 would be smaller. thanks
On 10/19/2017 10:33 AM, Marc-André Lureau wrote: > Hi Stefan > > ----- Original Message ----- >> On 10/09/2017 06:55 PM, Marc-André Lureau wrote: >>> Hi, >>> >>> I accumulated a series of patch doing some TPM code cleanup while >>> doing review. I removed some dead code, simplified other parts, and >>> tried to isolate implementation of the backend and frontend by using a >>> new TPMIf interface. I solved a few issues, and added some FIXME for >>> what should be tackled. Finally, I implemented a simple CRB device >>> (tpm 2.0) that is work in progress for now - it works fine with >>> passthrough, but swtpm/libtpms with win10 has some issues that need >>> more investigations. >>> >>> seabios CRB support is required for TPM 2.0 & emulation >>> (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) >>> >>> Comments/review welcome! >> Are you going to post a v2 soon? > I was wondering if you would take the patches that you already reviewed for the next pull request. That way v2 would be smaller. I'll take them up to 21/42. Stefan
On 10/19/2017 10:44 AM, Stefan Berger wrote: > On 10/19/2017 10:33 AM, Marc-André Lureau wrote: >> Hi Stefan >> >> ----- Original Message ----- >>> On 10/09/2017 06:55 PM, Marc-André Lureau wrote: >>>> Hi, >>>> >>>> I accumulated a series of patch doing some TPM code cleanup while >>>> doing review. I removed some dead code, simplified other parts, and >>>> tried to isolate implementation of the backend and frontend by using a >>>> new TPMIf interface. I solved a few issues, and added some FIXME for >>>> what should be tackled. Finally, I implemented a simple CRB device >>>> (tpm 2.0) that is work in progress for now - it works fine with >>>> passthrough, but swtpm/libtpms with win10 has some issues that need >>>> more investigations. >>>> >>>> seabios CRB support is required for TPM 2.0 & emulation >>>> (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) >>>> >>>> Comments/review welcome! >>> Are you going to post a v2 soon? >> I was wondering if you would take the patches that you already >> reviewed for the next pull request. That way v2 would be smaller. > > I'll take them up to 21/42. Tested them and it seems to work fine. I'll post later today. Did you have any more luck with win10 and tpm2 ? Stefan
Hi ----- Original Message ----- > On 10/19/2017 10:44 AM, Stefan Berger wrote: > > On 10/19/2017 10:33 AM, Marc-André Lureau wrote: > >> Hi Stefan > >> > >> ----- Original Message ----- > >>> On 10/09/2017 06:55 PM, Marc-André Lureau wrote: > >>>> Hi, > >>>> > >>>> I accumulated a series of patch doing some TPM code cleanup while > >>>> doing review. I removed some dead code, simplified other parts, and > >>>> tried to isolate implementation of the backend and frontend by using a > >>>> new TPMIf interface. I solved a few issues, and added some FIXME for > >>>> what should be tackled. Finally, I implemented a simple CRB device > >>>> (tpm 2.0) that is work in progress for now - it works fine with > >>>> passthrough, but swtpm/libtpms with win10 has some issues that need > >>>> more investigations. > >>>> > >>>> seabios CRB support is required for TPM 2.0 & emulation > >>>> (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) > >>>> > >>>> Comments/review welcome! > >>> Are you going to post a v2 soon? > >> I was wondering if you would take the patches that you already > >> reviewed for the next pull request. That way v2 would be smaller. > > > > I'll take them up to 21/42. > > Tested them and it seems to work fine. I'll post later today. > > Did you have any more luck with win10 and tpm2 ? I haven't had time so far to investigate further. The summary was that Windows refuses to talk with a TPM2/TIS device (it doesn't even shows up in device list), while TPM2/CRB is being recognized and communicated with. However, there are some failure with swtpm/libtpms that are unclear, and will require more verbosity in libtpms. I plan to resume this effort in a few weeks. Thanks
On 10/19/2017 01:00 PM, Marc-André Lureau wrote: > Hi > > ----- Original Message ----- >> On 10/19/2017 10:44 AM, Stefan Berger wrote: >>> On 10/19/2017 10:33 AM, Marc-André Lureau wrote: >>>> Hi Stefan >>>> >>>> ----- Original Message ----- >>>>> On 10/09/2017 06:55 PM, Marc-André Lureau wrote: >>>>>> Hi, >>>>>> >>>>>> I accumulated a series of patch doing some TPM code cleanup while >>>>>> doing review. I removed some dead code, simplified other parts, and >>>>>> tried to isolate implementation of the backend and frontend by using a >>>>>> new TPMIf interface. I solved a few issues, and added some FIXME for >>>>>> what should be tackled. Finally, I implemented a simple CRB device >>>>>> (tpm 2.0) that is work in progress for now - it works fine with >>>>>> passthrough, but swtpm/libtpms with win10 has some issues that need >>>>>> more investigations. >>>>>> >>>>>> seabios CRB support is required for TPM 2.0 & emulation >>>>>> (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) >>>>>> >>>>>> Comments/review welcome! >>>>> Are you going to post a v2 soon? >>>> I was wondering if you would take the patches that you already >>>> reviewed for the next pull request. That way v2 would be smaller. >>> I'll take them up to 21/42. >> Tested them and it seems to work fine. I'll post later today. >> >> Did you have any more luck with win10 and tpm2 ? > I haven't had time so far to investigate further. > > The summary was that Windows refuses to talk with a TPM2/TIS device (it doesn't even shows up in device list), while TPM2/CRB is being recognized and communicated with. However, there are some failure with swtpm/libtpms that are unclear, and will require more verbosity in libtpms. I plan to resume this effort in a few weeks. TPM1.2 + TIS seems good. TPM 2 + CRB seems to have a problem with a key handle 0x81 00 00 01. Stefan > Thanks >
On 10/09/2017 06:55 PM, Marc-André Lureau wrote: > Hi, > > I accumulated a series of patch doing some TPM code cleanup while > doing review. I removed some dead code, simplified other parts, and > tried to isolate implementation of the backend and frontend by using a > new TPMIf interface. I solved a few issues, and added some FIXME for > what should be tackled. Finally, I implemented a simple CRB device > (tpm 2.0) that is work in progress for now - it works fine with > passthrough, but swtpm/libtpms with win10 has some issues that need > more investigations. You are using the swtpm with --tpm2, right? And I suppose you are using the tpm2-preview.rev146 branch of libtpms. What are the symptoms? Most of this series looks good to me. I'll go over it again and will add my Reviewed-by. It seems to have some build problems, though. For libtpms + swtpm the biggest challenge is supporting state migration, especially with TPM2. I have that working on the swtpm level in form of test cases and also with the old CUSE TPM support in QEMU + libvirt mgmt. stack with CUSE support. So ideally we would get to that point as well with the QEMU TPM emulator device to make sure suspend/resume, snapshotting, and migration work. libtpms 0.6 should have TPM 2 code and ideally swtpm 0.1 would support TPM 2 as well. Regards, Stefan > > seabios CRB support is required for TPM 2.0 & emulation > (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) > > Comments/review welcome! > > Based-on: <1507222112-20315-1-git-send-email-stefanb@linux.vnet.ibm.com> > > Marc-André Lureau (42): > tpm-tis: remove unused hw_access argument > tpm-tis: remove RAISE_STS_IRQ > tpm: make tpm_get_backend_driver() static > tpm: lookup tpm backend class in tpm_driver_find_by_type() > tpm: replace tpm_get_backend_driver() to drop be_drivers > tpm: remove tpm_register_driver() > tpm: move TPMSizedBuffer to tpm_tis.h > tpm: remove TPMDriverOps > tpm: remove init() class method > tpm: remove configure_tpm() hop > tpm: remove unused TPMBackendCmd > tpm: remove needless cast > tpm: remove locty argument from receive_cb > tpm: add TPMBackendCmd to hold the request state > tpm-emulator: fix error handling > tpm: remove locty_data from TPMState > tpm-tis: move TPMState to TIS header > tpm-tis: remove tpm_tis.h header > tpm-tis: fold TPMTISEmuState in TPMState > tpm: add a QOM TPM interface > tpm: move recv_data_callback to TPM interface > tpm-backend: store TPMIf interface, improve backend_init() > tpm-tis: no longer expose TPMState > tpm-be: call request_completed() out of thread > tpm-be: report error instead of front-end > tpm-be: ask model to the TPM interface > tpm: remove unused opened code > tpm-passthrough: don't save guessed cancel_path in options > tpm-be: update optional function pointers > tpm-passthrough: pass TPMPassthruState to handle_device_opts > tpm-backend: move set 'id' to common code > tpm-passthrough: make it safer to destroy after creation > tpm-passthrough: remove error cleanup from handle_device_opts > tpm-passthrough: workaround a possible race > tpm-tis: simplify header inclusion > tpm: rename qemu_find_tpm() -> qemu_find_tpm_be() > tpm: lookup the the TPM interface instead of TIS device > tpm: add TPM interface to lookup TPM version > tpm: add tpm_cmd_get_size() to tpm_util > acpi: change TPM TIS data conditions > tpm-emulator: add a FIXME comment about blocking cancel > WIP: add TPM CRB device > > qapi/tpm.json | 7 +- > hw/tpm/tpm_int.h | 25 +- > hw/tpm/tpm_tis.h | 70 ------ > hw/tpm/tpm_util.h | 8 +- > include/hw/acpi/tpm.h | 65 +++++ > include/sysemu/tpm.h | 59 +++-- > include/sysemu/tpm_backend.h | 70 ++---- > backends/tpm.c | 121 ++++----- > hw/i386/acpi-build.c | 33 ++- > hw/tpm/tpm_crb.c | 320 ++++++++++++++++++++++++ > hw/tpm/tpm_emulator.c | 95 +++---- > hw/tpm/tpm_passthrough.c | 114 +++------ > hw/tpm/tpm_tis.c | 499 +++++++++++++++++++------------------ > hw/tpm/tpm_util.c | 1 + > tpm.c | 63 ++--- > default-configs/i386-softmmu.mak | 1 + > default-configs/x86_64-softmmu.mak | 1 + > hw/tpm/Makefile.objs | 1 + > scripts/checkpatch.pl | 1 - > 19 files changed, 899 insertions(+), 655 deletions(-) > delete mode 100644 hw/tpm/tpm_tis.h > create mode 100644 hw/tpm/tpm_crb.c >
Hi Stefan On Tue, Oct 10, 2017 at 4:34 AM, Stefan Berger <stefanb@linux.vnet.ibm.com> wrote: > On 10/09/2017 06:55 PM, Marc-André Lureau wrote: >> >> Hi, >> >> I accumulated a series of patch doing some TPM code cleanup while >> doing review. I removed some dead code, simplified other parts, and >> tried to isolate implementation of the backend and frontend by using a >> new TPMIf interface. I solved a few issues, and added some FIXME for >> what should be tackled. Finally, I implemented a simple CRB device >> (tpm 2.0) that is work in progress for now - it works fine with >> passthrough, but swtpm/libtpms with win10 has some issues that need >> more investigations. > > > You are using the swtpm with --tpm2, right? And I suppose you are using the > tpm2-preview.rev146 branch of libtpms. What are the symptoms? Yes, I was using tpm2-preview.rev146.ossl11 branch Windows complained about malfunctioning TPM 2.0 device, despite doing many exchanges. Sadly, I couldn't find many option to make libtpms a bit more verbose, as I am not able to parse the hexdump. I haven't spent much time investigating yet. > > Most of this series looks good to me. I'll go over it again and will add my > Reviewed-by. It seems to have some build problems, though. I fixed the build issue (gcc on centos is a bit old), last version is https://github.com/elmarco/qemu/commits/tpm. > > For libtpms + swtpm the biggest challenge is supporting state migration, > especially with TPM2. I have that working on the swtpm level in form of test > cases and also with the old CUSE TPM support in QEMU + libvirt mgmt. stack > with CUSE support. So ideally we would get to that point as well with the > QEMU TPM emulator device to make sure suspend/resume, snapshotting, and > migration work. libtpms 0.6 should have TPM 2 code and ideally swtpm 0.1 > would support TPM 2 as well. Yes! thanks a lot for working on this, this is indeed essential. How close are you from releasing the migration code? Depending how quickly this series is reviewed & merged, I would like to work on cleaning up the threading code next. thanks > > Regards, > Stefan > > >> >> seabios CRB support is required for TPM 2.0 & emulation >> (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) >> >> Comments/review welcome! >> >> Based-on: <1507222112-20315-1-git-send-email-stefanb@linux.vnet.ibm.com> >> >> Marc-André Lureau (42): >> tpm-tis: remove unused hw_access argument >> tpm-tis: remove RAISE_STS_IRQ >> tpm: make tpm_get_backend_driver() static >> tpm: lookup tpm backend class in tpm_driver_find_by_type() >> tpm: replace tpm_get_backend_driver() to drop be_drivers >> tpm: remove tpm_register_driver() >> tpm: move TPMSizedBuffer to tpm_tis.h >> tpm: remove TPMDriverOps >> tpm: remove init() class method >> tpm: remove configure_tpm() hop >> tpm: remove unused TPMBackendCmd >> tpm: remove needless cast >> tpm: remove locty argument from receive_cb >> tpm: add TPMBackendCmd to hold the request state >> tpm-emulator: fix error handling >> tpm: remove locty_data from TPMState >> tpm-tis: move TPMState to TIS header >> tpm-tis: remove tpm_tis.h header >> tpm-tis: fold TPMTISEmuState in TPMState >> tpm: add a QOM TPM interface >> tpm: move recv_data_callback to TPM interface >> tpm-backend: store TPMIf interface, improve backend_init() >> tpm-tis: no longer expose TPMState >> tpm-be: call request_completed() out of thread >> tpm-be: report error instead of front-end >> tpm-be: ask model to the TPM interface >> tpm: remove unused opened code >> tpm-passthrough: don't save guessed cancel_path in options >> tpm-be: update optional function pointers >> tpm-passthrough: pass TPMPassthruState to handle_device_opts >> tpm-backend: move set 'id' to common code >> tpm-passthrough: make it safer to destroy after creation >> tpm-passthrough: remove error cleanup from handle_device_opts >> tpm-passthrough: workaround a possible race >> tpm-tis: simplify header inclusion >> tpm: rename qemu_find_tpm() -> qemu_find_tpm_be() >> tpm: lookup the the TPM interface instead of TIS device >> tpm: add TPM interface to lookup TPM version >> tpm: add tpm_cmd_get_size() to tpm_util >> acpi: change TPM TIS data conditions >> tpm-emulator: add a FIXME comment about blocking cancel >> WIP: add TPM CRB device >> >> qapi/tpm.json | 7 +- >> hw/tpm/tpm_int.h | 25 +- >> hw/tpm/tpm_tis.h | 70 ------ >> hw/tpm/tpm_util.h | 8 +- >> include/hw/acpi/tpm.h | 65 +++++ >> include/sysemu/tpm.h | 59 +++-- >> include/sysemu/tpm_backend.h | 70 ++---- >> backends/tpm.c | 121 ++++----- >> hw/i386/acpi-build.c | 33 ++- >> hw/tpm/tpm_crb.c | 320 ++++++++++++++++++++++++ >> hw/tpm/tpm_emulator.c | 95 +++---- >> hw/tpm/tpm_passthrough.c | 114 +++------ >> hw/tpm/tpm_tis.c | 499 >> +++++++++++++++++++------------------ >> hw/tpm/tpm_util.c | 1 + >> tpm.c | 63 ++--- >> default-configs/i386-softmmu.mak | 1 + >> default-configs/x86_64-softmmu.mak | 1 + >> hw/tpm/Makefile.objs | 1 + >> scripts/checkpatch.pl | 1 - >> 19 files changed, 899 insertions(+), 655 deletions(-) >> delete mode 100644 hw/tpm/tpm_tis.h >> create mode 100644 hw/tpm/tpm_crb.c >> > > -- Marc-André Lureau
On 10/10/2017 08:14 AM, Marc-André Lureau wrote: > Hi Stefan > > On Tue, Oct 10, 2017 at 4:34 AM, Stefan Berger > <stefanb@linux.vnet.ibm.com> wrote: >> On 10/09/2017 06:55 PM, Marc-André Lureau wrote: >>> Hi, >>> >>> I accumulated a series of patch doing some TPM code cleanup while >>> doing review. I removed some dead code, simplified other parts, and >>> tried to isolate implementation of the backend and frontend by using a >>> new TPMIf interface. I solved a few issues, and added some FIXME for >>> what should be tackled. Finally, I implemented a simple CRB device >>> (tpm 2.0) that is work in progress for now - it works fine with >>> passthrough, but swtpm/libtpms with win10 has some issues that need >>> more investigations. >> >> You are using the swtpm with --tpm2, right? And I suppose you are using the >> tpm2-preview.rev146 branch of libtpms. What are the symptoms? > Yes, I was using tpm2-preview.rev146.ossl11 branch > > Windows complained about malfunctioning TPM 2.0 device, despite doing > many exchanges. Sadly, I couldn't find many option to make libtpms a > bit more verbose, as I am not able to parse the hexdump. I haven't > spent much time investigating yet. libtpms's TPM 2 code doesn't have a lot of debugging output. The only solution for now is to crank up the log level to 20 and have it log into a file. It at least shows the exchange of messages. > >> Most of this series looks good to me. I'll go over it again and will add my >> Reviewed-by. It seems to have some build problems, though. > I fixed the build issue (gcc on centos is a bit old), last version is > https://github.com/elmarco/qemu/commits/tpm. > >> For libtpms + swtpm the biggest challenge is supporting state migration, >> especially with TPM2. I have that working on the swtpm level in form of test >> cases and also with the old CUSE TPM support in QEMU + libvirt mgmt. stack >> with CUSE support. So ideally we would get to that point as well with the >> QEMU TPM emulator device to make sure suspend/resume, snapshotting, and >> migration work. libtpms 0.6 should have TPM 2 code and ideally swtpm 0.1 >> would support TPM 2 as well. > Yes! thanks a lot for working on this, this is indeed essential. How > close are you from releasing the migration code? > > Depending how quickly this series is reviewed & merged, I would like > to work on cleaning up the threading code next. I haven't worked on the suspend/resume part. It would have to be a port of these 3 patches: https://github.com/stefanberger/qemu-tpm/commit/9d8c9c3f0df288242d03f78d3b103099c1910574 https://github.com/stefanberger/qemu-tpm/commit/b9ea09d2e26eac92b4a1604a7afa695c4fc2735e https://github.com/stefanberger/qemu-tpm/commit/27d332dc3b2c6bfd0fcd38e69f5c899651f3a5d8 Stefan > > > thanks > >> Regards, >> Stefan >> >> >>> seabios CRB support is required for TPM 2.0 & emulation >>> (https://mail.coreboot.org/pipermail/seabios/2017-October/011839.html) >>> >>> Comments/review welcome! >>> >>> Based-on: <1507222112-20315-1-git-send-email-stefanb@linux.vnet.ibm.com> >>> >>> Marc-André Lureau (42): >>> tpm-tis: remove unused hw_access argument >>> tpm-tis: remove RAISE_STS_IRQ >>> tpm: make tpm_get_backend_driver() static >>> tpm: lookup tpm backend class in tpm_driver_find_by_type() >>> tpm: replace tpm_get_backend_driver() to drop be_drivers >>> tpm: remove tpm_register_driver() >>> tpm: move TPMSizedBuffer to tpm_tis.h >>> tpm: remove TPMDriverOps >>> tpm: remove init() class method >>> tpm: remove configure_tpm() hop >>> tpm: remove unused TPMBackendCmd >>> tpm: remove needless cast >>> tpm: remove locty argument from receive_cb >>> tpm: add TPMBackendCmd to hold the request state >>> tpm-emulator: fix error handling >>> tpm: remove locty_data from TPMState >>> tpm-tis: move TPMState to TIS header >>> tpm-tis: remove tpm_tis.h header >>> tpm-tis: fold TPMTISEmuState in TPMState >>> tpm: add a QOM TPM interface >>> tpm: move recv_data_callback to TPM interface >>> tpm-backend: store TPMIf interface, improve backend_init() >>> tpm-tis: no longer expose TPMState >>> tpm-be: call request_completed() out of thread >>> tpm-be: report error instead of front-end >>> tpm-be: ask model to the TPM interface >>> tpm: remove unused opened code >>> tpm-passthrough: don't save guessed cancel_path in options >>> tpm-be: update optional function pointers >>> tpm-passthrough: pass TPMPassthruState to handle_device_opts >>> tpm-backend: move set 'id' to common code >>> tpm-passthrough: make it safer to destroy after creation >>> tpm-passthrough: remove error cleanup from handle_device_opts >>> tpm-passthrough: workaround a possible race >>> tpm-tis: simplify header inclusion >>> tpm: rename qemu_find_tpm() -> qemu_find_tpm_be() >>> tpm: lookup the the TPM interface instead of TIS device >>> tpm: add TPM interface to lookup TPM version >>> tpm: add tpm_cmd_get_size() to tpm_util >>> acpi: change TPM TIS data conditions >>> tpm-emulator: add a FIXME comment about blocking cancel >>> WIP: add TPM CRB device >>> >>> qapi/tpm.json | 7 +- >>> hw/tpm/tpm_int.h | 25 +- >>> hw/tpm/tpm_tis.h | 70 ------ >>> hw/tpm/tpm_util.h | 8 +- >>> include/hw/acpi/tpm.h | 65 +++++ >>> include/sysemu/tpm.h | 59 +++-- >>> include/sysemu/tpm_backend.h | 70 ++---- >>> backends/tpm.c | 121 ++++----- >>> hw/i386/acpi-build.c | 33 ++- >>> hw/tpm/tpm_crb.c | 320 ++++++++++++++++++++++++ >>> hw/tpm/tpm_emulator.c | 95 +++---- >>> hw/tpm/tpm_passthrough.c | 114 +++------ >>> hw/tpm/tpm_tis.c | 499 >>> +++++++++++++++++++------------------ >>> hw/tpm/tpm_util.c | 1 + >>> tpm.c | 63 ++--- >>> default-configs/i386-softmmu.mak | 1 + >>> default-configs/x86_64-softmmu.mak | 1 + >>> hw/tpm/Makefile.objs | 1 + >>> scripts/checkpatch.pl | 1 - >>> 19 files changed, 899 insertions(+), 655 deletions(-) >>> delete mode 100644 hw/tpm/tpm_tis.h >>> create mode 100644 hw/tpm/tpm_crb.c >>> >> > >
© 2016 - 2024 Red Hat, Inc.