From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50836) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1an1Zr-0008CV-1w for qemu-devel@nongnu.org; Mon, 04 Apr 2016 06:17:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1an1Zn-0000Yx-RW for qemu-devel@nongnu.org; Mon, 04 Apr 2016 06:17:46 -0400 Received: from e18.ny.us.ibm.com ([129.33.205.208]:53036) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1an1Zn-0000Yt-Nh for qemu-devel@nongnu.org; Mon, 04 Apr 2016 06:17:43 -0400 Received: from localhost by e18.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 4 Apr 2016 06:17:42 -0400 Received: from b01cxnp22035.gho.pok.ibm.com (b01cxnp22035.gho.pok.ibm.com [9.57.198.25]) by d01dlp02.pok.ibm.com (Postfix) with ESMTP id 3D91E6E803C for ; Mon, 4 Apr 2016 06:04:29 -0400 (EDT) Received: from d01av05.pok.ibm.com (d01av05.pok.ibm.com [9.56.224.195]) by b01cxnp22035.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u34AHdvo35586170 for ; Mon, 4 Apr 2016 10:17:39 GMT Received: from d01av05.pok.ibm.com (localhost [127.0.0.1]) by d01av05.pok.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u34AC11c015975 for ; Mon, 4 Apr 2016 06:12:01 -0400 References: <1459733876-22908-1-git-send-email-stefanb@us.ibm.com> <1459733876-22908-2-git-send-email-stefanb@us.ibm.com> <20160404120114-mutt-send-email-mst@redhat.com> From: Stefan Berger Message-ID: <57023F42.1040206@linux.vnet.ibm.com> Date: Mon, 4 Apr 2016 06:17:38 -0400 MIME-Version: 1.0 In-Reply-To: <20160404120114-mutt-send-email-mst@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/2] acpi: tpm: Fix TPM ACPI description (BZ 1281413) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" , Stefan Berger Cc: imammedo@redhat.com, qemu-devel@nongnu.org, crobinso@redhat.com On 04/04/2016 05:04 AM, Michael S. Tsirkin wrote: > On Sun, Apr 03, 2016 at 09:37:55PM -0400, Stefan Berger wrote: >> This patch addresses BZ 1281413. >> >> https://bugzilla.redhat.com/show_bug.cgi?id=1281413 >> >> Fix the APCI description to make it work on operating systems that are >> more strict about the contents of the TPM's ACPI description than Linux >> is. The ACPI description was broken in commit 9e472263. >> >> We roll back the ACPI description to where it was in QEMU 2.3.1 and >> deactivate the interrupt, modify the scope to \_SB, and change the >> name of the device back to 'TPM' from 'ISA.TPM'. Here's the ACPI >> description from QEMU 2.3.1: >> >> Scope(\_SB) { >> /* TPM with emulated TPM TIS interface */ >> Device (TPM) { >> Name (_HID, EisaID ("PNP0C31")) >> Name (_CRS, ResourceTemplate () >> { >> Memory32Fixed (ReadWrite, TPM_TIS_ADDR_BASE, TPM_TIS_ADDR_SIZE) >> // older Linux tpm_tis drivers do not work with IRQ >> //IRQNoFlags () {TPM_TIS_IRQ} >> }) >> Method (_STA, 0, NotSerialized) { >> Return (0x0F) >> } >> } >> } >> >> Signed-off-by: Stefan Berger > Can we instead use Igor's patch > pc: acpi: tpm: add missing MMIO resource to PCI0._CRS > and only drop the irq_no_flags value? Igor's patch adds this here: + + if (misc->tpm_version != TPM_VERSION_UNSPEC) { + aml_append(crs, aml_memory32_fixed(TPM_TIS_ADDR_BASE, + TPM_TIS_ADDR_SIZE, AML_READ_WRITE)); + } Now we that memory description there twice? I am not sure whether this is necessary, but you are the APCI experts. > > >> --- >> hw/i386/acpi-build.c | 26 ++++++++++++-------------- >> 1 file changed, 12 insertions(+), 14 deletions(-) >> >> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c >> index 35180ef..e11c721 100644 >> --- a/hw/i386/acpi-build.c >> +++ b/hw/i386/acpi-build.c >> @@ -2335,22 +2335,20 @@ build_dsdt(GArray *table_data, GArray *linker, >> Aml *scope = aml_scope("PCI0"); >> /* 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) { >> - 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))); >> - crs = aml_resource_template(); >> - aml_append(crs, aml_memory32_fixed(TPM_TIS_ADDR_BASE, >> - TPM_TIS_ADDR_SIZE, AML_READ_WRITE)); >> - aml_append(crs, aml_irq_no_flags(TPM_TIS_IRQ)); >> - aml_append(dev, aml_name_decl("_CRS", crs)); >> - aml_append(scope, dev); >> - } >> - >> - aml_append(sb_scope, scope); >> } >> } >> + >> + if (misc->tpm_version != TPM_VERSION_UNSPEC) { >> + dev = aml_device("TPM"); >> + aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0C31"))); >> + aml_append(dev, aml_name_decl("_STA", aml_int(0xF))); >> + crs = aml_resource_template(); >> + aml_append(crs, aml_memory32_fixed(TPM_TIS_ADDR_BASE, >> + TPM_TIS_ADDR_SIZE, AML_READ_WRITE)); >> + //aml_append(crs, aml_irq_no_flags(TPM_TIS_IRQ)); >> + aml_append(dev, aml_name_decl("_CRS", crs)); >> + aml_append(sb_scope, dev); >> + } >> aml_append(dsdt, sb_scope); >> } >> >> -- >> 2.5.5