From: Benjamin Herrenschmidt <benh@kernel.crashing.org> To: Bjorn Helgaas <helgaas@kernel.org> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>, Sinan Kaya <okaya@kernel.org>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "Zilberman, Zeev" <zeev@amazon.com>, "Saidi, Ali" <alisaidi@amazon.com> Subject: Re: [PATCH/RESEND] arm64: acpi/pci: invoke _DSM whether to preserve firmware PCI setup Date: Wed, 12 Jun 2019 10:06:06 +1000 [thread overview] Message-ID: <97fd2516fdde7f9f01688af426c103806f68dd2c.camel@kernel.crashing.org> (raw) In-Reply-To: <20190611233908.GA13533@google.com> On Tue, 2019-06-11 at 18:39 -0500, Bjorn Helgaas wrote: > On Thu, Jun 06, 2019 at 07:00:12PM +1000, Benjamin Herrenschmidt wrote: > > From: Ard Biesheuvel <ard.biesheuvel@linaro.org> > > > > On arm64 ACPI systems, we unconditionally reconfigure the entire PCI > > hierarchy at boot. This is a departure from what is customary on ACPI > > systems, and may break assumptions in some places (e.g., EFIFB), that > > the kernel will leave BARs of enabled PCI devices where they are. > > > > Given that PCI already specifies a device specific ACPI method (_DSM) > > for PCI root bridge nodes that tells us whether the firmware thinks > > the configuration should be left alone, let's sidestep the entire > > policy debate about whether the PCI configuration should be preserved > > or not, and put it under the control of the firmware instead. > > The current PCI Firmware spec r3.2 specifies _DSM function 5 for > PCI-to-PCI bridge objects, which does not include host bridge > (PNP0A03) nodes, but the proposed revision does allow it under host > bridges. So I'm fine with this, but we should update the commit log > so it doesn't say "PCI *already* specifies this". > > > [BenH: Added pci_assign_unassigned_root_bus_resources()] > > > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > > I think you should add a signed-off-by for yourself? I should, I forgot. That said, Lorenzo wants to wait for the actual ECN... and we're also discussing some details. > .../... > > + /* > > + * Invoke the PCI device specific method (_DSM) #5 'Ignore PCI Boot > > + * Configuration', which tells us whether the firmware wants us to > > + * preserve the configuration of the PCI resource tree for this root > > + * bridge. > > + */ > > + obj = acpi_evaluate_dsm(ACPI_HANDLE(bus->bridge), &pci_acpi_dsm_guid, 1, > > + IGNORE_PCI_BOOT_CONFIG_DSM, NULL); > > + if (obj && obj->type == ACPI_TYPE_INTEGER && obj->integer.value == 0) { > > This is fine, but can we make a tiny step toward doing this in generic > code instead of adding more arch-specific stuff? > > E.g., evaluate the _DSM in the generic acpi_pci_root_add(), set a > "preserve_config" bit in the struct acpi_pci_root, and test the bit > here? I'd rather have the flag in the host bridge no ? > It would also be nice to add a printk in the oter > pci_acpi_scan_root() implementations if the bit is set so we know that > the platform supplied the _DSM but we're ignoring it. Ok. Talking of which, look at the ongoing discussion I have with Lorenzo when it comes to pci_bus_claim_resources vs. what x86 does, I'd love for you to chime in. I'd like to try to consolidate things further accross architectures but there might be reasons I don't see as to why things are different in that area, so ... Cheers, Ben.
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> To: Bjorn Helgaas <helgaas@kernel.org> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, Ard Biesheuvel <ard.biesheuvel@linaro.org>, linux-pci@vger.kernel.org, Sinan Kaya <okaya@kernel.org>, "Zilberman, Zeev" <zeev@amazon.com>, "Saidi, Ali" <alisaidi@amazon.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH/RESEND] arm64: acpi/pci: invoke _DSM whether to preserve firmware PCI setup Date: Wed, 12 Jun 2019 10:06:06 +1000 [thread overview] Message-ID: <97fd2516fdde7f9f01688af426c103806f68dd2c.camel@kernel.crashing.org> (raw) In-Reply-To: <20190611233908.GA13533@google.com> On Tue, 2019-06-11 at 18:39 -0500, Bjorn Helgaas wrote: > On Thu, Jun 06, 2019 at 07:00:12PM +1000, Benjamin Herrenschmidt wrote: > > From: Ard Biesheuvel <ard.biesheuvel@linaro.org> > > > > On arm64 ACPI systems, we unconditionally reconfigure the entire PCI > > hierarchy at boot. This is a departure from what is customary on ACPI > > systems, and may break assumptions in some places (e.g., EFIFB), that > > the kernel will leave BARs of enabled PCI devices where they are. > > > > Given that PCI already specifies a device specific ACPI method (_DSM) > > for PCI root bridge nodes that tells us whether the firmware thinks > > the configuration should be left alone, let's sidestep the entire > > policy debate about whether the PCI configuration should be preserved > > or not, and put it under the control of the firmware instead. > > The current PCI Firmware spec r3.2 specifies _DSM function 5 for > PCI-to-PCI bridge objects, which does not include host bridge > (PNP0A03) nodes, but the proposed revision does allow it under host > bridges. So I'm fine with this, but we should update the commit log > so it doesn't say "PCI *already* specifies this". > > > [BenH: Added pci_assign_unassigned_root_bus_resources()] > > > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > > I think you should add a signed-off-by for yourself? I should, I forgot. That said, Lorenzo wants to wait for the actual ECN... and we're also discussing some details. > .../... > > + /* > > + * Invoke the PCI device specific method (_DSM) #5 'Ignore PCI Boot > > + * Configuration', which tells us whether the firmware wants us to > > + * preserve the configuration of the PCI resource tree for this root > > + * bridge. > > + */ > > + obj = acpi_evaluate_dsm(ACPI_HANDLE(bus->bridge), &pci_acpi_dsm_guid, 1, > > + IGNORE_PCI_BOOT_CONFIG_DSM, NULL); > > + if (obj && obj->type == ACPI_TYPE_INTEGER && obj->integer.value == 0) { > > This is fine, but can we make a tiny step toward doing this in generic > code instead of adding more arch-specific stuff? > > E.g., evaluate the _DSM in the generic acpi_pci_root_add(), set a > "preserve_config" bit in the struct acpi_pci_root, and test the bit > here? I'd rather have the flag in the host bridge no ? > It would also be nice to add a printk in the oter > pci_acpi_scan_root() implementations if the bit is set so we know that > the platform supplied the _DSM but we're ignoring it. Ok. Talking of which, look at the ongoing discussion I have with Lorenzo when it comes to pci_bus_claim_resources vs. what x86 does, I'd love for you to chime in. I'd like to try to consolidate things further accross architectures but there might be reasons I don't see as to why things are different in that area, so ... Cheers, Ben. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-06-12 0:06 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-03 23:41 [RFC] ARM64 PCI resource survey issue(s) Benjamin Herrenschmidt 2019-06-03 23:41 ` Benjamin Herrenschmidt 2019-06-04 1:49 ` Bjorn Helgaas 2019-06-04 1:49 ` Bjorn Helgaas 2019-06-04 3:32 ` Benjamin Herrenschmidt 2019-06-04 3:32 ` Benjamin Herrenschmidt 2019-06-04 3:37 ` Benjamin Herrenschmidt 2019-06-04 3:37 ` Benjamin Herrenschmidt 2019-06-04 6:56 ` Benjamin Herrenschmidt 2019-06-04 6:56 ` Benjamin Herrenschmidt 2019-06-04 12:49 ` Bjorn Helgaas 2019-06-04 12:49 ` Bjorn Helgaas 2019-06-04 20:41 ` Benjamin Herrenschmidt 2019-06-04 20:41 ` Benjamin Herrenschmidt 2019-06-06 9:00 ` [PATCH/RESEND] arm64: acpi/pci: invoke _DSM whether to preserve firmware PCI setup Benjamin Herrenschmidt 2019-06-06 9:00 ` Benjamin Herrenschmidt 2019-06-06 9:13 ` Ard Biesheuvel 2019-06-06 9:13 ` Ard Biesheuvel 2019-06-06 10:55 ` Benjamin Herrenschmidt 2019-06-06 10:55 ` Benjamin Herrenschmidt 2019-06-11 14:31 ` Lorenzo Pieralisi 2019-06-11 14:31 ` Lorenzo Pieralisi 2019-06-11 22:09 ` Benjamin Herrenschmidt 2019-06-11 22:09 ` Benjamin Herrenschmidt 2019-06-11 22:34 ` Ard Biesheuvel 2019-06-11 22:34 ` Ard Biesheuvel 2019-06-11 22:40 ` Benjamin Herrenschmidt 2019-06-11 22:40 ` Benjamin Herrenschmidt 2019-06-12 10:21 ` Lorenzo Pieralisi 2019-06-12 10:21 ` Lorenzo Pieralisi 2019-06-12 22:05 ` Benjamin Herrenschmidt 2019-06-12 22:05 ` Benjamin Herrenschmidt 2019-06-11 14:58 ` Lorenzo Pieralisi 2019-06-11 14:58 ` Lorenzo Pieralisi 2019-06-11 22:19 ` Benjamin Herrenschmidt 2019-06-11 22:19 ` Benjamin Herrenschmidt 2019-06-12 10:08 ` Lorenzo Pieralisi 2019-06-12 10:08 ` Lorenzo Pieralisi 2019-06-12 10:58 ` Benjamin Herrenschmidt 2019-06-12 10:58 ` Benjamin Herrenschmidt 2019-06-11 23:39 ` Bjorn Helgaas 2019-06-11 23:39 ` Bjorn Helgaas 2019-06-12 0:06 ` Benjamin Herrenschmidt [this message] 2019-06-12 0:06 ` Benjamin Herrenschmidt 2019-06-12 13:27 ` Bjorn Helgaas 2019-06-12 13:27 ` Bjorn Helgaas 2019-06-12 21:46 ` Benjamin Herrenschmidt 2019-06-12 21:46 ` Benjamin Herrenschmidt 2019-06-12 23:58 ` Benjamin Herrenschmidt 2019-06-12 23:58 ` Benjamin Herrenschmidt 2019-06-10 10:11 ` [RFC] ARM64 PCI resource survey issue(s) Lorenzo Pieralisi 2019-06-10 10:11 ` Lorenzo Pieralisi 2019-06-11 5:46 ` Benjamin Herrenschmidt 2019-06-11 5:46 ` Benjamin Herrenschmidt
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=97fd2516fdde7f9f01688af426c103806f68dd2c.camel@kernel.crashing.org \ --to=benh@kernel.crashing.org \ --cc=alisaidi@amazon.com \ --cc=ard.biesheuvel@linaro.org \ --cc=helgaas@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-pci@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=okaya@kernel.org \ --cc=zeev@amazon.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: linkBe 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.