Message ID | 20200708050017.31563-5-vdumpa@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | NVIDIA ARM SMMU Implementation | expand |
On 08/07/2020 06:00, Krishna Reddy wrote: > Add binding for NVIDIA's Tegra194 SoC SMMU. > > Signed-off-by: Krishna Reddy <vdumpa@nvidia.com> > --- > .../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 <jonathanh@nvidia.com> Thanks Jon
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 <vdumpa@nvidia.com> > --- > .../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
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
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 >
On Mon, Jul 13, 2020 at 8:10 AM Robin Murphy <robin.murphy@arm.com> 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
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 */
Add binding for NVIDIA's Tegra194 SoC SMMU. Signed-off-by: Krishna Reddy <vdumpa@nvidia.com> --- .../devicetree/bindings/iommu/arm,smmu.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)