From: Eric Auger <eric.auger@redhat.com>
To: Jonathan Cameron <jonathan.cameron@huawei.com>,
Shameer Kolothum <skolothumtho@nvidia.com>
Cc: qemu-arm@nongnu.org, qemu-devel@nongnu.org,
peter.maydell@linaro.org, jgg@nvidia.com, nicolinc@nvidia.com,
ddutile@redhat.com, berrange@redhat.com, nathanc@nvidia.com,
mochs@nvidia.com, smostafa@google.com, wangzhou1@hisilicon.com,
jiangkunkun@huawei.com, zhangfei.gao@linaro.org,
zhenzhong.duan@intel.com, yi.l.liu@intel.com,
shameerkolothum@gmail.com
Subject: Re: [PATCH v4 16/27] hw/pci-host/gpex: Allow to generate preserve boot config DSM #5
Date: Mon, 27 Oct 2025 12:14:00 +0100 [thread overview]
Message-ID: <6576d1b9-dd44-4efe-946f-4dedc6df84d8@redhat.com> (raw)
In-Reply-To: <20251001140523.00006635@huawei.com>
On 10/1/25 3:05 PM, Jonathan Cameron wrote:
> On Mon, 29 Sep 2025 14:36:32 +0100
> Shameer Kolothum <skolothumtho@nvidia.com> wrote:
>
>> From: Eric Auger <eric.auger@redhat.com>
>>
>> Add a 'preserve_config' field in struct GPEXConfig and if set, generate the
>> DSM #5 for preserving PCI boot configurations. For SMMUV3 accel=on support,
>> we are making use of IORT RMRs in a subsequent patch and that requires the
>> DSM #5.
>>
>> At the moment the DSM generation is not yet enabled.
>>
>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>> [Shameer: Removed possible duplicate _DSM creations]
>> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
>> Signed-off-by: Shameer Kolothum <skolothumtho@nvidia.com>
> Throw an AML blob in the patch description as easier to check that against
> the spec. Add a specific spec reference as well.
>
>> ---
>> Previously, QEMU reverted an attempt to enable DSM #5 because it caused a
>> regression,
>> https://lore.kernel.org/all/20210724185234.GA2265457@roeck-us.net/.
>>
>> However, in this series, we enable it selectively, only when SMMUv3 is in
>> accelerator mode. The devices involved in the earlier regression are not
>> expected in accelerated SMMUv3 use cases.
>> ---
>> hw/pci-host/gpex-acpi.c | 29 +++++++++++++++++++++++------
>> include/hw/pci-host/gpex.h | 1 +
>> 2 files changed, 24 insertions(+), 6 deletions(-)
>>
>> diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
>> index 4587baeb78..e3825ed0b1 100644
>> --- a/hw/pci-host/gpex-acpi.c
>> +++ b/hw/pci-host/gpex-acpi.c
>> @@ -51,10 +51,11 @@ static void acpi_dsdt_add_pci_route_table(Aml *dev, uint32_t irq,
>> }
>> }
>>
>> -static Aml *build_pci_host_bridge_dsm_method(void)
>> +static Aml *build_pci_host_bridge_dsm_method(bool preserve_config)
>> {
>> Aml *method = aml_method("_DSM", 4, AML_NOTSERIALIZED);
>> Aml *UUID, *ifctx, *ifctx1, *buf;
>> + uint8_t byte_list[1] = {0};
> The inline declaration is a bit odd, but I'm not seeing a specific reason to
> change that here. Perhaps call out the change as some 'other cleanup' in the
> patch description if you want to make it anyway.
I think this is a good cleanup anyway.
>
>>
>> /* PCI Firmware Specification 3.0
>> * 4.6.1. _DSM for PCI Express Slot Information
>> @@ -64,10 +65,23 @@ static Aml *build_pci_host_bridge_dsm_method(void)
>> UUID = aml_touuid("E5C937D0-3553-4D7A-9117-EA4D19C3434D");
>> ifctx = aml_if(aml_equal(aml_arg(0), UUID));
>> ifctx1 = aml_if(aml_equal(aml_arg(2), aml_int(0)));
>> - uint8_t byte_list[1] = {0};
>> + if (preserve_config) {
>> + /* support for function 0 and function 5 */
>> + byte_list[0] = 0x21;
> Change the comment to reflect the fix in previous patch as otherwise
> it sounds like bit(0) means function 0 is supported.
>
> /* support functions other than 0, specifically function 5 */
yeah I was confused too after all this time. Maybe quote the ACPI spec
at least in the commit msg:
"
If Function Index is zero, the return is a buffer containing one bit for
each function index, starting with zero. Bit 0 indicates whether there
is support for any functions other than function 0 for the specified
UUID and Revision ID. If set to zero, no functions are supported (other
than function zero) for the specified UUID and Revision ID. If set to
one, at least one additional function is supported. For all other bits
in the buffer, a bit is set to zero to indicate if that function index
is not supported for the specific UUID and Revision ID. (For example,
bit 1 set to 0 indicates that function index 1 is not supported for the
specific UUID and Revision ID.)
"
Eric
>
>> + }
>> buf = aml_buffer(1, byte_list);
>> aml_append(ifctx1, aml_return(buf));
>> aml_append(ifctx, ifctx1);
>> + if (preserve_config) {
>> + Aml *ifctx2 = aml_if(aml_equal(aml_arg(2), aml_int(5)));
>> + /*
>> + * 0 - The operating system must not ignore the PCI configuration that
>> + * firmware has done at boot time.
>> + */
>> + aml_append(ifctx2, aml_return(aml_int(0)));
>> + aml_append(ifctx, ifctx2);
>> + }
>> +
>> aml_append(method, ifctx);
>>
>> byte_list[0] = 0;
>> @@ -77,12 +91,13 @@ static Aml *build_pci_host_bridge_dsm_method(void)
>> }
next prev parent reply other threads:[~2025-10-27 11:17 UTC|newest]
Thread overview: 163+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-29 13:36 [PATCH v4 00/27] hw/arm/virt: Add support for user-creatable accelerated SMMUv3 Shameer Kolothum
2025-09-29 13:36 ` [PATCH v4 01/27] backends/iommufd: Introduce iommufd_backend_alloc_viommu Shameer Kolothum
2025-09-29 15:35 ` Jonathan Cameron via
2025-10-17 12:21 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 02/27] backends/iommufd: Introduce iommufd_vdev_alloc Shameer Kolothum
2025-09-29 15:40 ` Jonathan Cameron via
2025-09-29 17:52 ` Nicolin Chen
2025-09-30 8:14 ` Shameer Kolothum
2025-09-29 13:36 ` [PATCH v4 03/27] hw/arm/smmu-common: Factor out common helper functions and export Shameer Kolothum
2025-09-29 15:43 ` Jonathan Cameron via
2025-09-29 13:36 ` [PATCH v4 04/27] hw/arm/smmu-common:Make iommu ops part of SMMUState Shameer Kolothum
2025-09-29 15:45 ` Jonathan Cameron via
2025-09-29 21:53 ` Nicolin Chen via
2025-10-01 16:11 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 05/27] hw/arm/smmuv3-accel: Introduce smmuv3 accel device Shameer Kolothum
2025-09-29 15:53 ` Jonathan Cameron via
2025-09-29 22:24 ` Nicolin Chen
2025-10-01 16:25 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 06/27] hw/arm/smmuv3-accel: Restrict accelerated SMMUv3 to vfio-pci endpoints with iommufd Shameer Kolothum
2025-09-29 16:08 ` Jonathan Cameron via
2025-09-30 8:03 ` Shameer Kolothum
2025-10-01 16:38 ` Eric Auger
2025-10-02 8:16 ` Shameer Kolothum
2025-09-30 0:11 ` Nicolin Chen
2025-10-02 7:29 ` Shameer Kolothum
2025-10-01 17:32 ` Eric Auger
2025-10-02 9:30 ` Shameer Kolothum
2025-10-17 12:47 ` Eric Auger
2025-10-17 13:15 ` Shameer Kolothum
2025-10-17 17:19 ` Eric Auger
2025-10-20 16:31 ` Eric Auger
2025-10-20 18:25 ` Nicolin Chen
2025-10-20 18:59 ` Shameer Kolothum
2025-10-21 15:28 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 07/27] hw/arm/smmuv3: Implement get_viommu_cap() callback Shameer Kolothum
2025-09-29 16:13 ` Jonathan Cameron via
2025-10-01 17:36 ` Eric Auger
2025-10-02 9:38 ` Shameer Kolothum
2025-10-02 12:31 ` Eric Auger
2025-10-02 9:39 ` Jonathan Cameron via
2025-09-29 13:36 ` [PATCH v4 08/27] hw/arm/smmuv3-accel: Add set/unset_iommu_device callback Shameer Kolothum
2025-09-29 16:25 ` Jonathan Cameron via
2025-09-30 8:13 ` Shameer Kolothum
2025-10-02 6:52 ` Eric Auger
2025-10-02 11:34 ` Shameer Kolothum
2025-10-02 16:44 ` Nicolin Chen
2025-10-02 18:35 ` Jason Gunthorpe
2025-10-17 12:06 ` Eric Auger
2025-10-27 11:56 ` Shameer Kolothum
2025-10-27 14:10 ` Eric Auger
2025-10-17 12:23 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 09/27] hw/arm/smmuv3-accel: Support nested STE install/uninstall support Shameer Kolothum
2025-09-29 16:41 ` Jonathan Cameron via
2025-10-02 10:04 ` Eric Auger
2025-10-02 12:08 ` Shameer Kolothum
2025-10-02 12:27 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 10/27] hw/arm/smmuv3-accel: Allocate a vDEVICE object for device Shameer Kolothum
2025-09-29 16:42 ` Jonathan Cameron via
2025-10-17 13:08 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 11/27] hw/pci/pci: Introduce optional get_msi_address_space() callback Shameer Kolothum
2025-09-29 16:48 ` Jonathan Cameron via
2025-10-16 22:30 ` Nicolin Chen
2025-10-20 16:14 ` Eric Auger
2025-10-20 18:00 ` Nicolin Chen
2025-10-21 16:26 ` Eric Auger
2025-10-21 18:56 ` Nicolin Chen
2025-10-22 16:25 ` Eric Auger
2025-10-22 16:56 ` Shameer Kolothum
2025-10-20 16:21 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 12/27] hw/arm/smmuv3-accel: Make use of " Shameer Kolothum
2025-09-29 16:51 ` Jonathan Cameron via
2025-10-02 7:33 ` Shameer Kolothum
2025-10-16 23:28 ` Nicolin Chen
2025-10-20 16:43 ` Eric Auger
2025-10-21 8:15 ` Shameer Kolothum
2025-10-21 16:16 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 13/27] hw/arm/smmuv3-accel: Add support to issue invalidation cmd to host Shameer Kolothum
2025-09-29 16:53 ` Jonathan Cameron via
2025-10-16 22:59 ` Nicolin Chen via
2025-10-27 10:13 ` Eric Auger
2025-10-27 12:20 ` Shameer Kolothum
2025-10-27 14:05 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 14/27] hw/arm/smmuv3-accel: Get host SMMUv3 hw info and validate Shameer Kolothum
2025-10-01 12:56 ` Jonathan Cameron via
2025-10-02 7:37 ` Shameer Kolothum
2025-10-02 9:54 ` Jonathan Cameron via
2025-10-27 10:41 ` Eric Auger
2025-10-27 12:23 ` Shameer Kolothum
2025-10-27 10:46 ` Eric Auger
2025-10-27 12:24 ` Shameer Kolothum
2025-09-29 13:36 ` [PATCH v4 15/27] acpi/gpex: Fix PCI Express Slot Information function 0 returned value Shameer Kolothum
2025-10-01 12:59 ` Jonathan Cameron via
2025-10-02 7:39 ` Shameer Kolothum
2025-10-21 15:32 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 16/27] hw/pci-host/gpex: Allow to generate preserve boot config DSM #5 Shameer Kolothum
2025-10-01 13:05 ` Jonathan Cameron via
2025-10-27 11:14 ` Eric Auger [this message]
2025-10-27 11:10 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 17/27] hw/arm/virt: Set PCI preserve_config for accel SMMUv3 Shameer Kolothum
2025-10-01 13:06 ` Jonathan Cameron via
2025-10-27 11:21 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 18/27] hw/arm/virt-acpi-build: Add IORT RMR regions to handle MSI nested binding Shameer Kolothum
2025-10-01 13:30 ` Jonathan Cameron via
2025-09-29 13:36 ` [PATCH v4 19/27] hw/arm/smmuv3-accel: Install S1 bypass hwpt on reset Shameer Kolothum
2025-10-01 13:32 ` Jonathan Cameron via
2025-10-16 23:19 ` Nicolin Chen
2025-10-20 14:22 ` Shameer Kolothum
2025-10-27 14:26 ` Eric Auger
2025-10-27 14:51 ` Shameer Kolothum
2025-10-29 4:26 ` Nicolin Chen
2025-10-29 18:19 ` Shameer Kolothum
2025-10-27 16:34 ` Nicolin Chen
2025-10-27 14:22 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 20/27] hw/arm/smmuv3: Add accel property for SMMUv3 device Shameer Kolothum
2025-10-16 21:48 ` Nicolin Chen
2025-10-27 14:28 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 21/27] hw/arm/smmuv3-accel: Add a property to specify RIL support Shameer Kolothum
2025-10-01 13:39 ` Jonathan Cameron via
2025-10-17 8:48 ` Zhangfei Gao
2025-10-17 9:40 ` Shameer Kolothum
2025-10-17 14:05 ` Zhangfei Gao
2025-10-27 14:44 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 22/27] hw/arm/smmuv3-accel: Add support for ATS Shameer Kolothum
2025-10-01 13:43 ` Jonathan Cameron via
2025-10-27 16:59 ` Eric Auger
2025-10-27 17:13 ` Nicolin Chen via
2025-10-27 17:38 ` Eric Auger
2025-10-27 17:53 ` Nicolin Chen
2025-10-28 12:16 ` Jason Gunthorpe
2025-10-28 13:21 ` Eric Auger
2025-10-28 13:41 ` Jason Gunthorpe
2025-10-28 13:51 ` Eric Auger
2025-10-28 14:03 ` Jason Gunthorpe
2025-10-28 14:44 ` Shameer Kolothum
2025-10-28 14:46 ` Eric Auger
2025-10-28 14:59 ` Eric Auger
2025-10-28 15:06 ` Jason Gunthorpe
2025-10-27 17:54 ` Shameer Kolothum
2025-10-27 18:02 ` Eric Auger
2025-10-28 14:03 ` Shameer Kolothum
2025-10-27 17:13 ` Shameer Kolothum
2025-09-29 13:36 ` [PATCH v4 23/27] hw/arm/smmuv3-accel: Add property to specify OAS bits Shameer Kolothum
2025-10-01 13:46 ` Jonathan Cameron via
2025-10-27 14:57 ` Eric Auger
2025-10-27 14:55 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 24/27] backends/iommufd: Retrieve PASID width from iommufd_backend_get_device_info() Shameer Kolothum
2025-10-01 13:50 ` Jonathan Cameron via
2025-10-27 17:00 ` Eric Auger
2025-10-27 17:10 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 25/27] backends/iommufd: Add a callback helper to retrieve PASID support Shameer Kolothum
2025-10-01 13:52 ` Jonathan Cameron via
2025-10-27 17:28 ` Eric Auger
2025-09-29 13:36 ` [PATCH v4 26/27] vfio: Synthesize vPASID capability to VM Shameer Kolothum
2025-10-01 13:58 ` Jonathan Cameron via
2025-10-02 8:03 ` Shameer Kolothum
2025-10-02 9:58 ` Jonathan Cameron via
2025-09-29 13:36 ` [PATCH v4 27/27] hw.arm/smmuv3: Add support for PASID enable Shameer Kolothum
2025-10-01 14:01 ` Jonathan Cameron via
2025-10-27 18:15 ` Eric Auger
2025-10-27 18:40 ` Shameer Kolothum
2025-10-28 10:31 ` Eric Auger
2025-10-17 6:25 ` [PATCH v4 00/27] hw/arm/virt: Add support for user-creatable accelerated SMMUv3 Zhangfei Gao
2025-10-17 9:43 ` Shameer Kolothum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6576d1b9-dd44-4efe-946f-4dedc6df84d8@redhat.com \
--to=eric.auger@redhat.com \
--cc=berrange@redhat.com \
--cc=ddutile@redhat.com \
--cc=jgg@nvidia.com \
--cc=jiangkunkun@huawei.com \
--cc=jonathan.cameron@huawei.com \
--cc=mochs@nvidia.com \
--cc=nathanc@nvidia.com \
--cc=nicolinc@nvidia.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shameerkolothum@gmail.com \
--cc=skolothumtho@nvidia.com \
--cc=smostafa@google.com \
--cc=wangzhou1@hisilicon.com \
--cc=yi.l.liu@intel.com \
--cc=zhangfei.gao@linaro.org \
--cc=zhenzhong.duan@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).