Re: [PATCH 10/10] hw/pci-host: Emit a _DSM on pxb-cxl to preserve firmware PCI config

Junjie Cao <[email protected]>
Newsgroups org.nongnu.qemu-devel,org.nongnu.qemu-arm
Message-ID <[email protected]>
Hi Manish,

On Thu, 13 Aug 2026 18:36:23 +0530, Manish Honap wrote:
> -void build_cxl_osc_method(Aml *dev)
> +void acpi_dsdt_add_cxl_host_bridge_methods(Aml *dev, bool preserve_config)
>  {
>      aml_append(dev, aml_name_decl("SUPP", aml_int(0)));
>      aml_append(dev, aml_name_decl("CTRL", aml_int(0)));
>      aml_append(dev, aml_name_decl("SUPC", aml_int(0)));
>      aml_append(dev, aml_name_decl("CTRC", aml_int(0)));
>      aml_append(dev, __build_cxl_osc_method());
> +    aml_append(dev, build_pci_host_bridge_dsm_method(preserve_config));

This is the bios-tables refresh the cover lists as pending:
/x86_64/acpi/q35/cxl and /x86_64/acpi/q35/acpihmat-genericx both hit
the all_tables_match assertion with a DSDT mismatch, and the asl diff
is exactly this _DSM under the pxb-cxl device (12638 -> 12684 bytes on
the acpihmat-generic-x variant). The g_assert aborts the test binary,
so a full run only reports the first case.

With preserve_config=false the method advertises no functions and
returns a zero buffer for every function, so the x86 half of the
change is dead AML plus golden-table churn. Append the _DSM only when
preserve_config is set: the x86 tables stay untouched and the pending
refresh drops out. Otherwise the usual three-patch bios-tables update
needs to ride in this series.

aarch64/virt has no CXL golden files, so nothing catches the arm side
either way.

Many thanks,
Junjie
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.