On Wed, 17 Jun 2020 10:23:02 -0400 Stefan Berger <stef...@linux.vnet.ibm.com> wrote:
> From: Stefan Berger <stef...@linux.ibm.com> > > Move the TPM TIS IRQ to unused IRQ 13, which is the only one accepted by > Windows. Query for the TPM's irq number and enable the TPM IRQ unless > TPM_IRQ_DISABLED is returned. > > Signed-off-by: Stefan Berger <stef...@linux.ibm.com> > Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> > Message-id: 20200616205721.1191408-6-stef...@linux.vnet.ibm.com > CC: Michael S. Tsirkin <m...@redhat.com> Reviewed-by: Igor Mammedov <imamm...@redhat.com> > --- > hw/i386/acpi-build.c | 11 +++++------ > include/hw/acpi/tpm.h | 2 +- > 2 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c > index 900f786d08..bb9a7f8497 100644 > --- a/hw/i386/acpi-build.c > +++ b/hw/i386/acpi-build.c > @@ -2021,6 +2021,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, > build_append_pci_bus_devices(scope, bus, pm->pcihp_bridge_en); > > if (TPM_IS_TIS_ISA(tpm)) { > + int8_t irq = tpm_get_irqnum(tpm); > if (misc->tpm_version == TPM_VERSION_2_0) { > dev = aml_device("TPM"); > aml_append(dev, aml_name_decl("_HID", > @@ -2035,12 +2036,10 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, > crs = aml_resource_template(); > aml_append(crs, aml_memory32_fixed(TPM_TIS_ADDR_BASE, > TPM_TIS_ADDR_SIZE, AML_READ_WRITE)); > - /* > - FIXME: TPM_TIS_IRQ=5 conflicts with PNP0C0F irqs, > - Rewrite to take IRQ from TPM device model and > - fix default IRQ value there to use some unused IRQ > - */ > - /* aml_append(crs, aml_irq_no_flags(TPM_TIS_IRQ)); */ > + > + if (irq != TPM_IRQ_DISABLED) { > + aml_append(crs, aml_irq_no_flags(irq)); > + } > aml_append(dev, aml_name_decl("_CRS", crs)); > > tpm_build_ppi_acpi(tpm, dev); > diff --git a/include/hw/acpi/tpm.h b/include/hw/acpi/tpm.h > index d5caee9771..d356f2e06e 100644 > --- a/include/hw/acpi/tpm.h > +++ b/include/hw/acpi/tpm.h > @@ -24,7 +24,7 @@ > #define TPM_TIS_ADDR_BASE 0xFED40000 > #define TPM_TIS_ADDR_SIZE 0x5000 > > -#define TPM_TIS_ISA_IRQ 5 > +#define TPM_TIS_ISA_IRQ 13 /* only one possible */ > #define TPM_TIS_SYSBUS_IRQ 5 > > #define TPM_TIS_NUM_LOCALITIES 5 /* per spec */