From: Jason Gunthorpe <jgg@nvidia.com>
To: Jon Masters <jcm@redhat.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Will Deacon <will@kernel.org>, Vikram Sethi <vsethi@nvidia.com>,
Vidya Sagar <vidyas@nvidia.com>,
Thierry Reding <treding@nvidia.com>,
Jon Masters <jcm@jonmasters.org>,
Jeremy Linton <jeremy.linton@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
linux-pci@vger.kernel.org, Sudeep Holla <sudeep.holla@arm.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Bjorn Helgaas <bhelgaas@google.com>,
linux-arm-kernel@lists.infradead.org,
Eric Brower <ebrower@nvidia.com>,
Grant.Likely@arm.com
Subject: Re: [PATCH] arm64: PCI: Enable SMC conduit
Date: Fri, 18 Jun 2021 11:05:54 -0300 [thread overview]
Message-ID: <20210618140554.GD1002214@nvidia.com> (raw)
In-Reply-To: <CA+kK7ZijdNERQSauEvAffR7JLbfZ512na2-9cJrU0vFbNnDGwQ@mail.gmail.com>
On Fri, Jun 18, 2021 at 09:21:54AM -0400, Jon Masters wrote:
> Hi Jason,
> On Wed, Jun 16, 2021 at 1:38 PM Jason Gunthorpe <[1]jgg@nvidia.com>
> wrote:
>
> On Thu, Mar 25, 2021 at 01:12:31PM +0000, Lorenzo Pieralisi wrote:
> However, in modern server type systems the PCI config space is often
> a
> software fiction being created by firmware throughout the PCI
> space. This has become necessary as the config space has exploded in
> size and complexity and PCI devices themselves have become very,
> very
> complicated. Not just the config space of single devices, but even
> bridges and topology are SW created in some cases.
> HW that is doing this is already trapping the config cycles somehow,
> presumably with some very ugly way like x86's SMM. Allowing a
> designed
> in way to inject software into the config space cycles does sound a
> lot cleaner and better to me.
>
> This is not required. SMM is terrible, indeed. But we don't have to
> relive it in Arm just because that's [EL3] the easy place to shove
> things :)
"This is not required"? What does that mean?
> For instance it may solve other pain points if ARM systems had a
> cheap
> way to emulate up a "PCI device" to wrapper around some IP blob on
> chip. The x86 world has really driven this approach where everything
> on SOC is PCI discoverable, and it does seem to work well.
> IMHO SW emulation of config space is an important ingredient to do
> this.
>
> There are certainly ways to build PCI configuration space in a
> programmable way that does not require software trapping into
> MM.
Can you elaborate on what you'd like to see here? Where do you want to
put the software then?
> I strongly agree with the value of an industry standard approach
> to this in hardware, particularly if the PCIe vendors would offer
> this as IP. In a perfect world, ECAM would simply be an
> abstraction and never directly map to fixed hardware, thus one
> could correct defects in behavior in the field. I believe on the
> x86 side of the house, there is some interesting trapping support
> in the LPC/IOH already and this is absolutely what Arm should be
> doing.
AFAIK x86 has HW that traps the read/writes to the ECAM and can
trigger a FW flow to emulate them, maybe in SMM, I don't know the
details. It ceratinly used to be like this when SMM could trap the
config space io read/write registers.
Is that what you want to see for ARM? Is that better than a SMC?
That is alot of special magic hardware to avoid a SMC call...
Jason
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@nvidia.com>
To: Jon Masters <jcm@redhat.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Will Deacon <will@kernel.org>, Vikram Sethi <vsethi@nvidia.com>,
Vidya Sagar <vidyas@nvidia.com>,
Thierry Reding <treding@nvidia.com>,
Jon Masters <jcm@jonmasters.org>,
Jeremy Linton <jeremy.linton@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
linux-pci@vger.kernel.org, Sudeep Holla <sudeep.holla@arm.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Bjorn Helgaas <bhelgaas@google.com>,
linux-arm-kernel@lists.infradead.org,
Eric Brower <ebrower@nvidia.com>,
Grant.Likely@arm.com
Subject: Re: [PATCH] arm64: PCI: Enable SMC conduit
Date: Fri, 18 Jun 2021 11:05:54 -0300 [thread overview]
Message-ID: <20210618140554.GD1002214@nvidia.com> (raw)
In-Reply-To: <CA+kK7ZijdNERQSauEvAffR7JLbfZ512na2-9cJrU0vFbNnDGwQ@mail.gmail.com>
On Fri, Jun 18, 2021 at 09:21:54AM -0400, Jon Masters wrote:
> Hi Jason,
> On Wed, Jun 16, 2021 at 1:38 PM Jason Gunthorpe <[1]jgg@nvidia.com>
> wrote:
>
> On Thu, Mar 25, 2021 at 01:12:31PM +0000, Lorenzo Pieralisi wrote:
> However, in modern server type systems the PCI config space is often
> a
> software fiction being created by firmware throughout the PCI
> space. This has become necessary as the config space has exploded in
> size and complexity and PCI devices themselves have become very,
> very
> complicated. Not just the config space of single devices, but even
> bridges and topology are SW created in some cases.
> HW that is doing this is already trapping the config cycles somehow,
> presumably with some very ugly way like x86's SMM. Allowing a
> designed
> in way to inject software into the config space cycles does sound a
> lot cleaner and better to me.
>
> This is not required. SMM is terrible, indeed. But we don't have to
> relive it in Arm just because that's [EL3] the easy place to shove
> things :)
"This is not required"? What does that mean?
> For instance it may solve other pain points if ARM systems had a
> cheap
> way to emulate up a "PCI device" to wrapper around some IP blob on
> chip. The x86 world has really driven this approach where everything
> on SOC is PCI discoverable, and it does seem to work well.
> IMHO SW emulation of config space is an important ingredient to do
> this.
>
> There are certainly ways to build PCI configuration space in a
> programmable way that does not require software trapping into
> MM.
Can you elaborate on what you'd like to see here? Where do you want to
put the software then?
> I strongly agree with the value of an industry standard approach
> to this in hardware, particularly if the PCIe vendors would offer
> this as IP. In a perfect world, ECAM would simply be an
> abstraction and never directly map to fixed hardware, thus one
> could correct defects in behavior in the field. I believe on the
> x86 side of the house, there is some interesting trapping support
> in the LPC/IOH already and this is absolutely what Arm should be
> doing.
AFAIK x86 has HW that traps the read/writes to the ECAM and can
trigger a FW flow to emulate them, maybe in SMM, I don't know the
details. It ceratinly used to be like this when SMM could trap the
config space io read/write registers.
Is that what you want to see for ARM? Is that better than a SMC?
That is alot of special magic hardware to avoid a SMC call...
Jason
_______________________________________________
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:[~2021-06-18 14:06 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-05 4:57 [PATCH] arm64: PCI: Enable SMC conduit Jeremy Linton
2021-01-05 4:57 ` Jeremy Linton
2021-01-07 15:28 ` Rob Herring
2021-01-07 15:28 ` Rob Herring
2021-01-07 16:23 ` Jeremy Linton
2021-01-07 16:23 ` Jeremy Linton
2021-01-07 17:36 ` Rob Herring
2021-01-07 17:36 ` Rob Herring
2021-01-07 19:45 ` Jeremy Linton
2021-01-07 19:45 ` Jeremy Linton
2021-01-07 20:35 ` Rob Herring
2021-01-07 20:35 ` Rob Herring
2021-01-07 18:14 ` Will Deacon
2021-01-07 18:14 ` Will Deacon
2021-01-07 19:18 ` Jeremy Linton
2021-01-07 19:18 ` Jeremy Linton
2021-01-07 21:05 ` Jon Masters
2021-01-07 21:05 ` Jon Masters
2021-01-07 21:49 ` Rob Herring
2021-01-07 21:49 ` Rob Herring
2021-01-08 10:32 ` Lorenzo Pieralisi
2021-01-08 10:32 ` Lorenzo Pieralisi
2021-01-22 19:48 ` Will Deacon
2021-01-22 19:48 ` Will Deacon
2021-01-26 16:46 ` Jeremy Linton
2021-01-26 16:46 ` Jeremy Linton
2021-01-26 22:54 ` Will Deacon
2021-01-26 22:54 ` Will Deacon
2021-01-28 18:50 ` Jeremy Linton
2021-01-28 18:50 ` Jeremy Linton
2021-01-28 23:31 ` Bjorn Helgaas
2021-01-28 23:31 ` Bjorn Helgaas
[not found] ` <CACCGGCc3zULqHgUh3Q9wA5WtPBnQ4eq_v2+1qA8bOBCQZJ5YoQ@mail.gmail.com>
2021-02-25 9:30 ` Lorenzo Pieralisi
2021-02-25 9:30 ` Lorenzo Pieralisi
2021-02-25 22:31 ` Jeremy Linton
2021-02-25 22:31 ` Jeremy Linton
2021-01-26 17:08 ` Vikram Sethi
2021-01-26 17:08 ` Vikram Sethi
2021-01-26 22:53 ` Will Deacon
2021-01-26 22:53 ` Will Deacon
2021-03-25 13:12 ` Lorenzo Pieralisi
2021-03-25 13:12 ` Lorenzo Pieralisi
2021-03-25 20:45 ` Marcin Wojtas
2021-03-25 20:45 ` Marcin Wojtas
2021-03-25 21:12 ` Jon Masters
2021-03-25 21:12 ` Jon Masters
2021-03-26 9:27 ` Marcin Wojtas
2021-03-26 9:27 ` Marcin Wojtas
2021-06-16 17:36 ` Jason Gunthorpe
2021-06-16 17:36 ` Jason Gunthorpe
[not found] ` <CA+kK7ZijdNERQSauEvAffR7JLbfZ512na2-9cJrU0vFbNnDGwQ@mail.gmail.com>
2021-06-18 14:05 ` Jason Gunthorpe [this message]
2021-06-18 14:05 ` Jason Gunthorpe
2021-06-19 16:34 ` Jon Masters
2021-06-19 16:34 ` Jon Masters
2021-06-19 16:38 ` Jon Masters
2021-06-19 16:38 ` Jon Masters
2021-06-20 0:26 ` Jason Gunthorpe
2021-06-20 0:26 ` Jason Gunthorpe
2021-06-18 15:10 ` Jeremy Linton
2021-06-18 15:10 ` Jeremy Linton
2021-01-12 16:16 ` Vidya Sagar
2021-01-12 16:16 ` Vidya Sagar
2021-01-12 16:57 ` Jeremy Linton
2021-01-12 16:57 ` Jeremy Linton
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=20210618140554.GD1002214@nvidia.com \
--to=jgg@nvidia.com \
--cc=Grant.Likely@arm.com \
--cc=bhelgaas@google.com \
--cc=catalin.marinas@arm.com \
--cc=ebrower@nvidia.com \
--cc=jcm@jonmasters.org \
--cc=jcm@redhat.com \
--cc=jeremy.linton@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=sudeep.holla@arm.com \
--cc=treding@nvidia.com \
--cc=vidyas@nvidia.com \
--cc=vsethi@nvidia.com \
--cc=will@kernel.org \
/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.