[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v1 21/32] acpi: change TPM TIS data conditions
From: |
Stefan Berger |
Subject: |
[Qemu-devel] [PULL v1 21/32] acpi: change TPM TIS data conditions |
Date: |
Sat, 16 Dec 2017 12:41:38 -0500 |
From: Marc-André Lureau <address@hidden>
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>
Signed-off-by: Stefan Berger <address@hidden>
---
hw/i386/acpi-build.c | 12 ++++++++----
include/sysemu/tpm.h | 3 +++
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index cdb4aa9..dd1420b 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);
diff --git a/include/sysemu/tpm.h b/include/sysemu/tpm.h
index 650b4b8..852e026 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)
{
--
2.5.5
- [Qemu-devel] [PULL v1 10/32] tpm-be: update optional function pointers, (continued)
- [Qemu-devel] [PULL v1 10/32] tpm-be: update optional function pointers, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 09/32] tpm-passthrough: don't save guessed cancel_path in options, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 12/32] tpm-backend: move set 'id' to common code, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 15/32] tpm-passthrough: workaround a possible race, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 14/32] tpm-passthrough: simplify create(), Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 17/32] tpm: rename qemu_find_tpm() -> qemu_find_tpm_be(), Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 18/32] tpm: lookup the the TPM interface instead of TIS device, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 16/32] tpm-tis: simplify header inclusion, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 20/32] tpm: add tpm_cmd_get_size() to tpm_util, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 19/32] tpm: add TPM interface to lookup TPM version, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 21/32] acpi: change TPM TIS data conditions,
Stefan Berger <=
- [Qemu-devel] [PULL v1 22/32] tpm-emulator: add a FIXME comment about blocking cancel, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 23/32] tpm-tis: remove redundant 'tpm_tis:' in error messages, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 25/32] qdev: add DEFINE_PROP_TPMBE, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 24/32] tpm-tis: check that at most one TPM device exists, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 26/32] tpm-tis: use DEFINE_PROP_TPMBE, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 27/32] tpm: remove tpm_register_model(), Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 30/32] tpm: tpm_passthrough: Read the buffer size from the host device, Stefan Berger, 2017/12/16