From: Bjorn Helgaas <helgaas@kernel.org>
To: Sean V Kelley <sean.v.kelley@intel.com>
Cc: "Zhuo, Qiuxu" <qiuxu.zhuo@intel.com>,
Jonathan.Cameron@huawei.com, rjw@rjwysocki.net,
sathyanarayanan.kuppuswamy@linux.intel.com, "Raj,
Ashok" <ashok.raj@intel.com>, "Luck, Tony" <tony.luck@intel.com>,
linux-pci@vger.kernel.org, bhelgaas@google.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 04/10] PCI/RCEC: Add pcie_walk_rcec() to walk associated RCiEPs
Date: Wed, 16 Sep 2020 17:49:42 -0500 [thread overview]
Message-ID: <20200916224942.GA1594177@bjorn-Precision-5520> (raw)
In-Reply-To: <7B04CA9A-7332-4001-963B-E56642044F5D@intel.com>
On Mon, Sep 14, 2020 at 09:55:53AM -0700, Sean V Kelley wrote:
> On 11 Sep 2020, at 17:50, Bjorn Helgaas wrote:
> > On Fri, Sep 11, 2020 at 04:16:03PM -0700, Sean V Kelley wrote:
> > > I’ve done some experimenting with this approach, and I think
> > > there may be a problem of just walking the busses during
> > > enumeration pci_init_capabilities(). One problem is where one
> > > has an RCEC on a root bus: 6a(00.4) and an RCiEP on another root
> > > bus: 6b(00.0). They will never find each other in this approach
> > > through a normal pci_bus_walk() call using their respective
> > > root_bus.
> > >
> > > > +-[0000:6b]-+-00.0
> > > > | +-00.1
> > > > | +-00.2
> > > > | \-00.3
> > > > +-[0000:6a]-+-00.0
> > > > | +-00.1
> > > > | +-00.2
> > > > | \-00.4
> >
> > Wow, is that even allowed?
> >
> > There's no bridge from 0000:6a to 0000:6b, so we will not scan 0000:6b
> > unless we find a host bridge with _CRS where 6b is the first bus
> > number below the bridge. I think that means this would have to be
> > described in ACPI as two separate root bridges:
> >
> > ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 6a])
> > ACPI: PCI Root Bridge [PCI1] (domain 0000 [bus 6b])
>
> Otherwise, the RCEC Associated Endpoint Extended Capabilities would have to
> have explicitly mentioned a bridge?
I just meant that the enumeration algorithm starts with a PNP0A03
device and searches the root bus from its _CRS, descending under any
bridges it finds. There's no PCI-to-PCI bridge from 6a to 6b (if
there *were* such a bridge, 6b would not be a root bridge).
> > I *guess* maybe it's allowed by the PCIe spec to have an RCEC and
> > associated RCiEPs on separate root buses? It seems awfully strange
> > and not in character for PCIe, but I guess I can't point to language
> > that prohibits it.
>
> Yes, it should be possible.
Ugh :)
next prev parent reply other threads:[~2020-09-16 22:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-12 16:46 [PATCH v3 00/10] Add RCEC handling to PCI/AER Sean V Kelley
2020-08-12 16:46 ` [PATCH v3 01/10] PCI/RCEC: Add RCEC class code and extended capability Sean V Kelley
2020-08-12 16:46 ` [PATCH v3 02/10] PCI/RCEC: Bind RCEC devices to the Root Port driver Sean V Kelley
2020-08-12 16:46 ` [PATCH v3 03/10] PCI/RCEC: Cache RCEC capabilities in pci_init_capabilities() Sean V Kelley
2020-08-12 16:46 ` [PATCH v3 04/10] PCI/RCEC: Add pcie_walk_rcec() to walk associated RCiEPs Sean V Kelley
2020-09-02 19:00 ` Bjorn Helgaas
2020-09-02 21:55 ` Sean V Kelley
2020-09-04 22:18 ` Kelley, Sean V
2020-09-05 2:23 ` Bjorn Helgaas
2020-09-11 23:16 ` Sean V Kelley
2020-09-12 0:50 ` Bjorn Helgaas
2020-09-14 16:55 ` Sean V Kelley
2020-09-15 16:09 ` Sean V Kelley
2020-09-15 17:47 ` Sean V Kelley
2020-09-16 23:06 ` Bjorn Helgaas
2020-09-16 22:49 ` Bjorn Helgaas [this message]
2020-08-12 16:46 ` [PATCH v3 05/10] PCI/AER: Extend AER error handling to RCECs Sean V Kelley
2020-08-26 17:26 ` Kuppuswamy, Sathyanarayanan
2020-08-26 18:55 ` sean.v.kelley
2020-08-12 16:46 ` [PATCH v3 06/10] PCI/AER: Apply function level reset to RCiEP on fatal error Sean V Kelley
2020-08-12 16:46 ` [PATCH v3 07/10] PCI: Add 'rcec' field to pci_dev for associated RCiEPs Sean V Kelley
2020-09-02 16:35 ` Bjorn Helgaas
2020-09-02 22:24 ` Sean V Kelley
2020-08-12 16:46 ` [PATCH v3 08/10] PCI/AER: Add RCEC AER handling Sean V Kelley
2020-08-12 16:46 ` [PATCH v3 09/10] PCI/PME: Add RCEC PME handling Sean V Kelley
2020-08-12 16:46 ` [PATCH v3 10/10] PCI/AER: Add RCEC AER error injection support Sean V Kelley
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=20200916224942.GA1594177@bjorn-Precision-5520 \
--to=helgaas@kernel.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=ashok.raj@intel.com \
--cc=bhelgaas@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=qiuxu.zhuo@intel.com \
--cc=rjw@rjwysocki.net \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=sean.v.kelley@intel.com \
--cc=tony.luck@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).