Merge tpm 2020/06/23 v1
-----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEuBi5yt+QicLVzsZrda1lgCoLQhEFAl7x6OcACgkQda1lgCoL QhFfbQf+MXBK1quIxEKW82Rdf3Eh/uKcAqWQ3IAd/wIHqK2fzB68PSroI7ETrwY1 z2oNtg50Wps43eaRjIJVNnEwU1yKGzDcSfjlnabDH7ZbtSx1VlSfGIiufxN6bh0A bSBMMCPWlL2rNvQ8pI9B5fEqawjTnXn6GIAxDnYSH5wAIenKffmNC4tiN5hm8pTi 0BcsGSNiBb7BtsAokpMCrKAeASnlD1y11cFIlHmOrYOFs+m6uQ03BGu80A7P6fAa ip93eW4g10bcBMaZhqgspALOgpEArSAg6Kg8Y9XiN9giJmdZXgRS/U1l9bkKSrXV QGyaPsubLslMw3ZhO1vggoIxjAdwpA== =Iew1 -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/stefanberger/tags/pull-tpm-2020-06-23-1' into staging Merge tpm 2020/06/23 v1 # gpg: Signature made Tue 23 Jun 2020 12:35:03 BST # gpg: using RSA key B818B9CADF9089C2D5CEC66B75AD65802A0B4211 # gpg: Good signature from "Stefan Berger <stefanb@linux.vnet.ibm.com>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: B818 B9CA DF90 89C2 D5CE C66B 75AD 6580 2A0B 4211 * remotes/stefanberger/tags/pull-tpm-2020-06-23-1: tpm: Move backend code under the 'backends/' directory hw/tpm: Make 'tpm_util.h' publicly accessible as "sysemu/tpm_util.h" hw/tpm: Move DEFINE_PROP_TPMBE() macro to 'tmp_prop.h' local header hw/tpm: Move few declarations from 'tpm_util.h' to 'tpm_int.h' hw/tpm: Make TRACE_TPM_UTIL_SHOW_BUFFER check local to tpm_util.c hw/tpm: Remove unnecessary 'tpm_int.h' header inclusion hw/tpm: Move 'hw/acpi/tpm.h' inclusion from header to sources hw/tpm: Include missing 'qemu/option.h' header hw/tpm: Do not include 'qemu/osdep.h' in header hw/tpm: Rename TPMDEV as TPM_BACKEND in Kconfig backends: Add TPM files into their own directory docs/specs/tpm: Correct header path name Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
27c77b1f55
@ -2431,7 +2431,7 @@ F: hw/tpm/*
|
||||
F: include/hw/acpi/tpm.h
|
||||
F: include/sysemu/tpm*
|
||||
F: qapi/tpm.json
|
||||
F: backends/tpm.c
|
||||
F: backends/tpm/
|
||||
F: tests/qtest/*tpm*
|
||||
T: git https://github.com/stefanberger/qemu-tpm.git tpm-next
|
||||
|
||||
|
2
Makefile
2
Makefile
@ -418,7 +418,7 @@ MINIKCONF_ARGS = \
|
||||
CONFIG_LINUX=$(CONFIG_LINUX) \
|
||||
CONFIG_PVRDMA=$(CONFIG_PVRDMA)
|
||||
|
||||
MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig
|
||||
MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/backends/Kconfig $(SRC_PATH)/hw/Kconfig
|
||||
MINIKCONF_DEPS = $(MINIKCONF_INPUTS) $(wildcard $(SRC_PATH)/hw/*/Kconfig)
|
||||
MINIKCONF = $(PYTHON) $(SRC_PATH)/scripts/minikconf.py \
|
||||
|
||||
|
@ -125,6 +125,7 @@ trace-events-subdirs =
|
||||
trace-events-subdirs += accel/kvm
|
||||
trace-events-subdirs += accel/tcg
|
||||
trace-events-subdirs += backends
|
||||
trace-events-subdirs += backends/tpm
|
||||
trace-events-subdirs += crypto
|
||||
trace-events-subdirs += monitor
|
||||
ifeq ($(CONFIG_USER_ONLY),y)
|
||||
|
1
backends/Kconfig
Normal file
1
backends/Kconfig
Normal file
@ -0,0 +1 @@
|
||||
source tpm/Kconfig
|
@ -1,7 +1,7 @@
|
||||
common-obj-y += rng.o rng-egd.o rng-builtin.o
|
||||
common-obj-$(CONFIG_POSIX) += rng-random.o
|
||||
|
||||
common-obj-$(CONFIG_TPM) += tpm.o
|
||||
common-obj-$(CONFIG_TPM) += tpm/
|
||||
|
||||
common-obj-y += hostmem.o hostmem-ram.o
|
||||
common-obj-$(CONFIG_POSIX) += hostmem-file.o
|
||||
|
14
backends/tpm/Kconfig
Normal file
14
backends/tpm/Kconfig
Normal file
@ -0,0 +1,14 @@
|
||||
config TPM_BACKEND
|
||||
bool
|
||||
depends on TPM
|
||||
|
||||
config TPM_PASSTHROUGH
|
||||
bool
|
||||
default y
|
||||
# FIXME: should check for x86 host as well
|
||||
depends on TPM_BACKEND && LINUX
|
||||
|
||||
config TPM_EMULATOR
|
||||
bool
|
||||
default y
|
||||
depends on TPM_BACKEND
|
4
backends/tpm/Makefile.objs
Normal file
4
backends/tpm/Makefile.objs
Normal file
@ -0,0 +1,4 @@
|
||||
common-obj-y += tpm_backend.o
|
||||
common-obj-y += tpm_util.o
|
||||
common-obj-$(CONFIG_TPM_PASSTHROUGH) += tpm_passthrough.o
|
||||
common-obj-$(CONFIG_TPM_EMULATOR) += tpm_emulator.o
|
@ -32,8 +32,8 @@
|
||||
#include "qemu/sockets.h"
|
||||
#include "io/channel-socket.h"
|
||||
#include "sysemu/tpm_backend.h"
|
||||
#include "sysemu/tpm_util.h"
|
||||
#include "tpm_int.h"
|
||||
#include "tpm_util.h"
|
||||
#include "tpm_ioctl.h"
|
||||
#include "migration/blocker.h"
|
||||
#include "migration/vmstate.h"
|
@ -9,8 +9,11 @@
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
*/
|
||||
#ifndef TPM_TPM_INT_H
|
||||
#define TPM_TPM_INT_H
|
||||
#ifndef BACKENDS_TPM_INT_H
|
||||
#define BACKENDS_TPM_INT_H
|
||||
|
||||
#include "qemu/option.h"
|
||||
#include "sysemu/tpm.h"
|
||||
|
||||
#define TPM_STANDARD_CMDLINE_OPTS \
|
||||
{ \
|
||||
@ -72,4 +75,14 @@ struct tpm_resp_hdr {
|
||||
#define TPM_RC_FAILURE 0x101
|
||||
#define TPM_RC_LOCALITY 0x907
|
||||
|
||||
#endif /* TPM_TPM_INT_H */
|
||||
int tpm_util_get_buffer_size(int tpm_fd, TPMVersion tpm_version,
|
||||
size_t *buffersize);
|
||||
|
||||
typedef struct TPMSizedBuffer {
|
||||
uint32_t size;
|
||||
uint8_t *buffer;
|
||||
} TPMSizedBuffer;
|
||||
|
||||
void tpm_sized_buffer_reset(TPMSizedBuffer *tsb);
|
||||
|
||||
#endif /* BACKENDS_TPM_INT_H */
|
@ -28,10 +28,10 @@
|
||||
#include "qemu/module.h"
|
||||
#include "qemu/sockets.h"
|
||||
#include "sysemu/tpm_backend.h"
|
||||
#include "sysemu/tpm_util.h"
|
||||
#include "tpm_int.h"
|
||||
#include "qapi/clone-visitor.h"
|
||||
#include "qapi/qapi-visit-tpm.h"
|
||||
#include "tpm_util.h"
|
||||
#include "trace.h"
|
||||
|
||||
#define TYPE_TPM_PASSTHROUGH "tpm-passthrough"
|
@ -23,11 +23,11 @@
|
||||
#include "qemu/error-report.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qapi/visitor.h"
|
||||
#include "tpm_util.h"
|
||||
#include "tpm_int.h"
|
||||
#include "exec/memory.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "sysemu/tpm_backend.h"
|
||||
#include "sysemu/tpm_util.h"
|
||||
#include "trace.h"
|
||||
|
||||
/* tpm backend property */
|
||||
@ -357,6 +357,9 @@ void tpm_util_show_buffer(const unsigned char *buffer,
|
||||
size_t len, i;
|
||||
char *line_buffer, *p;
|
||||
|
||||
if (!trace_event_get_state_backends(TRACE_TPM_UTIL_SHOW_BUFFER)) {
|
||||
return;
|
||||
}
|
||||
len = MIN(tpm_cmd_get_size(buffer), buffer_size);
|
||||
|
||||
/*
|
33
backends/tpm/trace-events
Normal file
33
backends/tpm/trace-events
Normal file
@ -0,0 +1,33 @@
|
||||
# See docs/devel/tracing.txt for syntax documentation.
|
||||
|
||||
# tpm_passthrough.c
|
||||
tpm_passthrough_handle_request(void *cmd) "processing command %p"
|
||||
tpm_passthrough_reset(void) "reset"
|
||||
|
||||
# tpm_util.c
|
||||
tpm_util_get_buffer_size_hdr_len(uint32_t len, size_t expected) "tpm_resp->hdr.len = %u, expected = %zu"
|
||||
tpm_util_get_buffer_size_len(uint32_t len, size_t expected) "tpm_resp->len = %u, expected = %zu"
|
||||
tpm_util_get_buffer_size_hdr_len2(uint32_t len, size_t expected) "tpm2_resp->hdr.len = %u, expected = %zu"
|
||||
tpm_util_get_buffer_size_len2(uint32_t len, size_t expected) "tpm2_resp->len = %u, expected = %zu"
|
||||
tpm_util_get_buffer_size(size_t len) "buffersize of device: %zu"
|
||||
tpm_util_show_buffer(const char *direction, size_t len, const char *buf) "direction: %s len: %zu\n%s"
|
||||
|
||||
# tpm_emulator.c
|
||||
tpm_emulator_set_locality(uint8_t locty) "setting locality to %d"
|
||||
tpm_emulator_handle_request(void) "processing TPM command"
|
||||
tpm_emulator_probe_caps(uint64_t caps) "capabilities: 0x%"PRIx64
|
||||
tpm_emulator_set_buffer_size(uint32_t buffersize, uint32_t minsize, uint32_t maxsize) "buffer size: %u, min: %u, max: %u"
|
||||
tpm_emulator_startup_tpm_resume(bool is_resume, size_t buffersize) "is_resume: %d, buffer size: %zu"
|
||||
tpm_emulator_get_tpm_established_flag(uint8_t flag) "got established flag: %d"
|
||||
tpm_emulator_cancel_cmd_not_supt(void) "Backend does not support CANCEL_TPM_CMD"
|
||||
tpm_emulator_handle_device_opts_tpm12(void) "TPM Version 1.2"
|
||||
tpm_emulator_handle_device_opts_tpm2(void) "TPM Version 2"
|
||||
tpm_emulator_handle_device_opts_unspec(void) "TPM Version Unspecified"
|
||||
tpm_emulator_handle_device_opts_startup_error(void) "Startup error"
|
||||
tpm_emulator_get_state_blob(uint8_t type, uint32_t size, uint32_t flags) "got state blob type %d, %u bytes, flags 0x%08x"
|
||||
tpm_emulator_set_state_blob(uint8_t type, uint32_t size, uint32_t flags) "set state blob type %d, %u bytes, flags 0x%08x"
|
||||
tpm_emulator_set_state_blobs(void) "setting state blobs"
|
||||
tpm_emulator_set_state_blobs_error(const char *msg) "error while setting state blobs: %s"
|
||||
tpm_emulator_set_state_blobs_done(void) "Done setting state blobs"
|
||||
tpm_emulator_pre_save(void) ""
|
||||
tpm_emulator_inst_init(void) ""
|
@ -199,8 +199,8 @@ to be used with the passthrough backend or the swtpm backend.
|
||||
|
||||
QEMU files related to TPM backends:
|
||||
- ``backends/tpm.c``
|
||||
- ``include/sysemu/tpm.h``
|
||||
- ``include/sysemu/tpm_backend.h``
|
||||
- ``include/sysemu/tpm_backend_int.h``
|
||||
|
||||
The QEMU TPM passthrough device
|
||||
-------------------------------
|
||||
@ -232,9 +232,9 @@ Integrity Measurement Architecture (IMA), are not expecting to share
|
||||
PCRs.
|
||||
|
||||
QEMU files related to the TPM passthrough device:
|
||||
- ``hw/tpm/tpm_passthrough.c``
|
||||
- ``hw/tpm/tpm_util.c``
|
||||
- ``hw/tpm/tpm_util.h``
|
||||
- ``backends/tpm/tpm_passthrough.c``
|
||||
- ``backends/tpm/tpm_util.c``
|
||||
- ``include/sysemu/tpm_util.h``
|
||||
|
||||
|
||||
Command line to start QEMU with the TPM passthrough device using the host's
|
||||
@ -292,9 +292,9 @@ instrumented to initialize a TPM 1.2 or TPM 2 device using this
|
||||
command.
|
||||
|
||||
QEMU files related to the TPM emulator device:
|
||||
- ``hw/tpm/tpm_emulator.c``
|
||||
- ``hw/tpm/tpm_util.c``
|
||||
- ``hw/tpm/tpm_util.h``
|
||||
- ``backends/tpm/tpm_emulator.c``
|
||||
- ``backends/tpm/tpm_util.c``
|
||||
- ``include/sysemu/tpm_util.h``
|
||||
|
||||
The following commands start the swtpm with a UnixIO control channel over
|
||||
a socket interface. They do not need to be run as root.
|
||||
|
@ -1,7 +1,3 @@
|
||||
config TPMDEV
|
||||
bool
|
||||
depends on TPM
|
||||
|
||||
config TPM_TIS_ISA
|
||||
bool
|
||||
depends on TPM && ISA_BUS
|
||||
@ -15,26 +11,15 @@ config TPM_TIS_SYSBUS
|
||||
config TPM_TIS
|
||||
bool
|
||||
depends on TPM
|
||||
select TPMDEV
|
||||
select TPM_BACKEND
|
||||
|
||||
config TPM_CRB
|
||||
bool
|
||||
depends on TPM && PC
|
||||
select TPMDEV
|
||||
|
||||
config TPM_PASSTHROUGH
|
||||
bool
|
||||
default y
|
||||
# FIXME: should check for x86 host as well
|
||||
depends on TPMDEV && LINUX
|
||||
|
||||
config TPM_EMULATOR
|
||||
bool
|
||||
default y
|
||||
depends on TPMDEV
|
||||
select TPM_BACKEND
|
||||
|
||||
config TPM_SPAPR
|
||||
bool
|
||||
default y
|
||||
depends on TPM && PSERIES
|
||||
select TPMDEV
|
||||
select TPM_BACKEND
|
||||
|
@ -1,9 +1,6 @@
|
||||
common-obj-$(CONFIG_TPM) += tpm_util.o
|
||||
obj-$(call lor,$(CONFIG_TPM_TIS),$(CONFIG_TPM_CRB)) += tpm_ppi.o
|
||||
common-obj-$(CONFIG_TPM_TIS_ISA) += tpm_tis_isa.o
|
||||
common-obj-$(CONFIG_TPM_TIS_SYSBUS) += tpm_tis_sysbus.o
|
||||
common-obj-$(CONFIG_TPM_TIS) += tpm_tis_common.o
|
||||
common-obj-$(CONFIG_TPM_CRB) += tpm_crb.o
|
||||
common-obj-$(CONFIG_TPM_PASSTHROUGH) += tpm_passthrough.o
|
||||
common-obj-$(CONFIG_TPM_EMULATOR) += tpm_emulator.o
|
||||
obj-$(CONFIG_TPM_SPAPR) += tpm_spapr.o
|
||||
|
@ -24,9 +24,9 @@
|
||||
#include "hw/acpi/tpm.h"
|
||||
#include "migration/vmstate.h"
|
||||
#include "sysemu/tpm_backend.h"
|
||||
#include "sysemu/tpm_util.h"
|
||||
#include "sysemu/reset.h"
|
||||
#include "tpm_int.h"
|
||||
#include "tpm_util.h"
|
||||
#include "tpm_prop.h"
|
||||
#include "tpm_ppi.h"
|
||||
#include "trace.h"
|
||||
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "cpu.h"
|
||||
#include "sysemu/memory_mapping.h"
|
||||
#include "migration/vmstate.h"
|
||||
#include "hw/acpi/tpm.h"
|
||||
#include "tpm_ppi.h"
|
||||
#include "trace.h"
|
||||
|
||||
|
@ -12,7 +12,6 @@
|
||||
#ifndef TPM_TPM_PPI_H
|
||||
#define TPM_TPM_PPI_H
|
||||
|
||||
#include "hw/acpi/tpm.h"
|
||||
#include "exec/address-spaces.h"
|
||||
|
||||
typedef struct TPMPPI {
|
||||
|
31
hw/tpm/tpm_prop.h
Normal file
31
hw/tpm/tpm_prop.h
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* TPM utility functions
|
||||
*
|
||||
* Copyright (c) 2010 - 2015 IBM Corporation
|
||||
* Authors:
|
||||
* Stefan Berger <stefanb@us.ibm.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
#ifndef HW_TPM_PROP_H
|
||||
#define HW_TPM_PROP_H
|
||||
|
||||
#include "sysemu/tpm_backend.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
|
||||
#define DEFINE_PROP_TPMBE(_n, _s, _f) \
|
||||
DEFINE_PROP(_n, _s, _f, qdev_prop_tpm, TPMBackend *)
|
||||
|
||||
#endif /* HW_TPM_PROP_H */
|
@ -20,8 +20,8 @@
|
||||
#include "migration/vmstate.h"
|
||||
|
||||
#include "sysemu/tpm_backend.h"
|
||||
#include "tpm_int.h"
|
||||
#include "tpm_util.h"
|
||||
#include "sysemu/tpm_util.h"
|
||||
#include "tpm_prop.h"
|
||||
|
||||
#include "hw/ppc/spapr.h"
|
||||
#include "hw/ppc/spapr_vio.h"
|
||||
|
@ -24,7 +24,6 @@
|
||||
#ifndef TPM_TPM_TIS_H
|
||||
#define TPM_TPM_TIS_H
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "sysemu/tpm_backend.h"
|
||||
#include "tpm_ppi.h"
|
||||
|
||||
|
@ -33,8 +33,7 @@
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "migration/vmstate.h"
|
||||
#include "sysemu/tpm_backend.h"
|
||||
#include "tpm_int.h"
|
||||
#include "tpm_util.h"
|
||||
#include "sysemu/tpm_util.h"
|
||||
#include "tpm_ppi.h"
|
||||
#include "trace.h"
|
||||
|
||||
@ -79,9 +78,7 @@ static void tpm_tis_sts_set(TPMLocality *l, uint32_t flags)
|
||||
*/
|
||||
static void tpm_tis_tpm_send(TPMState *s, uint8_t locty)
|
||||
{
|
||||
if (trace_event_get_state_backends(TRACE_TPM_UTIL_SHOW_BUFFER)) {
|
||||
tpm_util_show_buffer(s->buffer, s->be_buffer_size, "To TPM");
|
||||
}
|
||||
tpm_util_show_buffer(s->buffer, s->be_buffer_size, "To TPM");
|
||||
|
||||
/*
|
||||
* rw_offset serves as length indicator for length of data;
|
||||
@ -247,9 +244,7 @@ void tpm_tis_request_completed(TPMState *s, int ret)
|
||||
s->loc[locty].state = TPM_TIS_STATE_COMPLETION;
|
||||
s->rw_offset = 0;
|
||||
|
||||
if (trace_event_get_state_backends(TRACE_TPM_UTIL_SHOW_BUFFER)) {
|
||||
tpm_util_show_buffer(s->buffer, s->be_buffer_size, "From TPM");
|
||||
}
|
||||
tpm_util_show_buffer(s->buffer, s->be_buffer_size, "From TPM");
|
||||
|
||||
if (TPM_TIS_IS_VALID_LOCTY(s->next_locty)) {
|
||||
tpm_tis_abort(s);
|
||||
|
@ -26,7 +26,8 @@
|
||||
#include "hw/isa/isa.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "migration/vmstate.h"
|
||||
#include "tpm_util.h"
|
||||
#include "hw/acpi/tpm.h"
|
||||
#include "tpm_prop.h"
|
||||
#include "tpm_tis.h"
|
||||
|
||||
typedef struct TPMStateISA {
|
||||
|
@ -25,7 +25,8 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "migration/vmstate.h"
|
||||
#include "tpm_util.h"
|
||||
#include "hw/acpi/tpm.h"
|
||||
#include "tpm_prop.h"
|
||||
#include "hw/sysbus.h"
|
||||
#include "tpm_tis.h"
|
||||
|
||||
|
@ -4,38 +4,6 @@
|
||||
tpm_crb_mmio_read(uint64_t addr, unsigned size, uint32_t val) "CRB read 0x%016" PRIx64 " len:%u val: 0x%" PRIx32
|
||||
tpm_crb_mmio_write(uint64_t addr, unsigned size, uint32_t val) "CRB write 0x%016" PRIx64 " len:%u val: 0x%" PRIx32
|
||||
|
||||
# tpm_passthrough.c
|
||||
tpm_passthrough_handle_request(void *cmd) "processing command %p"
|
||||
tpm_passthrough_reset(void) "reset"
|
||||
|
||||
# tpm_util.c
|
||||
tpm_util_get_buffer_size_hdr_len(uint32_t len, size_t expected) "tpm_resp->hdr.len = %u, expected = %zu"
|
||||
tpm_util_get_buffer_size_len(uint32_t len, size_t expected) "tpm_resp->len = %u, expected = %zu"
|
||||
tpm_util_get_buffer_size_hdr_len2(uint32_t len, size_t expected) "tpm2_resp->hdr.len = %u, expected = %zu"
|
||||
tpm_util_get_buffer_size_len2(uint32_t len, size_t expected) "tpm2_resp->len = %u, expected = %zu"
|
||||
tpm_util_get_buffer_size(size_t len) "buffersize of device: %zu"
|
||||
tpm_util_show_buffer(const char *direction, size_t len, const char *buf) "direction: %s len: %zu\n%s"
|
||||
|
||||
# tpm_emulator.c
|
||||
tpm_emulator_set_locality(uint8_t locty) "setting locality to %d"
|
||||
tpm_emulator_handle_request(void) "processing TPM command"
|
||||
tpm_emulator_probe_caps(uint64_t caps) "capabilities: 0x%"PRIx64
|
||||
tpm_emulator_set_buffer_size(uint32_t buffersize, uint32_t minsize, uint32_t maxsize) "buffer size: %u, min: %u, max: %u"
|
||||
tpm_emulator_startup_tpm_resume(bool is_resume, size_t buffersize) "is_resume: %d, buffer size: %zu"
|
||||
tpm_emulator_get_tpm_established_flag(uint8_t flag) "got established flag: %d"
|
||||
tpm_emulator_cancel_cmd_not_supt(void) "Backend does not support CANCEL_TPM_CMD"
|
||||
tpm_emulator_handle_device_opts_tpm12(void) "TPM Version 1.2"
|
||||
tpm_emulator_handle_device_opts_tpm2(void) "TPM Version 2"
|
||||
tpm_emulator_handle_device_opts_unspec(void) "TPM Version Unspecified"
|
||||
tpm_emulator_handle_device_opts_startup_error(void) "Startup error"
|
||||
tpm_emulator_get_state_blob(uint8_t type, uint32_t size, uint32_t flags) "got state blob type %d, %u bytes, flags 0x%08x"
|
||||
tpm_emulator_set_state_blob(uint8_t type, uint32_t size, uint32_t flags) "set state blob type %d, %u bytes, flags 0x%08x"
|
||||
tpm_emulator_set_state_blobs(void) "setting state blobs"
|
||||
tpm_emulator_set_state_blobs_error(const char *msg) "error while setting state blobs: %s"
|
||||
tpm_emulator_set_state_blobs_done(void) "Done setting state blobs"
|
||||
tpm_emulator_pre_save(void) ""
|
||||
tpm_emulator_inst_init(void) ""
|
||||
|
||||
# tpm_tis.c
|
||||
tpm_tis_raise_irq(uint32_t irqmask) "Raising IRQ for flag 0x%08x"
|
||||
tpm_tis_new_active_locality(uint8_t locty) "Active locality is now %d"
|
||||
@ -56,7 +24,7 @@ tpm_tis_pre_save(uint8_t locty, uint32_t rw_offset) "locty: %d, rw_offset = %u"
|
||||
# tpm_ppi.c
|
||||
tpm_ppi_memset(uint8_t *ptr, size_t size) "memset: %p %zu"
|
||||
|
||||
# hw/tpm/tpm_spapr.c
|
||||
# tpm_spapr.c
|
||||
tpm_spapr_show_buffer(const char *direction, size_t len, const char *buf) "direction: %s len: %zu\n%s"
|
||||
tpm_spapr_do_crq(uint8_t raw1, uint8_t raw2) "1st 2 bytes in CRQ: 0x%02x 0x%02x"
|
||||
tpm_spapr_do_crq_crq_result(void) "SPAPR_VTPM_INIT_CRQ_RESULT"
|
||||
|
@ -19,8 +19,8 @@
|
||||
* License along with this library; if not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
#ifndef TPM_TPM_UTIL_H
|
||||
#define TPM_TPM_UTIL_H
|
||||
#ifndef SYSEMU_TPM_UTIL_H
|
||||
#define SYSEMU_TPM_UTIL_H
|
||||
|
||||
#include "sysemu/tpm.h"
|
||||
#include "qemu/bswap.h"
|
||||
@ -66,20 +66,7 @@ static inline void tpm_cmd_set_error(void *b, uint32_t error)
|
||||
stl_be_p(b + 6, error);
|
||||
}
|
||||
|
||||
int tpm_util_get_buffer_size(int tpm_fd, TPMVersion tpm_version,
|
||||
size_t *buffersize);
|
||||
|
||||
#define DEFINE_PROP_TPMBE(_n, _s, _f) \
|
||||
DEFINE_PROP(_n, _s, _f, qdev_prop_tpm, TPMBackend *)
|
||||
|
||||
typedef struct TPMSizedBuffer {
|
||||
uint32_t size;
|
||||
uint8_t *buffer;
|
||||
} TPMSizedBuffer;
|
||||
|
||||
void tpm_sized_buffer_reset(TPMSizedBuffer *tsb);
|
||||
|
||||
void tpm_util_show_buffer(const unsigned char *buffer,
|
||||
size_t buffer_size, const char *string);
|
||||
|
||||
#endif /* TPM_TPM_UTIL_H */
|
||||
#endif /* SYSEMU_TPM_UTIL_H */
|
@ -13,7 +13,7 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include <glib/gstdio.h>
|
||||
|
||||
#include "hw/tpm/tpm_ioctl.h"
|
||||
#include "backends/tpm/tpm_ioctl.h"
|
||||
#include "io/channel-socket.h"
|
||||
#include "qapi/error.h"
|
||||
#include "tpm-emu.h"
|
||||
|
Loading…
Reference in New Issue
Block a user