From: Niklas Cassel <Niklas.Cassel@wdc.com>
To: Rob Herring <robh@kernel.org>
Cc: "Conor Dooley" <conor@kernel.org>,
"Niklas Cassel" <nks@flawful.org>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Heiko Stuebner" <heiko@sntech.de>,
"Shawn Lin" <shawn.lin@rock-chips.com>,
"Simon Xue" <xxm@rock-chips.com>,
"Damien Le Moal" <dlemoal@kernel.org>,
"Sebastian Reichel" <sebastian.reichel@collabora.com>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-rockchip@lists.infradead.org"
<linux-rockchip@lists.infradead.org>
Subject: Re: [PATCH v2 1/4] dt-bindings: PCI: dwc: rockchip: Add atu property
Date: Fri, 27 Oct 2023 14:34:34 +0000 [thread overview]
Message-ID: <ZTvKeeYpfX57A+yd@x1-carbon> (raw)
In-Reply-To: <20231026183501.GB4122054-robh@kernel.org>
Hello Rob,
On Thu, Oct 26, 2023 at 01:35:01PM -0500, Rob Herring wrote:
> On Wed, Oct 25, 2023 at 08:02:32PM +0000, Niklas Cassel wrote:
> > Hello Conor,
> >
> > On Tue, Oct 24, 2023 at 05:29:28PM +0100, Conor Dooley wrote:
> > > On Tue, Oct 24, 2023 at 05:10:08PM +0200, Niklas Cassel wrote:
> > > > From: Niklas Cassel <niklas.cassel@wdc.com>
> > > >
> > > > Even though rockchip-dw-pcie.yaml inherits snps,dw-pcie.yaml
> > > > using:
> > > >
> > > > allOf:
> > > > - $ref: /schemas/pci/snps,dw-pcie.yaml#
> > > >
> > > > and snps,dw-pcie.yaml does have the atu property defined, in order to be
> > > > able to use this property, while still making sure 'make CHECK_DTBS=y'
> > > > pass, we need to add this property to rockchip-dw-pcie.yaml.
> > > >
> > > > Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
> > > > ---
> > > > Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml | 4 ++++
> > > > 1 file changed, 4 insertions(+)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml b/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
> > > > index 1ae8dcfa072c..229f8608c535 100644
> > > > --- a/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
> > > > +++ b/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
> > > > @@ -29,16 +29,20 @@ properties:
> > > > - const: rockchip,rk3568-pcie
> > > >
> > > > reg:
> > > > + minItems: 3
> > > > items:
> > > > - description: Data Bus Interface (DBI) registers
> > > > - description: Rockchip designed configuration registers
> > > > - description: Config registers
> > > > + - description: iATU registers
> > >
> > > Is this extra register only for the ..88 or for the ..68 and for the
> > > ..88 models?
> >
> > Looking at the rk3568 Technical Reference Manual (TRM):
> > https://dl.radxa.com/rock3/docs/hw/datasheet/Rockchip%20RK3568%20TRM%20Part2%20V1.1-20210301.pdf
> >
> > The iATU register register range exists for all 3 PCIe controllers
> > found on the rk3568.
> >
> > This register range is currently not defined in the rk3568.dtsi, so the driver
> > will currently use the default register offset (which is correct), but with
> > the driver fallback register size that is only big enough to cover 8 inbound
> > and 8 outbound iATUs (internal Address Translation Units).
>
> We should probably make the driver smarter instead or in addition. We
> have the DBI size, Just make atu_size = dbi_size - DEFAULT_DBI_ATU_OFFSET.
I though about that, but it seems that some drivers don't use
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dbi")
but instead set pci->dbi_base from non-common code, e.g.:
drivers/pci/controller/dwc/pci-dra7xx.c: pci->dbi_base = devm_platform_ioremap_resource_byname(pdev, "ep_dbics");
drivers/pci/controller/dwc/pci-dra7xx.c: pci->dbi_base = devm_platform_ioremap_resource_byname(pdev, "rc_dbics");
drivers/pci/controller/dwc/pci-imx6.c: pci->dbi_base = devm_platform_get_and_ioremap_resource(pdev, 0, &dbi_base);
drivers/pci/controller/dwc/pci-keystone.c: pci->dbi_base = base;
drivers/pci/controller/dwc/pci-layerscape-ep.c: dbi_base = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs");
drivers/pci/controller/dwc/pci-layerscape-ep.c: pci->dbi_base = devm_pci_remap_cfg_resource(dev, dbi_base);
drivers/pci/controller/dwc/pci-layerscape.c: dbi_base = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs");
drivers/pci/controller/dwc/pci-layerscape.c: pci->dbi_base = devm_pci_remap_cfg_resource(dev, dbi_base);
drivers/pci/controller/dwc/pci-meson.c: pci->dbi_base = devm_platform_ioremap_resource_byname(pdev, "elbi");
drivers/pci/controller/dwc/pcie-al.c: void __iomem *dbi_base = pcie->dbi_base;
drivers/pci/controller/dwc/pcie-al.c: al_pcie->dbi_base = devm_pci_remap_cfg_resource(dev, res);
drivers/pci/controller/dwc/pcie-armada8k.c: pci->dbi_base = devm_pci_remap_cfg_resource(dev, base);
drivers/pci/controller/dwc/pcie-designware.c: pci->dbi_base = devm_pci_remap_cfg_resource(pci->dev, res);
drivers/pci/controller/dwc/pcie-histb.c: pci->dbi_base = devm_platform_ioremap_resource_byname(pdev, "rc-dbi");
drivers/pci/controller/dwc/pcie-qcom-ep.c: pci->dbi_base = devm_pci_remap_cfg_resource(dev, res);
drivers/pci/controller/dwc/pcie-tegra194-acpi.c: pcie_ecam->dbi_base = cfg->win + SZ_512K;
So I don't think that we can always get the size of the dbi.
And a solution that does not work for all platforms is not
that appealing.
Kind regards,
Niklas
next prev parent reply other threads:[~2023-10-27 14:34 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-24 15:10 [PATCH v2 0/4] rk3588 PCIe improvements Niklas Cassel
2023-10-24 15:10 ` [PATCH v2 1/4] dt-bindings: PCI: dwc: rockchip: Add atu property Niklas Cassel
2023-10-24 16:29 ` Conor Dooley
2023-10-25 20:02 ` Niklas Cassel
2023-10-26 18:35 ` Rob Herring
2023-10-27 14:34 ` Niklas Cassel [this message]
2023-10-27 15:56 ` Rob Herring
2023-10-27 16:37 ` Niklas Cassel
2023-10-26 18:20 ` Rob Herring
2023-10-24 15:10 ` [PATCH v2 2/4] arm64: dts: rockchip: add missing mandatory rk3588 PCIe " Niklas Cassel
2023-10-24 15:10 ` [PATCH v2 3/4] dt-bindings: PCI: dwc: rockchip: Add dma properties Niklas Cassel
2023-10-24 16:30 ` Conor Dooley
2023-10-25 20:07 ` Niklas Cassel
2023-10-25 20:55 ` Niklas Cassel
2023-10-26 14:29 ` Serge Semin
2023-10-26 14:32 ` Serge Semin
2023-10-27 14:51 ` Niklas Cassel
2023-10-24 15:10 ` [PATCH v2 4/4] arm64: dts: rockchip: add missing rk3588 PCIe " Niklas Cassel
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=ZTvKeeYpfX57A+yd@x1-carbon \
--to=niklas.cassel@wdc.com \
--cc=bhelgaas@google.com \
--cc=conor+dt@kernel.org \
--cc=conor@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlemoal@kernel.org \
--cc=heiko@sntech.de \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kw@linux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=lpieralisi@kernel.org \
--cc=nks@flawful.org \
--cc=robh@kernel.org \
--cc=sebastian.reichel@collabora.com \
--cc=shawn.lin@rock-chips.com \
--cc=xxm@rock-chips.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).