[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 21/28] acpi: change TPM TIS data conditions
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v2 21/28] acpi: change TPM TIS data conditions |
Date: |
Mon, 6 Nov 2017 19:39:18 +0100 |
The device should be exposed if present. It shouldn't have an
undefined version (or else backend init failed, and device should fail
too). Finally, make the fields specific to TIS device model.
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Stefan Berger <address@hidden>
---
include/sysemu/tpm.h | 3 +++
hw/i386/acpi-build.c | 12 ++++++++----
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/include/sysemu/tpm.h b/include/sysemu/tpm.h
index 650b4b8565..852e02687c 100644
--- a/include/sysemu/tpm.h
+++ b/include/sysemu/tpm.h
@@ -47,6 +47,9 @@ typedef struct TPMIfClass {
#define TYPE_TPM_TIS "tpm-tis"
+#define TPM_IS_TIS(chr) \
+ object_dynamic_cast(OBJECT(chr), TYPE_TPM_TIS)
+
/* returns NULL unless there is exactly one TPM device */
static inline TPMIf *tpm_find(void)
{
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index cdb4aa9835..dd1420b410 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -2038,7 +2038,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
}
}
- if (misc->tpm_version != TPM_VERSION_UNSPEC) {
+ if (TPM_IS_TIS(tpm_find())) {
aml_append(crs, aml_memory32_fixed(TPM_TIS_ADDR_BASE,
TPM_TIS_ADDR_SIZE, AML_READ_WRITE));
}
@@ -2204,7 +2204,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
/* Scan all PCI buses. Generate tables to support hotplug. */
build_append_pci_bus_devices(scope, bus, pm->pcihp_bridge_en);
- if (misc->tpm_version != TPM_VERSION_UNSPEC) {
+ if (TPM_IS_TIS(tpm_find())) {
dev = aml_device("ISA.TPM");
aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0C31")));
aml_append(dev, aml_name_decl("_STA", aml_int(0xF)));
@@ -2281,8 +2281,12 @@ build_tpm2(GArray *table_data, BIOSLinker *linker)
tpm2_ptr = acpi_data_push(table_data, sizeof *tpm2_ptr);
tpm2_ptr->platform_class = cpu_to_le16(TPM2_ACPI_CLASS_CLIENT);
- tpm2_ptr->control_area_address = cpu_to_le64(0);
- tpm2_ptr->start_method = cpu_to_le32(TPM2_START_METHOD_MMIO);
+ if (TPM_IS_TIS(tpm_find())) {
+ tpm2_ptr->control_area_address = cpu_to_le64(0);
+ tpm2_ptr->start_method = cpu_to_le32(TPM2_START_METHOD_MMIO);
+ } else {
+ g_warn_if_reached();
+ }
build_header(linker, table_data,
(void *)tpm2_ptr, "TPM2", sizeof(*tpm2_ptr), 4, NULL, NULL);
--
2.15.0.rc0.40.gaefcc5f6f
- [Qemu-devel] [PATCH v2 12/28] tpm-backend: move set 'id' to common code, (continued)
- [Qemu-devel] [PATCH v2 12/28] tpm-backend: move set 'id' to common code, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 10/28] tpm-be: update optional function pointers, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 13/28] tpm-passthrough: make it safer to destroy after creation, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 14/28] tpm-passthrough: simplify create(), Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 15/28] tpm-passthrough: workaround a possible race, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 16/28] tpm-tis: simplify header inclusion, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 17/28] tpm: rename qemu_find_tpm() -> qemu_find_tpm_be(), Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 18/28] tpm: lookup the the TPM interface instead of TIS device, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 19/28] tpm: add TPM interface to lookup TPM version, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 20/28] tpm: add tpm_cmd_get_size() to tpm_util, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 21/28] acpi: change TPM TIS data conditions,
Marc-André Lureau <=
- [Qemu-devel] [PATCH v2 22/28] tpm-emulator: add a FIXME comment about blocking cancel, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 23/28] tpm-tis: remove redundant 'tpm_tis:' in error messages, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 24/28] tpm-tis: check that at most one TPM device exists, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 25/28] tpm-emulator: protect concurrent ctrl_chr access, Marc-André Lureau, 2017/11/06