Re: [PATCH v10 4/5] dt-bindings: arm-smmu: add binding for Tegra194 SMMU
On Mon, Jul 13, 2020 at 8:10 AM Robin Murphy wrote: > > On 2020-07-10 21:29, Krishna Reddy wrote: > > Thanks Rob. One question on setting "minItems: ". Please see below. > > > >>> +allOf: > >>> + - if: > >>> + properties: > >>> +compatible: > >>> + contains: > >>> +enum: > >>> + - nvidia,tegra194-smmu > >>> +then: > >>> + properties: > >>> +reg: > >>> + minItems: 2 > >>> + maxItems: 2 > > > >> This doesn't work. The main part of the schema already said there's only > >> 1 reg region. This part is ANDed with that, not an override. You need to > >> add an else clause with 'maxItems: 1' and change the base schema to > >> {minItems: 1, maxItems: 2}. > > > > As the earlier version of base schema doesn't have "minItems: " set, should > > it be set to 0 for backward compatibility? Or can it just be omitted > > setting in base schema as before? > > We've always needed at least 1 "reg" specifier in practice, so I don't > think being backwards-compatible with broken DTs is a concern :) 'minItems: 0' would be a boolean (e.g. "reg;") and I'm not sure that's even really valid json-schema. What you'd want here is 'reg' not present (i.e. not in 'required'). Rob ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v10 4/5] dt-bindings: arm-smmu: add binding for Tegra194 SMMU
On 2020-07-10 21:29, Krishna Reddy wrote: Thanks Rob. One question on setting "minItems: ". Please see below. +allOf: + - if: + properties: +compatible: + contains: +enum: + - nvidia,tegra194-smmu +then: + properties: +reg: + minItems: 2 + maxItems: 2 This doesn't work. The main part of the schema already said there's only 1 reg region. This part is ANDed with that, not an override. You need to add an else clause with 'maxItems: 1' and change the base schema to {minItems: 1, maxItems: 2}. As the earlier version of base schema doesn't have "minItems: " set, should it be set to 0 for backward compatibility? Or can it just be omitted setting in base schema as before? We've always needed at least 1 "reg" specifier in practice, so I don't think being backwards-compatible with broken DTs is a concern :) Robin. "else" part to set "maxItems: 1" and setting "maxItems: 2" in base schema is clear to me. -KR ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
RE: [PATCH v10 4/5] dt-bindings: arm-smmu: add binding for Tegra194 SMMU
Thanks Rob. One question on setting "minItems: ". Please see below. >> +allOf: >> + - if: >> + properties: >> +compatible: >> + contains: >> +enum: >> + - nvidia,tegra194-smmu >> +then: >> + properties: >> +reg: >> + minItems: 2 >> + maxItems: 2 >This doesn't work. The main part of the schema already said there's only >1 reg region. This part is ANDed with that, not an override. You need to add >an else clause with 'maxItems: 1' and change the base schema to >{minItems: 1, maxItems: 2}. As the earlier version of base schema doesn't have "minItems: " set, should it be set to 0 for backward compatibility? Or can it just be omitted setting in base schema as before? "else" part to set "maxItems: 1" and setting "maxItems: 2" in base schema is clear to me. -KR ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v10 4/5] dt-bindings: arm-smmu: add binding for Tegra194 SMMU
On Tue, Jul 07, 2020 at 10:00:16PM -0700, Krishna Reddy wrote: > Add binding for NVIDIA's Tegra194 SoC SMMU. > > Signed-off-by: Krishna Reddy > --- > .../devicetree/bindings/iommu/arm,smmu.yaml| 18 ++ > 1 file changed, 18 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > index d7ceb4c34423..ac1f526c3424 100644 > --- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > @@ -38,6 +38,11 @@ properties: >- qcom,sc7180-smmu-500 >- qcom,sdm845-smmu-500 >- const: arm,mmu-500 > + - description: NVIDIA SoCs that program two ARM MMU-500s identically > +items: > + - enum: > + - nvidia,tegra194-smmu > + - const: nvidia,smmu-500 >- items: >- const: arm,mmu-500 >- const: arm,smmu-v2 > @@ -138,6 +143,19 @@ required: > > additionalProperties: false > > +allOf: > + - if: > + properties: > +compatible: > + contains: > +enum: > + - nvidia,tegra194-smmu > +then: > + properties: > +reg: > + minItems: 2 > + maxItems: 2 This doesn't work. The main part of the schema already said there's only 1 reg region. This part is ANDed with that, not an override. You need to add an else clause with 'maxItems: 1' and change the base schema to {minItems: 1, maxItems: 2}. Rob ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v10 4/5] dt-bindings: arm-smmu: add binding for Tegra194 SMMU
On 08/07/2020 06:00, Krishna Reddy wrote: > Add binding for NVIDIA's Tegra194 SoC SMMU. > > Signed-off-by: Krishna Reddy > --- > .../devicetree/bindings/iommu/arm,smmu.yaml| 18 ++ > 1 file changed, 18 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > index d7ceb4c34423..ac1f526c3424 100644 > --- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml > @@ -38,6 +38,11 @@ properties: >- qcom,sc7180-smmu-500 >- qcom,sdm845-smmu-500 >- const: arm,mmu-500 > + - description: NVIDIA SoCs that program two ARM MMU-500s identically > +items: > + - enum: > + - nvidia,tegra194-smmu > + - const: nvidia,smmu-500 >- items: >- const: arm,mmu-500 >- const: arm,smmu-v2 > @@ -138,6 +143,19 @@ required: > > additionalProperties: false > > +allOf: > + - if: > + properties: > +compatible: > + contains: > +enum: > + - nvidia,tegra194-smmu > +then: > + properties: > +reg: > + minItems: 2 > + maxItems: 2 > + > examples: >- |+ > /* SMMU with stream matching or stream indexing */ > Reviewed-by: Jon Hunter Thanks Jon -- nvpublic ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu