qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Auger <eric.auger@redhat.com>
To: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: eric.auger.pro@gmail.com, qemu-devel@nongnu.org,
	qemu-arm@nongnu.org, peter.maydell@linaro.org,
	imammedo@redhat.com, gustavo.romero@linaro.org,
	anisinha@redhat.com, mst@redhat.com, shannon.zhaosl@gmail.com,
	pbonzini@redhat.com, philmd@linaro.org, alex.bennee@linaro.org
Subject: Re: [PATCH v2 06/25] hw/pci-host/gpex-acpi: Propagate hotplug type info from virt machine downto gpex
Date: Wed, 11 Jun 2025 11:13:35 +0200	[thread overview]
Message-ID: <e1b7e7c3-fa13-46f8-8a61-4767ff9f7c89@redhat.com> (raw)
In-Reply-To: <20250530111413.00003c66@huawei.com>

Hi Jonathan,

On 5/30/25 12:14 PM, Jonathan Cameron wrote:
> On Tue, 27 May 2025 09:40:08 +0200
> Eric Auger <eric.auger@redhat.com> wrote:
>
>> Propagate the type of pci hotplug mode downto the gpex
>> acpi code. In case machine acpi_pcihp is unset we configure
>> pci native hotplug on pci0. For expander bridges we keep
>> legacy pci native hotplug, as done on x86 q35.
>>
>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>> Reviewed-by: Gustavo Romero <gustavo.romero@linaro.org>
>> ---
>>  include/hw/pci-host/gpex.h | 1 +
>>  hw/arm/virt-acpi-build.c   | 1 +
>>  hw/pci-host/gpex-acpi.c    | 3 ++-
>>  3 files changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/hw/pci-host/gpex.h b/include/hw/pci-host/gpex.h
>> index 84471533af..feaf827474 100644
>> --- a/include/hw/pci-host/gpex.h
>> +++ b/include/hw/pci-host/gpex.h
>> @@ -45,6 +45,7 @@ struct GPEXConfig {
>>      MemMapEntry pio;
>>      int         irq;
>>      PCIBus      *bus;
>> +    bool        pci_native_hotplug;
>>  };
>>  
>>  typedef struct GPEXIrq GPEXIrq;
>> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
>> index 7e8e0f0298..be5e00a56e 100644
>> --- a/hw/arm/virt-acpi-build.c
>> +++ b/hw/arm/virt-acpi-build.c
>> @@ -129,6 +129,7 @@ static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap,
>>          .ecam   = memmap[ecam_id],
>>          .irq    = irq,
>>          .bus    = vms->bus,
>> +        .pci_native_hotplug = !vms->acpi_pcihp,
>>      };
>>  
>>      if (vms->highmem_mmio) {
>> diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
>> index 1aa2d12026..f1ab30f3d5 100644
>> --- a/hw/pci-host/gpex-acpi.c
>> +++ b/hw/pci-host/gpex-acpi.c
>> @@ -204,6 +204,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
>>              if (is_cxl) {
>>                  build_cxl_osc_method(dev);
>>              } else {
>> +                /* pxb bridges do not have ACPI PCI Hot-plug enabled */
>>                  acpi_dsdt_add_host_bridge_methods(dev, true);
> This is awkward but explains why my CXL cases weren't causing trouble.
> A mixed config is counter to the recommendation in the PCI firmware spec
>
> "It is recommended that a machine with multiple host bridge devices should
> report the same capabilities for all host bridges of the same type and also
> negotiate control of the features described in the Control Field in the
> same way for all host bridges of the same type"

Thank for pointing to this spec excerpt.

Maybe the nuance relates to "host bridges of the same type", ie. gpex
versus pxb?
refering to Igor's following reply i will leave it as is. This is
inherited from existing x86 code in
hw/i386/acpi-build.c build_dsdt():

                /* Expander bridges do not have ACPI PCI Hot-plug enabled */
                aml_append(dev, build_q35_osc_method(true));

Eric
>
> I guess if any OS isn't coping with the mix then they can request native
> hotplug.
>
>
>
>>              }
>>  
>> @@ -279,7 +280,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
>>      }
>>      aml_append(dev, aml_name_decl("_CRS", rbuf));
>>  
>> -    acpi_dsdt_add_host_bridge_methods(dev, true);
>> +    acpi_dsdt_add_host_bridge_methods(dev, cfg->pci_native_hotplug);
>>  
>>      Aml *dev_res0 = aml_device("%s", "RES0");
>>      aml_append(dev_res0, aml_name_decl("_HID", aml_string("PNP0C02")));



  parent reply	other threads:[~2025-06-11  9:14 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-27  7:40 [PATCH v2 00/25] ACPI PCI Hotplug support on ARM Eric Auger
2025-05-27  7:40 ` [PATCH v2 01/25] hw/i386/acpi-build: Make aml_pci_device_dsm() static Eric Auger
2025-05-27 12:23   ` Igor Mammedov
2025-05-30  8:40   ` Jonathan Cameron via
2025-05-27  7:40 ` [PATCH v2 02/25] hw/arm/virt: Introduce machine state acpi pcihp flags and props Eric Auger
2025-05-27 11:58   ` Igor Mammedov
2025-05-27 13:54     ` Eric Auger
2025-05-28 10:33       ` Igor Mammedov
2025-06-11  6:53         ` Eric Auger
2025-06-11  8:45           ` Igor Mammedov
2025-06-11  8:50             ` Eric Auger
2025-06-12 12:55               ` Igor Mammedov
2025-06-13  3:01                 ` Gustavo Romero
2025-06-13  5:05                   ` Eric Auger
2025-06-13 13:39                     ` Gustavo Romero
2025-06-14  8:04                       ` Eric Auger
2025-06-11  6:47     ` Eric Auger
2025-06-11  8:49       ` Igor Mammedov
2025-06-11  8:56         ` Eric Auger
2025-06-12 13:00           ` Igor Mammedov
2025-06-12 13:54             ` Eric Auger
2025-05-30  8:58   ` Jonathan Cameron via
2025-05-27  7:40 ` [PATCH v2 03/25] hw/acpi: Rename and move build_x86_acpi_pci_hotplug to pcihp Eric Auger
2025-05-27 12:08   ` Igor Mammedov
2025-05-30  9:06   ` Jonathan Cameron via
2025-05-27  7:40 ` [PATCH v2 04/25] hw/pci-host/gpex-acpi: Add native_pci_hotplug arg to acpi_dsdt_add_pci_osc Eric Auger
2025-05-27 12:27   ` Igor Mammedov
2025-05-30  9:27   ` Jonathan Cameron via
2025-05-30  9:28     ` Jonathan Cameron via
2025-06-11 12:05     ` Eric Auger
2025-05-27  7:40 ` [PATCH v2 05/25] hw/pci-host/gpex-acpi: Split host bridge OSC and DSM generation Eric Auger
2025-05-27 12:31   ` Igor Mammedov
2025-05-30 10:02   ` Jonathan Cameron via
2025-05-30 12:05     ` Igor Mammedov
2025-05-30 15:00       ` Jonathan Cameron via
2025-06-02 10:18         ` Igor Mammedov
2025-06-11 12:18     ` Eric Auger
2025-06-11 12:22     ` Eric Auger
2025-05-27  7:40 ` [PATCH v2 06/25] hw/pci-host/gpex-acpi: Propagate hotplug type info from virt machine downto gpex Eric Auger
2025-05-27 12:33   ` Igor Mammedov
2025-06-11  9:00     ` Eric Auger
2025-06-12 13:25       ` Igor Mammedov
2025-05-30 10:14   ` Jonathan Cameron via
2025-05-30 12:11     ` Igor Mammedov
2025-06-11  9:13     ` Eric Auger [this message]
2025-05-27  7:40 ` [PATCH v2 07/25] hw/i386/acpi-build: Turn build_q35_osc_method into a generic method Eric Auger
2025-05-27 12:35   ` Igor Mammedov
2025-05-27  7:40 ` [PATCH v2 08/25] tests/qtest/bios-tables-test: Prepare for changes in the DSDT table Eric Auger
2025-05-27 12:38   ` Igor Mammedov
2025-05-27 13:03     ` Igor Mammedov
2025-06-02  5:45       ` Gustavo Romero
2025-06-11  9:45         ` Eric Auger
2025-05-27  7:40 ` [PATCH v2 09/25] hw/pci-host/gpex-acpi: Use build_pci_host_bridge_osc_method Eric Auger
2025-05-27 13:04   ` Igor Mammedov
2025-05-30 10:05   ` Jonathan Cameron via
2025-06-11 12:25     ` Eric Auger
2025-05-27  7:40 ` [PATCH v2 10/25] tests/qtest/bios-tables-test: Update DSDT blobs after GPEX _OSC change Eric Auger
2025-05-27 13:05   ` Igor Mammedov
2025-05-27  7:40 ` [PATCH v2 11/25] hw/i386/acpi-build: Introduce build_append_pcihp_resources() helper Eric Auger
2025-05-27 13:09   ` Igor Mammedov
2025-05-30 10:17   ` Jonathan Cameron via
2025-06-05 17:06     ` Eric Auger
2025-05-27  7:40 ` [PATCH v2 12/25] hw/acpi/pcihp: Add an AmlRegionSpace arg to build_acpi_pci_hotplug Eric Auger
2025-05-27 13:12   ` Igor Mammedov
2025-05-30 10:18   ` Jonathan Cameron via
2025-05-27  7:40 ` [PATCH v2 13/25] hw/i386/acpi-build: Move build_append_notification_callback to pcihp Eric Auger
2025-05-27 13:37   ` Igor Mammedov
2025-05-30 10:19   ` Jonathan Cameron via
2025-05-27  7:40 ` [PATCH v2 14/25] hw/i386/acpi-build: Move build_append_pci_bus_devices/pcihp_slots " Eric Auger
2025-05-27 13:43   ` Igor Mammedov
2025-05-30 10:24   ` Jonathan Cameron via
2025-06-05 16:03     ` Eric Auger
2025-05-27  7:40 ` [PATCH v2 15/25] hw/i386/acpi-build: Introduce and use acpi_get_pci_host Eric Auger
2025-05-27 13:58   ` Igor Mammedov
2025-05-27  7:40 ` [PATCH v2 16/25] hw/i386/acpi-build: Move aml_pci_edsm to a generic place Eric Auger
2025-05-27 14:00   ` Igor Mammedov
2025-05-27 14:07     ` Igor Mammedov
2025-05-27  7:40 ` [PATCH v2 17/25] hw/arm/virt-acpi-build: Modify the DSDT ACPI table to enable ACPI PCI hotplug Eric Auger
2025-05-27 14:12   ` Igor Mammedov
2025-05-27  7:40 ` [PATCH v2 18/25] hw/acpi/ged: Prepare the device to react to PCI hotplug events Eric Auger
2025-05-27  7:40 ` [PATCH v2 19/25] hw/acpi/ged: Call pcihp plug callbacks in hotplug handler implementation Eric Auger
2025-05-27 14:21   ` Igor Mammedov
2025-05-27  7:40 ` [PATCH v2 20/25] hw/acpi/ged: Support migration of AcpiPciHpState Eric Auger
2025-05-27 15:14   ` Igor Mammedov
2025-05-27  7:40 ` [PATCH v2 21/25] hw/core/sysbus: Introduce sysbus_mmio_map_name() helper Eric Auger
2025-05-27  7:40 ` [PATCH v2 22/25] hw/arm/virt: Let virt support pci hotplug/unplug GED event Eric Auger
2025-05-27 15:21   ` Philippe Mathieu-Daudé
2025-05-27 15:56   ` Igor Mammedov
2025-05-27 16:44     ` Gustavo Romero
2025-05-27 19:16       ` Gustavo Romero
2025-05-28 10:15       ` Igor Mammedov
2025-05-27  7:40 ` [PATCH v2 23/25] hw/arm/virt: Plug pcihp hotplug/hotunplug callbacks Eric Auger
2025-05-27  7:40 ` [PATCH v2 24/25] tests/qtest/bios-tables-test: Keep ACPI PCI hotplug off Eric Auger
2025-05-28  9:38   ` Igor Mammedov
2025-05-28  9:48     ` Eric Auger
2025-05-28 10:49       ` Igor Mammedov
2025-06-02  6:16       ` Gustavo Romero
2025-05-28 12:41     ` Gustavo Romero
2025-05-28 13:02       ` Igor Mammedov
2025-05-28 15:04         ` Gustavo Romero
2025-05-30 11:51           ` Igor Mammedov
2025-06-02  5:35             ` Gustavo Romero
2025-06-02  6:06             ` Gustavo Romero
2025-06-10 14:29               ` Gustavo Romero
2025-06-11  8:54                 ` Igor Mammedov
2025-06-11 13:14                   ` Gustavo Romero
2025-06-12 12:50                     ` Igor Mammedov
2025-05-27  7:40 ` [PATCH v2 25/25] hw/arm/virt: Use ACPI PCI hotplug by default Eric Auger

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=e1b7e7c3-fa13-46f8-8a61-4767ff9f7c89@redhat.com \
    --to=eric.auger@redhat.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=alex.bennee@linaro.org \
    --cc=anisinha@redhat.com \
    --cc=eric.auger.pro@gmail.com \
    --cc=gustavo.romero@linaro.org \
    --cc=imammedo@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=shannon.zhaosl@gmail.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).