Message ID | 20231024151014.240695-2-nks@flawful.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | rk3588 PCIe improvements | expand |
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? > > reg-names: > + minItems: 3 > items: > - const: dbi > - const: apb > - const: config > + - const: atu > > clocks: > minItems: 5 > -- > 2.41.0 >
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). According to the TRM, all three PCIe controllers found on the rk3568 have 16 inbound iATUs and 16 outbound iATUs, so if someone wants to be able to make use of all the iATUs on the rk3568, they will need to add "atu" to rk3568.dtsi. I don't have the board, so I can't test, but I could add a patch that adds the "atu" range for the controllers in rk3568, if that makes things easier. Kind regards, Niklas
On Tue, Oct 24, 2023 at 05:10:08PM +0200, Niklas Cassel wrote: > From: Niklas Cassel <niklas.cassel@wdc.com> The subject says 'atu property', but 'atu' is not a property. > > 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 > > reg-names: > + minItems: 3 > items: > - const: dbi > - const: apb > - const: config > + - const: atu > > clocks: > minItems: 5 > -- > 2.41.0 >
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. > According to the TRM, all three PCIe controllers found on the rk3568 have > 16 inbound iATUs and 16 outbound iATUs, so if someone wants to be able to > make use of all the iATUs on the rk3568, they will need to add "atu" to > rk3568.dtsi. At least for host side, the number of regions used is based on ranges. You'd be hard pressed to need more than 8. That or no h/w with 16 is probably why I said 8 was enough at the time. Rob
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 reg-names: + minItems: 3 items: - const: dbi - const: apb - const: config + - const: atu clocks: minItems: 5