From nobody Fri Nov 7 09:10:07 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537197053708890.606529724929; Mon, 17 Sep 2018 08:10:53 -0700 (PDT) Received: from localhost ([::1]:36034 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1vAq-0005pe-CB for importer@patchew.org; Mon, 17 Sep 2018 11:10:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53195) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g1uyj-0004cr-GD for qemu-devel@nongnu.org; Mon, 17 Sep 2018 10:58:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g1uyh-0007HF-Ly for qemu-devel@nongnu.org; Mon, 17 Sep 2018 10:58:21 -0400 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]:36048) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g1uyh-00077Z-Ax for qemu-devel@nongnu.org; Mon, 17 Sep 2018 10:58:19 -0400 Received: by mail-pg1-x541.google.com with SMTP id d1-v6so7805308pgo.3 for ; Mon, 17 Sep 2018 07:58:09 -0700 (PDT) Received: from biggerfish-TM1701.lan (45.78.72.26.16clouds.com. [45.78.72.26]) by smtp.gmail.com with ESMTPSA id 87-v6sm21276632pfn.103.2018.09.17.07.58.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 17 Sep 2018 07:58:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yYdv8R/pnCWt8cCZUz8EGXbwZJey9bU/MBn9QsE26SE=; b=fjrE1lemeRwKVaTdBAePdQiF2zU5Esm1kRMOk53Dkjqu//hmGRlNznDZHh/nGQ9V2N Up+ZAq4lbewTlM+PtUvl3jUbn2anxD6LJyjoLw6+gPdwDOwIydSevR7TPBYoHjISX7sF 4QEn6QNI5zmJ9S/I0N0GGH7UbU8s5DQh75oBhXbuvhv8nEN3hVLYiZ4YmdxibFOEckZR fEsYLEfUDYio0XAm8nLKo7D7cZcypbz83J9DzdqBFTcdI4cwtBpvKQRWODabCsKUx4nI rAx5l2eKp5KMPdICQSi6Ea0fgRR207FXYNsQaa+7s+idkIihPEqmWxlips8Bam2/EuRl xnQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yYdv8R/pnCWt8cCZUz8EGXbwZJey9bU/MBn9QsE26SE=; b=FD3X8DrAALfBOkwIIBVNf6PtYpx6s18A7DAKgOMisNxY6X+KN/wj7yPvFcoHtLt99B 3RpUvd0KIOJyGTZp0XAaiHXOTgw9TLiiXHK4A82zxkn7Id4x0GlBrT5mXcl7m04eg0Ui HpcUTX+P6A5kwbZnw7QJaSpPo+6mBTXrDOuv/2zvf6Suox+Vo9MlzVAqImmCJ9FdgElQ l6VfBiH8DS8ydSaYX0em3aBDpDV5D2mZ1t+tkDk3q/a+vgqJU/PbGhF7g0ysNWUa7G0J aNuqVW2gGOz/9CoBfUq98QfubRIB3lcc1fUq6fiGVHxBChIbuQtANYycNdz8TZ75GAGR /LWg== X-Gm-Message-State: APzg51Ba3ETmy2wx92MQkO0MIhR8LUdaLFL0mLT/TcuYbXXvUpDF1Apo 5ZtkoTMYI1OYPel4hpWqs57o8y3HfQA= X-Google-Smtp-Source: ANB0VdaARJrx16c1yQNrJiO564tMn82b+Zt0v0Y6jd7LT1fiuZMsOe0AeqkEkAtrdjg7rlh2beWLkA== X-Received: by 2002:a63:ac11:: with SMTP id v17-v6mr23758771pge.196.1537196288533; Mon, 17 Sep 2018 07:58:08 -0700 (PDT) From: Zihan Yang To: qemu-devel@nongnu.org Date: Mon, 17 Sep 2018 22:57:35 +0800 Message-Id: <1537196258-12581-5-git-send-email-whois.zihan.yang@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1537196258-12581-1-git-send-email-whois.zihan.yang@gmail.com> References: <1537196258-12581-1-git-send-email-whois.zihan.yang@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::541 Subject: [Qemu-devel] [RFC v5 4/6] i386/acpi-build: describe new pci domain in AML X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Zihan Yang , "Michael S. Tsirkin" , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Describe new pci segments of host bridges in AML as new pci devices, with _SEG and _BBN to let them be in DSDT. Signed-off-by: Zihan Yang --- hw/i386/acpi-build.c | 53 +++++++++++++++++++++++++++++-------------------= ---- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 9b49b0e..00b9aff 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1879,10 +1879,12 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, =20 crs_range_set_init(&crs_range_set); bus =3D PC_MACHINE(machine)->bus; + i =3D 1; // PCI0 is q35 host, pxb starts from PCI1 if (bus) { QLIST_FOREACH(bus, &bus->child, sibling) { uint8_t bus_num =3D pci_bus_num(bus); uint8_t numa_node =3D pci_bus_numa_node(bus); + uint32_t domain_num =3D pci_bus_domain_num(bus); =20 /* look only for expander root buses */ if (!pci_bus_is_root(bus)) { @@ -1894,9 +1896,10 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, } =20 scope =3D aml_scope("\\_SB"); - dev =3D aml_device("PC%.02X", bus_num); + dev =3D aml_device("PCI%d", i++); aml_append(dev, aml_name_decl("_UID", aml_int(bus_num))); aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0A03"))); + aml_append(dev, aml_name_decl("_SEG", aml_int(domain_num))); aml_append(dev, aml_name_decl("_BBN", aml_int(bus_num))); if (pci_bus_is_express(bus)) { aml_append(dev, build_q35_osc_method()); @@ -2130,35 +2133,39 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, { Object *pci_host; PCIBus *bus =3D NULL; + int index =3D 0; =20 pci_host =3D acpi_get_i386_pci_host(); - if (pci_host) { + while (pci_host) { bus =3D PCI_HOST_BRIDGE(pci_host)->bus; - } =20 - if (bus) { - Aml *scope =3D aml_scope("PCI0"); - /* Scan all PCI buses. Generate tables to support hotplug. */ - build_append_pci_bus_devices(scope, bus, pm->pcihp_bridge_en); + if (bus) { + Aml *scope =3D aml_scope("PCI%d", index); + /* Scan all PCI buses. Generate tables to support hotplug.= */ + build_append_pci_bus_devices(scope, bus, pm->pcihp_bridge_= en); =20 - if (TPM_IS_TIS(tpm_find())) { - dev =3D 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 =3D aml_resource_template(); - aml_append(crs, aml_memory32_fixed(TPM_TIS_ADDR_BASE, - TPM_TIS_ADDR_SIZE, AML_READ_WRITE)); - /* - FIXME: TPM_TIS_IRQ=3D5 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)); */ - aml_append(dev, aml_name_decl("_CRS", crs)); - aml_append(scope, dev); + /* Only add TPM once in pci domain 0 */ + if (index++ =3D=3D 0 && TPM_IS_TIS(tpm_find())) { + dev =3D aml_device("ISA.TPM"); + aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0= C31"))); + aml_append(dev, aml_name_decl("_STA", aml_int(0xF))); + crs =3D aml_resource_template(); + aml_append(crs, aml_memory32_fixed(TPM_TIS_ADDR_BASE, + TPM_TIS_ADDR_SIZE, AML_READ_WRITE)); + /* + FIXME: TPM_TIS_IRQ=3D5 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)); */ + aml_append(dev, aml_name_decl("_CRS", crs)); + aml_append(scope, dev); + } + + aml_append(sb_scope, scope); } =20 - aml_append(sb_scope, scope); + pci_host =3D OBJECT(QTAILQ_NEXT(PCI_HOST_BRIDGE(pci_host), nex= t)); } } =20 --=20 2.7.4