[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 5/8] acpi: Enable TPM IRQ
From: |
Auger Eric |
Subject: |
Re: [PATCH v3 5/8] acpi: Enable TPM IRQ |
Date: |
Wed, 17 Jun 2020 10:22:55 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
Hi Stefan,
On 6/16/20 10:57 PM, Stefan Berger wrote:
> From: Stefan Berger <stefanb@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 <stefanb@linux.ibm.com>
> CC: Michael S. Tsirkin <mst@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) {
Out of curiosity what is the goal to expose the irq num as a property
settable by the end-user if only 13 is known to work in all cases. At
least shouldn't we warn the end-user in case he attempts to change the
default value?
Thanks
Eric
> + 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 */
>
[PATCH v3 6/8] tests: Add updated DSDT, Stefan Berger, 2020/06/16
[PATCH v3 3/8] tests: Temporarily ignore DSDT table differences, Stefan Berger, 2020/06/16
[PATCH v3 7/8] tpm: Guard irq related ops in case interrupts are disabled, Stefan Berger, 2020/06/16
[PATCH v3 4/8] tpm: Split TPM_TIS_IRQ into TPM_TIS_ISA_IRQ and TPM_TIS_SYSBUS_IRQ, Stefan Berger, 2020/06/16