All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: Eric Auger <eric.auger@redhat.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 04/25] hw/pci-host/gpex-acpi: Add native_pci_hotplug arg to acpi_dsdt_add_pci_osc
Date: Fri, 30 May 2025 10:28:11 +0100	[thread overview]
Message-ID: <20250530102811.0000648d@huawei.com> (raw)
In-Reply-To: <20250530102711.000034eb@huawei.com>

On Fri, 30 May 2025 10:27:11 +0100
Jonathan Cameron <Jonathan.Cameron@huawei.com> wrote:

> On Tue, 27 May 2025 09:40:06 +0200
> Eric Auger <eric.auger@redhat.com> wrote:
> 
> > Add a new argument to acpi_dsdt_add_pci_osc to be able to disable
> > native pci hotplug.
> > 
> > Signed-off-by: Eric Auger <eric.auger@redhat.com>
> > Reviewed-by: Gustavo Romero <gustavo.romero@linaro.org>  
> 
> Hi Eric,
> 
> Makes me wonder what we should do for CXL - I was expecting
> a very similar change.  Currently seems like those always
> allow native hotplug (__build_cxl_osc_method()) on x86 and
> arm64 (patches on list).
> 
> Maybe that has only been working because the kernel is reading
> the PCI _OSC first. Or it's always been doing native hotplug
> an no one noticed.  A quick look at logs shows the kernel
> first gets told no, then yes as it queries the two different
> _OSC types. 
> 
> Looks like I should fix that _OSC then it should be carried
> over to this as well (or if you don't mind adding a trivial
> patch to replicate this  patch for the CXL _OSC, even better!)
> 
> Other than that, this patch looks fine to me though I do wonder
> if we could unify this with build_q35_osc_method()?
> I'm not the best at reading AML generation code but whilst
> they are written quite differently they seem to be functionally
> very similar, more so after this patch.
> 
I should have read on... Sorry for the noise!

J
> > 
> > ---
> > 
> > rfc -> v1:
> > - updated the "Allow OS control for all 5 features" comment
> > ---
> >  hw/pci-host/gpex-acpi.c | 15 ++++++++-------
> >  1 file changed, 8 insertions(+), 7 deletions(-)
> > 
> > diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
> > index 0aba47c71c..f34b7cf25e 100644
> > --- a/hw/pci-host/gpex-acpi.c
> > +++ b/hw/pci-host/gpex-acpi.c
> > @@ -50,7 +50,7 @@ static void acpi_dsdt_add_pci_route_table(Aml *dev, uint32_t irq,
> >      }
> >  }
> >  
> > -static void acpi_dsdt_add_pci_osc(Aml *dev)
> > +static void acpi_dsdt_add_pci_osc(Aml *dev, bool enable_native_pcie_hotplug)
> >  {
> >      Aml *method, *UUID, *ifctx, *ifctx1, *elsectx, *buf;
> >  
> > @@ -77,11 +77,12 @@ static void acpi_dsdt_add_pci_osc(Aml *dev)
> >      aml_append(ifctx, aml_store(aml_name("CDW3"), aml_name("CTRL")));
> >  
> >      /*
> > -     * Allow OS control for all 5 features:
> > -     * PCIeHotplug SHPCHotplug PME AER PCIeCapability.
> > +     * Allow OS control for SHPCHotplug, PME, AER, PCIeCapability,
> > +     * and PCIeHotplug depending on enable_native_pcie_hotplug
> >       */
> > -    aml_append(ifctx, aml_and(aml_name("CTRL"), aml_int(0x1F),
> > -                              aml_name("CTRL")));
> > +    aml_append(ifctx, aml_and(aml_name("CTRL"),
> > +               aml_int(0x1E | (enable_native_pcie_hotplug ? 0x1 : 0x0)),
> > +               aml_name("CTRL")));
> >  
> >      ifctx1 = aml_if(aml_lnot(aml_equal(aml_arg(1), aml_int(0x1))));
> >      aml_append(ifctx1, aml_or(aml_name("CDW1"), aml_int(0x08),
> > @@ -192,7 +193,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
> >              if (is_cxl) {
> >                  build_cxl_osc_method(dev);  
> 
> This was the path I was expecting to change as well.
> 
> >              } else {
> > -                acpi_dsdt_add_pci_osc(dev);
> > +                acpi_dsdt_add_pci_osc(dev, true);
> >              }
> >  
> >              aml_append(scope, dev);
> > @@ -267,7 +268,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
> >      }
> >      aml_append(dev, aml_name_decl("_CRS", rbuf));
> >  
> > -    acpi_dsdt_add_pci_osc(dev);
> > +    acpi_dsdt_add_pci_osc(dev, true);
> >  
> >      Aml *dev_res0 = aml_device("%s", "RES0");
> >      aml_append(dev_res0, aml_name_decl("_HID", aml_string("PNP0C02")));  
> 

WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron via <qemu-devel@nongnu.org>
To: Eric Auger <eric.auger@redhat.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 04/25] hw/pci-host/gpex-acpi: Add native_pci_hotplug arg to acpi_dsdt_add_pci_osc
Date: Fri, 30 May 2025 10:28:11 +0100	[thread overview]
Message-ID: <20250530102811.0000648d@huawei.com> (raw)
In-Reply-To: <20250530102711.000034eb@huawei.com>

On Fri, 30 May 2025 10:27:11 +0100
Jonathan Cameron <Jonathan.Cameron@huawei.com> wrote:

> On Tue, 27 May 2025 09:40:06 +0200
> Eric Auger <eric.auger@redhat.com> wrote:
> 
> > Add a new argument to acpi_dsdt_add_pci_osc to be able to disable
> > native pci hotplug.
> > 
> > Signed-off-by: Eric Auger <eric.auger@redhat.com>
> > Reviewed-by: Gustavo Romero <gustavo.romero@linaro.org>  
> 
> Hi Eric,
> 
> Makes me wonder what we should do for CXL - I was expecting
> a very similar change.  Currently seems like those always
> allow native hotplug (__build_cxl_osc_method()) on x86 and
> arm64 (patches on list).
> 
> Maybe that has only been working because the kernel is reading
> the PCI _OSC first. Or it's always been doing native hotplug
> an no one noticed.  A quick look at logs shows the kernel
> first gets told no, then yes as it queries the two different
> _OSC types. 
> 
> Looks like I should fix that _OSC then it should be carried
> over to this as well (or if you don't mind adding a trivial
> patch to replicate this  patch for the CXL _OSC, even better!)
> 
> Other than that, this patch looks fine to me though I do wonder
> if we could unify this with build_q35_osc_method()?
> I'm not the best at reading AML generation code but whilst
> they are written quite differently they seem to be functionally
> very similar, more so after this patch.
> 
I should have read on... Sorry for the noise!

J
> > 
> > ---
> > 
> > rfc -> v1:
> > - updated the "Allow OS control for all 5 features" comment
> > ---
> >  hw/pci-host/gpex-acpi.c | 15 ++++++++-------
> >  1 file changed, 8 insertions(+), 7 deletions(-)
> > 
> > diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
> > index 0aba47c71c..f34b7cf25e 100644
> > --- a/hw/pci-host/gpex-acpi.c
> > +++ b/hw/pci-host/gpex-acpi.c
> > @@ -50,7 +50,7 @@ static void acpi_dsdt_add_pci_route_table(Aml *dev, uint32_t irq,
> >      }
> >  }
> >  
> > -static void acpi_dsdt_add_pci_osc(Aml *dev)
> > +static void acpi_dsdt_add_pci_osc(Aml *dev, bool enable_native_pcie_hotplug)
> >  {
> >      Aml *method, *UUID, *ifctx, *ifctx1, *elsectx, *buf;
> >  
> > @@ -77,11 +77,12 @@ static void acpi_dsdt_add_pci_osc(Aml *dev)
> >      aml_append(ifctx, aml_store(aml_name("CDW3"), aml_name("CTRL")));
> >  
> >      /*
> > -     * Allow OS control for all 5 features:
> > -     * PCIeHotplug SHPCHotplug PME AER PCIeCapability.
> > +     * Allow OS control for SHPCHotplug, PME, AER, PCIeCapability,
> > +     * and PCIeHotplug depending on enable_native_pcie_hotplug
> >       */
> > -    aml_append(ifctx, aml_and(aml_name("CTRL"), aml_int(0x1F),
> > -                              aml_name("CTRL")));
> > +    aml_append(ifctx, aml_and(aml_name("CTRL"),
> > +               aml_int(0x1E | (enable_native_pcie_hotplug ? 0x1 : 0x0)),
> > +               aml_name("CTRL")));
> >  
> >      ifctx1 = aml_if(aml_lnot(aml_equal(aml_arg(1), aml_int(0x1))));
> >      aml_append(ifctx1, aml_or(aml_name("CDW1"), aml_int(0x08),
> > @@ -192,7 +193,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
> >              if (is_cxl) {
> >                  build_cxl_osc_method(dev);  
> 
> This was the path I was expecting to change as well.
> 
> >              } else {
> > -                acpi_dsdt_add_pci_osc(dev);
> > +                acpi_dsdt_add_pci_osc(dev, true);
> >              }
> >  
> >              aml_append(scope, dev);
> > @@ -267,7 +268,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
> >      }
> >      aml_append(dev, aml_name_decl("_CRS", rbuf));
> >  
> > -    acpi_dsdt_add_pci_osc(dev);
> > +    acpi_dsdt_add_pci_osc(dev, true);
> >  
> >      Aml *dev_res0 = aml_device("%s", "RES0");
> >      aml_append(dev_res0, aml_name_decl("_HID", aml_string("PNP0C02")));  
> 



  reply	other threads:[~2025-05-30  9:28 UTC|newest]

Thread overview: 121+ 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
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
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
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
2025-05-30  9:27     ` Jonathan Cameron via
2025-05-30  9:28     ` Jonathan Cameron [this message]
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
2025-05-30 10:02     ` Jonathan Cameron via
2025-05-30 12:05     ` Igor Mammedov
2025-05-30 15:00       ` Jonathan Cameron
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
2025-05-30 10:14     ` Jonathan Cameron via
2025-05-30 12:11     ` Igor Mammedov
2025-06-11  9:13     ` Eric Auger
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
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
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
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
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
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=20250530102811.0000648d@huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=alex.bennee@linaro.org \
    --cc=anisinha@redhat.com \
    --cc=eric.auger.pro@gmail.com \
    --cc=eric.auger@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.