From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60614) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z2c7u-0006ZY-Fl for qemu-devel@nongnu.org; Wed, 10 Jun 2015 05:16:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z2c7q-0000X6-GF for qemu-devel@nongnu.org; Wed, 10 Jun 2015 05:16:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35628) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z2c7q-0000Wz-AQ for qemu-devel@nongnu.org; Wed, 10 Jun 2015 05:16:46 -0400 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id E2A3235BA73 for ; Wed, 10 Jun 2015 09:16:45 +0000 (UTC) Message-ID: <5578007A.8010401@redhat.com> Date: Wed, 10 Jun 2015 12:16:42 +0300 From: Marcel Apfelbaum MIME-Version: 1.0 References: <5572347E.1030105@redhat.com> <1433547989-7238-1-git-send-email-lersek@redhat.com> <1433547989-7238-2-git-send-email-lersek@redhat.com> In-Reply-To: <1433547989-7238-2-git-send-email-lersek@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/4] i386/acpi-build: more traditional _UID and _HID for PXB root buses List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laszlo Ersek , qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" On 06/06/2015 02:46 AM, Laszlo Ersek wrote: > The ACPI specification permits the _HID and _UID objects to evaluate to > strings. (See "6.1.5 _HID (Hardware ID)" and "6.1.12 _UID (Unique ID)" in > the ACPI v6.0 spec.) > > With regard to related standards, the UEFI specification can also express > a device address composed from string _HID and _UID identifiers, inside > the Expanded ACPI Device Path Node. (See "9.3.3 ACPI Device Path", Table > 49, in the UEFI v2.5 spec.) > > However, numeric (integer) contents for both _HID and _UID are more > traditional. They are recommended by the UEFI spec for size reasons: > > [...] the ACPI Device Path node is smaller and should be used if > possible to reduce the size of device paths that may potentially be > stored in nonvolatile storage [...] > > External tools support them better (for example the --acpi_hid and > --acpi_uid options of "efibootmgr" only take numeric identifiers). > Finally, numeric _HID and _UID contents are existing practice in the QEMU > source. > > This patch was tested with a Fedora 20 LiveCD and a preexistent Windows > Server 2012 R2 guest. Using "acpidump" and "iasl" in the Fedora guest, we > get, in the SSDT: > >> Scope (\_SB) >> { >> Device (PC04) >> { >> Name (_UID, 0x04) // _UID: Unique ID >> Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID > > Cc: Marcel Apfelbaum > Cc: Michael S. Tsirkin > Signed-off-by: Laszlo Ersek > --- > hw/i386/acpi-build.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c > index 5593e41..52c2591 100644 > --- a/hw/i386/acpi-build.c > +++ b/hw/i386/acpi-build.c > @@ -945,9 +945,8 @@ build_ssdt(GArray *table_data, GArray *linker, > > scope = aml_scope("\\_SB"); > dev = aml_device("PC%.02X", bus_num); > - aml_append(dev, > - aml_name_decl("_UID", aml_string("PC%.02X", bus_num))); > - aml_append(dev, aml_name_decl("_HID", aml_string("PNP0A03"))); > + 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("_BBN", aml_int(bus_num))); > > if (numa_node != NUMA_NODE_UNASSIGNED) { > Reviewed-by: Marcel Apfelbaum Thanks, Marcel