Message ID | 20230313225103.30512-1-Sergey.Semin@baikalelectronics.ru |
---|---|
Headers | show |
Series | dt-bindings: net: dwmac: Extend clocks, props desc and constraints | expand |
On Tue, 14 Mar 2023 01:50:48 +0300, Serge Semin wrote: > Indeed the maximum DMA burst length can be programmed not only for DW > xGMACs, Allwinner EMACs and Spear SoC GMAC, but in accordance with [1] > for Generic DW *MAC IP-cores. Moreover the STMMAC set of drivers parse > the property and then apply the configuration for all supported DW MAC > devices. All of that makes the property being available for all IP-cores > the bindings supports. Let's make sure the PBL-related properties are > validated for all of them by the common DW MAC DT schema. > > [1] DesignWare Cores Ethernet MAC Universal Databook, Revision 3.73a, > October 2013, p. 380. > > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> > Reviewed-by: Rob Herring <robh@kernel.org> > > --- > > Changelog v1: > - Use correct syntax of the JSON pointers, so the later would begin > with a '/' after the '#'. > --- > .../devicetree/bindings/net/snps,dwmac.yaml | 77 +++++++------------ > 1 file changed, 26 insertions(+), 51 deletions(-) > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,txpbl:0:0: 1 is not one of [2, 4, 8] From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/snps,dwmac.yaml /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,rxpbl:0:0: 1 is not one of [2, 4, 8] From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/snps,dwmac.yaml /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,txpbl:0:0: 1 is not one of [2, 4, 8] From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,rxpbl:0:0: 1 is not one of [2, 4, 8] From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: Unevaluated properties are not allowed ('interrupt-names', 'interrupts', 'mac-address', 'phy-mode', 'reg', 'snps,reset-delays-us', 'snps,reset-gpio', 'snps,rxpbl', 'snps,txpbl' were unexpected) From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230313225103.30512-2-Sergey.Semin@baikalelectronics.ru The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On Tue, Mar 14, 2023 at 06:07:01PM +0300, Serge Semin wrote: > On Tue, Mar 14, 2023 at 09:10:19AM -0500, Rob Herring wrote: > > > > On Tue, 14 Mar 2023 01:50:48 +0300, Serge Semin wrote: > > > Indeed the maximum DMA burst length can be programmed not only for DW > > > xGMACs, Allwinner EMACs and Spear SoC GMAC, but in accordance with [1] > > > for Generic DW *MAC IP-cores. Moreover the STMMAC set of drivers parse > > > the property and then apply the configuration for all supported DW MAC > > > devices. All of that makes the property being available for all IP-cores > > > the bindings supports. Let's make sure the PBL-related properties are > > > validated for all of them by the common DW MAC DT schema. > > > > > > [1] DesignWare Cores Ethernet MAC Universal Databook, Revision 3.73a, > > > October 2013, p. 380. > > > > > > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> > > > Reviewed-by: Rob Herring <robh@kernel.org> > > > > > > --- > > > > > > Changelog v1: > > > - Use correct syntax of the JSON pointers, so the later would begin > > > with a '/' after the '#'. > > > --- > > > .../devicetree/bindings/net/snps,dwmac.yaml | 77 +++++++------------ > > > 1 file changed, 26 insertions(+), 51 deletions(-) > > > > > > > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' > > on your patch (DT_CHECKER_FLAGS is new in v5.13): > > > > yamllint warnings/errors: > > > > dtschema/dtc warnings/errors: > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,txpbl:0:0: 1 is not one of [2, 4, 8] > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,rxpbl:0:0: 1 is not one of [2, 4, 8] > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,txpbl:0:0: 1 is not one of [2, 4, 8] > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,rxpbl:0:0: 1 is not one of [2, 4, 8] > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: Unevaluated properties are not allowed ('interrupt-names', 'interrupts', 'mac-address', 'phy-mode', 'reg', 'snps,reset-delays-us', 'snps,reset-gpio', 'snps,rxpbl', 'snps,txpbl' were unexpected) > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml > > Oops, on rebasing my work from older kernel I missed that the PBL > properties constraints have already been extended. I'll drop the next > patch in the series then and fix this one so the already defined > constraints would be preserved. BTW it's strange I didn't have that bug spotted during my dt_binding_check run... -Serge(y) > > -Serge(y) > > > > > doc reference errors (make refcheckdocs): > > > > See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230313225103.30512-2-Sergey.Semin@baikalelectronics.ru > > > > The base for the series is generally the latest rc1. A different dependency > > should be noted in *this* patch. > > > > If you already ran 'make dt_binding_check' and didn't see the above > > error(s), then make sure 'yamllint' is installed and dt-schema is up to > > date: > > > > pip3 install dtschema --upgrade > > > > Please check and re-submit after running the above command yourself. Note > > that DT_SCHEMA_FILES can be set to your schema file to speed up checking > > your schema. However, it must be unset to test all examples with your schema. > >
On 13/03/2023 23:50, Serge Semin wrote: > Currently none of the MTL Rx Queues QoS-related DT-properties have been > equipped with the proper constraints. Meanwhile they can be specified at > least based on the corresponding CSR field sizes or the DW (x|xG)MAC > IP-core synthesize parameter constraints. Let's do that: > + snps,rx-queues-to-use - number of Rx queues to utilise is limited w (...) > + > snps,route-avcp: > type: boolean > description: AV Untagged Control packets > @@ -166,6 +173,9 @@ properties: > snps,priority: > $ref: /schemas/types.yaml#/definitions/uint32 > description: Bitmask of the tagged frames priorities assigned to the queue > + minimum: 0 > + maximum: 0xFF > + lowercase hex Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof
On 13/03/2023 23:51, Serge Semin wrote: > Invalid MTL Tx Queues DT-properties description was added right at the > initial DCB/AVB features patch. Most likely due to copy-paste mistake the > text currently matches to what is specified for the AXI-bus config > properties. Let's fix that by providing correct descriptions for MTL Tx > Queue DT-properties utilized for the AVB feature (CBS algorithm) tuning. > > Fixes: 19d918731797 ("net: stmmac: configuration of CBS in case of a TX AVB queue") Fixes must be first in the patchset. > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> > --- Best regards, Krzysztof
On Thu, Mar 16, 2023 at 03:40:37PM -0500, Rob Herring wrote: > On Tue, Mar 14, 2023 at 08:09:45PM +0300, Serge Semin wrote: > > On Tue, Mar 14, 2023 at 06:07:01PM +0300, Serge Semin wrote: > > > On Tue, Mar 14, 2023 at 09:10:19AM -0500, Rob Herring wrote: > > > > > > > > On Tue, 14 Mar 2023 01:50:48 +0300, Serge Semin wrote: > > > > > Indeed the maximum DMA burst length can be programmed not only for DW > > > > > xGMACs, Allwinner EMACs and Spear SoC GMAC, but in accordance with [1] > > > > > for Generic DW *MAC IP-cores. Moreover the STMMAC set of drivers parse > > > > > the property and then apply the configuration for all supported DW MAC > > > > > devices. All of that makes the property being available for all IP-cores > > > > > the bindings supports. Let's make sure the PBL-related properties are > > > > > validated for all of them by the common DW MAC DT schema. > > > > > > > > > > [1] DesignWare Cores Ethernet MAC Universal Databook, Revision 3.73a, > > > > > October 2013, p. 380. > > > > > > > > > > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> > > > > > Reviewed-by: Rob Herring <robh@kernel.org> > > > > > > > > > > --- > > > > > > > > > > Changelog v1: > > > > > - Use correct syntax of the JSON pointers, so the later would begin > > > > > with a '/' after the '#'. > > > > > --- > > > > > .../devicetree/bindings/net/snps,dwmac.yaml | 77 +++++++------------ > > > > > 1 file changed, 26 insertions(+), 51 deletions(-) > > > > > > > > > > > > > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' > > > > on your patch (DT_CHECKER_FLAGS is new in v5.13): > > > > > > > > yamllint warnings/errors: > > > > > > > > dtschema/dtc warnings/errors: > > > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,txpbl:0:0: 1 is not one of [2, 4, 8] > > > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,rxpbl:0:0: 1 is not one of [2, 4, 8] > > > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,txpbl:0:0: 1 is not one of [2, 4, 8] > > > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml > > > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: snps,rxpbl:0:0: 1 is not one of [2, 4, 8] > > > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml > > > > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.example.dtb: ethernet@1101c000: Unevaluated properties are not allowed ('interrupt-names', 'interrupts', 'mac-address', 'phy-mode', 'reg', 'snps,reset-delays-us', 'snps,reset-gpio', 'snps,rxpbl', 'snps,txpbl' were unexpected) > > > > From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/mediatek-dwmac.yaml > > > > > > Oops, on rebasing my work from older kernel I missed that the PBL > > > properties constraints have already been extended. I'll drop the next > > > patch in the series then and fix this one so the already defined > > > constraints would be preserved. > > > > BTW it's strange I didn't have that bug spotted during my > > dt_binding_check run... > > Perhaps because you set DT_SCHEMA_FILES? Can't remember now. I might have missed that in the long log as well. Anyway I'll test it out one more time before fixing. Thanks for your response. -Serge(y)
On Tue, 14 Mar 2023 01:51:03 +0300, Serge Semin wrote: > Currently the CBS algorithm specific properties could be used > unconditionally in the MTL Tx queue sub-nodes. It's definitely wrong from > the correct Tx queue description point of view. Let's fix that in a way so > the "snps,send_slope", "snps,idle_slope", "snps,high_credit" and > "snps,low_credit" properties would be allowed only if the CBS TC algorithm > is enabled for the MTL Tx queue. > > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> > --- > Documentation/devicetree/bindings/net/snps,dwmac.yaml | 5 +++++ > 1 file changed, 5 insertions(+) > Reviewed-by: Rob Herring <robh@kernel.org>
On Fri, Mar 17, 2023 at 03:56:04PM -0500, Rob Herring wrote: > On Tue, Mar 14, 2023 at 01:51:02AM +0300, Serge Semin wrote: > > Currently the Tx/Rx queues properties interdependencies are described by > > means of the pattern: "if: required: X, then: properties: Y: false, Z: > > false, etc". Due to very unfortunate MTL Tx/Rx queue DT-node design the > > resultant sub-nodes schemas look very bulky and thus hard to read. The > > situation can be improved by using the "allOf:/oneOf: required: X, > > required: Y, etc" pattern instead thus getting shorter and a bit easier to > > comprehend constructions. > > > > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> > > > > --- > > Reviewed-by: Rob Herring <robh@kernel.org> > > > > > Note the solution can be shortened out a bit further by replacing the > > single-entry allOf statements with just the "not: required: etc" pattern. > > But in order to do that the DT-schema validation tool must be fixed like > > this: > > > > --- a/meta-schemas/nodes.yaml 2021-02-08 14:20:56.732447780 +0300 > > +++ b/meta-schemas/nodes.yaml 2021-02-08 14:21:00.736492245 +0300 > > @@ -22,6 +22,7 @@ > > - unevaluatedProperties > > - deprecated > > - required > > + - not > > - allOf > > - anyOf > > - oneOf > > This should be added regardless. Can you send a patch to devicetree-spec > or a GH PR. But I'd skip using that here for now because then we require > a new version of dtschema. Ok. I'll send the patch to the devicetree-spec mailing list. * Note meta-schemas/base.yaml will be fixed in the similar way. -Serge(y) > > Rob
This patchset is the fourth one in the series of updates implemented in the framework of activity to simplify the DW MAC/STMMAC driver code and provide Baikal GMAC/X-GMAC support after all: [1: In-review v1]: net: stmmac: Fixes bundle #1 Link: https://lore.kernel.org/netdev/20230313224237.28757-1-Sergey.Semin@baikalelectronics.ru/ [2: Stalled v1]: net: stmmac: Fixes bundle #2 Link: ---not submitted yet--- [3: Stalled v1]: net: stmmac: Fixes bundle #3 Link: ---not submitted yet--- +> [4: In-review v1]: dt-bindings: net: dwmac: Extend clocks, props desc and constraints +> Link: ---you are looking at it--- [5: Stalled v1]: dt-bindings: net: dwmac: Fix MTL queues and AXI-bus props Link: ---not submitted yet--- [6: Stalled v1]: net: stmmac: Generic platform res, props and DMA cleanups Link: ---not submitted yet--- [7: Stalled v1]: net: stmmac: Generic platform rst, phy and clk cleanups Link: ---not submitted yet--- [8: Stalled v1]: net: stmmac: Main driver code cleanups bundle #1 Link: ---not submitted yet--- [9: Stalled v1]: net: stmmac: Main driver code cleanups bundle #2 Link: ---not submitted yet--- [10: Stalled v1]: net: stmmac: DW MAC HW info init refactoring Link: ---not submitted yet--- [11: Stalled v1]: net: stmmac: Convert to using HW capabilities bundle #1 Link: ---not submitted yet--- [12: Stalled v1]: net: stmmac: Convert to using HW capabilities bundle #2 Link: ---not submitted yet--- [13: Stalled v1]: net: stmmac: Convert to using HW capabilities bundle #3 Link: ---not submitted yet--- [14: Stalled v1]: net: stmmac: Convert to using HW capabilities bundle #4 Link: ---not submitted yet--- [15: Stalled v1]: net: stmmac: Unify/simplify HW-interface Link: ---not submitted yet--- [16: Stalled v1]: net: stmmac: Norm/Enh/etc DMA descriptor init fixes Link: ---not submitted yet--- [17: Stalled v1]: net: stmmac: Norm/Enh/etc DMA descriptor init cleanups Link: ---not submitted yet--- [18: Stalled v1]: net: stmmac: Main driver code cleanups bundle #3 Link: ---not submitted yet--- [..: In-prep] to be continued (IRQ handling refactoring, SW-reset-less config, generic GPIO support, ARP offload support, In-band RGMII link state, etc) [..: In-prep] to be continued (Baikal-{T,M,L,S} SoCs GMAC, X-GMAC and XPCS support) Please visit the next link for the detailed justification of the changes series introduced in the list above: Link: https://lore.kernel.org/netdev/20230313224237.28757-1-Sergey.Semin@baikalelectronics.ru/ Here is a short summary of what is introduced in this patchset. The series starts with fixes of the PBL (Programmable DMA Burst length) DT-property, which is supposed to be defined for each DW *MAC IP-core, but not only for a Allwinner sun* and Ingenic GMAC and DW xGMAC. The number of possible PBL values need to be also extended in accordance with the DW *MAC manual. Then the TSO flag property should be also declared free of the vendor-specific conditional schema, because the driver expects the compatible string to have the IP-core version specified anyway and none of the glue-drivers refer to the property directly. Moreover the original Allwinner sunXi bindings file didn't have the TSO-related property declared. So we can freely do that. Then in order to improve the DT-bindings maintainability we suggest to split up the generic DT-properties and generic DT-nodes schema leaving the properties definition in the "snps,dwmac.yaml" file and moving the generic DW *MAC DT-nodes bindings validation in the dedicated DT-schema "snps,dwmac-generic.yaml". We've found out that the DW MAC bindings don't provide a correct description of the System/CSR clocks and a comprehensive enough description of the clock-related "snps,clk-csr" property. So in order to have more descriptive bindings we suggest to add a bit more details about the App/CSR clocks and CSR-MDC divider property. Then seeing the any DW MAC IP-core revision can be equipped with an external Tx/Rx clock sources we suggest to add the "tx"/"rx" clocks declaration into the generic DW MAC DT-schema. Afterwards a set of the AXI-bus config property cleanups are introduced. First we suggest to drop the "snps,axi-config" property description since it duplicates the stmmac-axi-config sub-node DT-bindings. Second the unevaluatedProperties property is replaced with additionalProperties as more suitable for the "stmmac-axi-config" schema. Third the proper constraints are added to the properties of the "stmmac-axi-config" sub-node. Then three patches concerning the MTL Tx/Rx queue configs go, which add the sub-nodes properties constraints and fix the MTL Tx queue properties description. The next patch converts the DW MAC DT-bindings to using the "flag" definition instead of the native boolean type for relevant properties. It's done for the sake of the DT-schema unification. The series is closed with the two patches concerning the MTL queue config properties dependencies. First one provides a simpler construction for the MTL queue properties inter-dependencies. The second one adds the dependencies definition for the MTL Tx queue CBS-algo properties. Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru> Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru> Cc: Christian Marangi <ansuelsmth@gmail.com> Cc: Richard Cochran <richardcochran@gmail.com> Cc: Biao Huang <biao.huang@mediatek.com> Cc: Yang Yingliang <yangyingliang@huawei.com> Cc: devicetree@vger.kernel.org Cc: netdev@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Serge Semin (16): dt-bindings: net: dwmac: Validate PBL for all IP-cores dt-bindings: net: dwmac: Extend number of PBL values dt-bindings: net: dwmac: Fix the TSO property declaration dt-bindings: net: dwmac: Detach Generic DW MAC bindings dt-bindings: net: dwmac: Elaborate snps,clk-csr description dt-bindings: net: dwmac: Elaborate stmmaceth/pclk clocks description dt-bindings: net: dwmac: Add Tx/Rx clock sources dt-bindings: net: dwmac: Drop prop names from snps,axi-config description dt-bindings: net: dwmac: Prohibit additional props in AXI-config dt-bindings: net: dwmac: Add AXI-bus properties constraints dt-bindings: net: dwmac: Add MTL Rx Queue properties constraints dt-bindings: net: dwmac: Add MTL Tx Queue properties constraints dt-bindings: net: dwmac: Fix MTL Tx Queue props description dt-bindings: net: dwmac: Use flag definition instead of booleans dt-bindings: net: dwmac: Simplify MTL queue props dependencies dt-bindings: net: dwmac: Add MTL Tx queue CBS-algo props dependencies .../bindings/net/snps,dwmac-generic.yaml | 155 +++++ .../devicetree/bindings/net/snps,dwmac.yaml | 586 +++++++----------- MAINTAINERS | 1 + 3 files changed, 381 insertions(+), 361 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/snps,dwmac-generic.yaml