linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
To: Rob Herring <robh+dt@kernel.org>
Cc: Serge Semin <fancer.lancer@gmail.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Jon Hunter <jonathanh@nvidia.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	<linux-pci@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-tegra@vger.kernel.org>, <vidyas@nvidia.com>,
	<mmaddireddy@nvidia.com>
Subject: Re: [PATCH V3 1/2] dt-bindings: PCI: tegra234: Add ECAM support
Date: Fri, 9 Dec 2022 13:17:43 +0300	[thread overview]
Message-ID: <20221209101743.uzyw5ejubkbfm5di@mobilestation> (raw)
In-Reply-To: <CAL_JsqK+BxHB8__aN=84R4xpoJtf4_7xHeTkbgPakdNqzywJWw@mail.gmail.com>

On Tue, Dec 06, 2022 at 03:14:58PM -0600, Rob Herring wrote:
> On Tue, Dec 6, 2022 at 10:44 AM Thierry Reding <thierry.reding@gmail.com> wrote:
> >
> > On Mon, Dec 05, 2022 at 05:41:55PM -0600, Rob Herring wrote:
> > > On Thu, Nov 17, 2022 at 3:38 PM Thierry Reding <thierry.reding@gmail.com> wrote:
> > > >
> > > > On Mon, Nov 14, 2022 at 03:53:32PM +0000, Jon Hunter wrote:
> > > > > From: Vidya Sagar <vidyas@nvidia.com>
> > > > >
> > > > > Add support for ECAM aperture that is only supported for Tegra234
> > > > > devices.
> > > > >
> > > > > Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
> > > > > Co-developed-by: Jon Hunter <jonathanh@nvidia.com>
> > > > > Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> > > > > ---
> > > > > Changes since V2:
> > > > > - Avoid duplication of reg items and reg-names
> > > > > Changes since V1:
> > > > > - Restricted the ECAM aperture to only Tegra234 devices that support it.
> > > > >
> > > > >  .../bindings/pci/nvidia,tegra194-pcie.yaml    | 34 +++++++++++++++++--
> > > > >  .../devicetree/bindings/pci/snps,dw-pcie.yaml |  2 +-
> > > > >  2 files changed, 33 insertions(+), 3 deletions(-)
> > > >
> > > > Both patches applied now.
> > >
> > > linux-next now fails with this. I suspect it is due to Sergey's
> > > changes to the DWC schema.
> > >
> > > /builds/robherring/linux-dt/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.example.dtb:
> > > pcie@14160000: reg-names:4: 'oneOf' conditional failed, one must be
> > > fixed:
> > >         'dbi' was expected
> > >         'dbi2' was expected
> > >         'ecam' is not one of ['elbi', 'app']
> > >         'atu' was expected
> > >         'dma' was expected
> > >         'phy' was expected
> > >         'config' was expected
> > >         /builds/robherring/linux-dt/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.example.dtb:
> > > pcie@14160000: reg-names:4: 'oneOf' conditional failed, one must be
> > > fixed:
> > >                 'ecam' is not one of ['apb', 'mgmt', 'link', 'ulreg', 'appl']
> > >                 'ecam' is not one of ['atu_dma']
> > >                 'ecam' is not one of ['smu', 'mpu']
> > >         From schema:
> > > /builds/robherring/linux-dt/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.yaml
> >
> > Stephen reported the other day that he wasn't able to resolve this
> > conflict in linux-next, so he dropped the ECAM bits. The ECAM patch has
> > now propagated to ARM SoC so it can't be easily backed out, but I guess
> > we could revert on that tree and instead apply the patch to the DT tree
> > and resolve the conflict there.
> >
> > I guess the better alternative would be to try and resolve the merge
> > properly and let Stephen (and Linus) know.
> 

> Instead, can you prepare a patch on top of Sergey's adding a 'oneOf'
> entry with 'ecam'. As this is a new thing, it should have its own
> entry. Then when merging, we just throw out the change from your side.

Right, the only change that is required here is to extend the
reg-names oneOf list of the DT-bindings:
< Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
with the 'ecam' entry. If it's a vendor-specific part then add to the
last the last entry defines the vendor-specific duplicates of the generic CSR
spaces.

On the other hand I don't really see a reason in adding the ECAM CSRs
space to the generic DW PCIe device since basically the ECAM memory is
just a pre-configured outbound iATU window. So if it's a ECAM-based
device then it should have been already configured by the system
bootloader upon the kernel boot up. Thus there is no point in having
the generic DW PCIe resources and it should be just a generic
ECAM-based device with a single ECAM CSR space as the
"snps,dw-pcie-ecam"/"pci-host-ecam-generic" DT-bindings require
especially seeing the Nvidia low-level driver doesn't use the ECAM
registers at all. Moreover the DW PCIe core driver doesn't
differentiate between the already configured iATU windows and the one
available for the ranges-based mapping. Instead the DW PCIe core just
disables all the detected in- and outbound iATUs by means of the
dw_pcie_iatu_setup() method. So the pre-configured ECAM space will be
reset by the driver core anyway.

What I would suggest here is to split up the devices:
1. If it's a ECAM-based device, then it should be identified as
"snps,dw-pcie-ecam"/"pci-host-ecam-generic", then it will have a
single ECAM CSR space with no need in other resources.
2. If it's a DW PCIe device with Nvidia Tegra194-specific settings,
then it should be identified as "nvidia,tegra194-pcie" with no ECAM
registers.

Thus we wouldn't need to have any modifications applied to the
bindings and to the DT-files. What do you think?

-Serge(y)

> 
> I'd really prefer that bindings don't go thru the soc tree unless
> there's some strong reason. The default is to go via the subsystem
> trees. Beyond 'we are running the dtschema checks on all our dts files
> and can't have the warnings', I don't know what that would be. I wish
> everyone was doing that, but I'm pretty sure most are not.
> 
> Rob
> 


  parent reply	other threads:[~2022-12-09 10:17 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-14 15:53 [PATCH V3 0/2] Add ECAM aperture for Tegra234 Jon Hunter
2022-11-14 15:53 ` [PATCH V3 1/2] dt-bindings: PCI: tegra234: Add ECAM support Jon Hunter
2022-11-14 16:41   ` Krzysztof Kozlowski
2022-11-15  2:01   ` Rob Herring
2022-11-15 16:02     ` Jon Hunter
2022-11-15 18:00       ` Rob Herring
2022-11-17 21:38   ` Thierry Reding
2022-12-05 23:41     ` Rob Herring
2022-12-06 16:44       ` Thierry Reding
2022-12-06 21:14         ` Rob Herring
2022-12-07 10:21           ` Thierry Reding
2022-12-09 10:17           ` Serge Semin [this message]
2022-12-09 14:29             ` Rob Herring
2022-12-11 17:16               ` Serge Semin
2022-11-14 15:53 ` [PATCH V3 2/2] arm64: tegra: Add ECAM aperture info for all the PCIe controllers Jon Hunter

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=20221209101743.uzyw5ejubkbfm5di@mobilestation \
    --to=sergey.semin@baikalelectronics.ru \
    --cc=devicetree@vger.kernel.org \
    --cc=fancer.lancer@gmail.com \
    --cc=jonathanh@nvidia.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=mmaddireddy@nvidia.com \
    --cc=robh+dt@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=vidyas@nvidia.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).