[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 08/13] hw/i386/acpi: Use TYPE_PXB_BUS property acpi_uid fo
From: |
Igor Mammedov |
Subject: |
Re: [PATCH v4 08/13] hw/i386/acpi: Use TYPE_PXB_BUS property acpi_uid for DSDT |
Date: |
Thu, 11 Jul 2024 14:34:35 +0200 |
On Tue, 2 Jul 2024 14:14:13 +0100
Jonathan Cameron <Jonathan.Cameron@huawei.com> wrote:
> Rather than relying on PCI internals, use the new acpi_property
> to obtain the ACPI _UID values. These are still the same
> as the PCI Bus numbers so no functional change.
>
> Suggested-by: Igor Mammedov <imammedo@redhat.com>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---
> v4: New patch.
> ---
> hw/i386/acpi-build.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index ee92783836..cc32f1e6d4 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -1550,6 +1550,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
> QLIST_FOREACH(bus, &bus->child, sibling) {
> uint8_t bus_num = pci_bus_num(bus);
> uint8_t numa_node = pci_bus_numa_node(bus);
> + uint8_t uid;
>
> /* look only for expander root buses */
> if (!pci_bus_is_root(bus)) {
> @@ -1560,14 +1561,16 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
> root_bus_limit = bus_num - 1;
> }
>
> + uid = object_property_get_uint(OBJECT(bus), "acpi_uid",
> + &error_fatal);
theoretically acpi_uid is 32bit, so if we are expecting
only 256 buses here, then having and assert to catch truncation
would be good.
alternatively if this UID can't ever be more than 8bit, I'd use
visit_type_uint8() in previous patch to make sure too large value
won't be silently ignored.
> scope = aml_scope("\\_SB");
>
> if (pci_bus_is_cxl(bus)) {
> - dev = aml_device("CL%.02X", bus_num);
> + dev = aml_device("CL%.02X", uid);
> } else {
> - dev = aml_device("PC%.02X", bus_num);
> + dev = aml_device("PC%.02X", uid);
> }
> - aml_append(dev, aml_name_decl("_UID", aml_int(bus_num)));
> + aml_append(dev, aml_name_decl("_UID", aml_int(uid)));
> aml_append(dev, aml_name_decl("_BBN", aml_int(bus_num)));
> if (pci_bus_is_cxl(bus)) {
> struct Aml *aml_pkg = aml_package(2);
- Re: [PATCH v4 05/13] hw/pci: Add a busnr property to pci_props and use for acpi/gi, (continued)
[PATCH v4 06/13] acpi/pci: Move Generic Initiator object handling into acpi/pci.*, Jonathan Cameron, 2024/07/02
[PATCH v4 07/13] hw/pci-bridge: Add acpi_uid property to TYPE_PXB_BUS, Jonathan Cameron, 2024/07/02
[PATCH v4 08/13] hw/i386/acpi: Use TYPE_PXB_BUS property acpi_uid for DSDT, Jonathan Cameron, 2024/07/02
- Re: [PATCH v4 08/13] hw/i386/acpi: Use TYPE_PXB_BUS property acpi_uid for DSDT,
Igor Mammedov <=
[PATCH v4 09/13] hw/pci-host/gpex-acpi: Use acpi_uid property., Jonathan Cameron, 2024/07/02
[PATCH v4 10/13] hw/acpi: Generic Port Affinity Structure support, Jonathan Cameron, 2024/07/02
[PATCH v4 11/13] bios-tables-test: Allow for new acpihmat-generic-x test data., Jonathan Cameron, 2024/07/02
[PATCH v4 12/13] bios-tables-test: Add complex SRAT / HMAT test for GI GP, Jonathan Cameron, 2024/07/02
[PATCH v4 13/13] bios-tables-test: Add data for complex numa test (GI, GP etc), Jonathan Cameron, 2024/07/02