[PATCH 1/1] dt-bindings: riscv: sifive-l2-cache: convert bindings to json-schema

Sagar Kadam sagar.kadam at openfive.com
Tue Aug 25 04:47:09 EDT 2020


Hello Rob,

> -----Original Message-----
> From: Rob Herring <robh at kernel.org>
> Sent: Monday, August 24, 2020 11:06 PM
> To: Sagar Kadam <sagar.kadam at openfive.com>
> Cc: aou at eecs.berkeley.edu; devicetree at vger.kernel.org; Paul Walmsley (
> Sifive) <paul.walmsley at sifive.com>; robh+dt at kernel.org; Yash Shah
> <yash.shah at openfive.com>; palmer at dabbelt.com; linux-
> kernel at vger.kernel.org; linux-riscv at lists.infradead.org
> Subject: Re: [PATCH 1/1] dt-bindings: riscv: sifive-l2-cache: convert bindings
> to json-schema
> 
> [External Email] Do not click links or attachments unless you recognize the
> sender and know the content is safe
> 
> On Mon, 24 Aug 2020 13:20:21 +0530, Sagar Kadam wrote:
> > Convert the device tree bindings for the SiFive's FU540-C000 SoC's L2
> > Cache controller to YAML format.
> >
> > Signed-off-by: Sagar Kadam <sagar.kadam at sifive.com>
> > ---
> >  .../devicetree/bindings/riscv/sifive-l2-cache.txt  | 51 ------------
> > .../devicetree/bindings/riscv/sifive-l2-cache.yaml | 93
> > ++++++++++++++++++++++
> >  2 files changed, 93 insertions(+), 51 deletions(-)  delete mode
> > 100644 Documentation/devicetree/bindings/riscv/sifive-l2-cache.txt
> >  create mode 100644
> > Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> >
> 
> 
> My bot found errors running 'make dt_binding_check' on your patch:
> 
 
I had checked using DT_SCHEMA_FILES option due to which it didn't catch any error on other 
schemas. Without this I could regenerate the error you mentioned.
I will fix it and update. Sorry for the error.

Thanks & BR,
Sagar

> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: $nodename:0: 'l2-cache' does not match
> '^(cache-controller|cpu)(@[0-9a-f,]+)*$'
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: compatible:0: 'cache' is not one of
> ['sifive,fu540-c000-ccache']
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: compatible: ['cache'] is too short
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: 'l3-cache' does not match any of the
> regexes: 'pinctrl-[0-9]+'
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: 'cache-block-size' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: 'cache-level' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: 'cache-sets' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: 'cache-size' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: 'cache-unified' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: 'reg' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: {'compatible': ['cache'], 'next-level-cache':
> [[2]], 'phandle': [[1]], 'l3-cache': {'compatible': ['cache'], 'phandle': [[2]]},
> '$nodename': ['l2-cache']} is not valid under any of the given schemas
> {'$filename': '/builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml',
>  '$id': 'http://devicetree.org/schemas/riscv/sifive-l2-cache.yaml#',
>  '$schema': 'http://devicetree.org/meta-schemas/core.yaml#',
>  '$select_validator': <jsonschema.validators.create.<locals>.Validator object
> at 0x7efcd84bc850>,
>  'additionalProperties': False,
>  'allOf': [{'$ref': '/schemas/cache-controller.yaml#'}],
>  'oneOf': [{'required': ['interrupts']},
>            {'required': ['interrupts-extended']}],
>  'patternProperties': {'pinctrl-[0-9]+': True},
>  'properties': {'$nodename': True,
>                 'cache-block-size': {'additionalItems': False,
>                                      'items': [{'additionalItems': False,
>                                                 'items': [{'const': 64}],
>                                                 'maxItems': 1,
>                                                 'minItems': 1,
>                                                 'type': 'array'}],
>                                      'maxItems': 1,
>                                      'minItems': 1,
>                                      'type': 'array'},
>                 'cache-level': {'additionalItems': False,
>                                 'items': [{'additionalItems': False,
>                                            'items': [{'const': 2}],
>                                            'maxItems': 1,
>                                            'minItems': 1,
>                                            'type': 'array'}],
>                                 'maxItems': 1,
>                                 'minItems': 1,
>                                 'type': 'array'},
>                 'cache-sets': {'additionalItems': False,
>                                'items': [{'additionalItems': False,
>                                           'items': [{'const': 1024}],
>                                           'maxItems': 1,
>                                           'minItems': 1,
>                                           'type': 'array'}],
>                                'maxItems': 1,
>                                'minItems': 1,
>                                'type': 'array'},
>                 'cache-size': {'additionalItems': False,
>                                'items': [{'additionalItems': False,
>                                           'items': [{'const': 2097152}],
>                                           'maxItems': 1,
>                                           'minItems': 1,
>                                           'type': 'array'}],
>                                'maxItems': 1,
>                                'minItems': 1,
>                                'type': 'array'},
>                 'cache-unified': True,
>                 'compatible': {'additionalItems': False,
>                                'items': [{'enum': ['sifive,fu540-c000-ccache']},
>                                          {'const': 'cache'}],
>                                'maxItems': 2,
>                                'minItems': 2,
>                                'type': 'array'},
>                 'interrupt-parent': True,
>                 'interrupts': {'maxItems': 3, 'minItems': 1},
>                 'interrupts-extended': {'maxItems': 3, 'minItems': 1},
>                 'memory-region': {},
>                 'next-level-cache': {},
>                 'phandle': True,
>                 'pinctrl-names': True,
>                 'reg': {'maxItems': 1, 'minItems': 1},
>                 'status': True},
>  'required': ['compatible',
>               'cache-block-size',
>               'cache-level',
>               'cache-sets',
>               'cache-size',
>               'cache-unified',
>               'reg'],
>  'select': {'properties': {'compatible': {'contains': {'enum': ['cache',
>                                                                 'sifive,fu540-c000-ccache']}}},
>             'required': ['compatible']},
>  'title': 'SiFive L2 Cache Controller'} (Possible causes of the failure):
>         /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l2-cache: 'interrupts' is a required property
> 
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: $nodename:0: 'l3-cache' does not match
> '^(cache-controller|cpu)(@[0-9a-f,]+)*$'
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: compatible:0: 'cache' is not one of
> ['sifive,fu540-c000-ccache']
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: compatible: ['cache'] is too short
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: 'cache-block-size' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: 'cache-level' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: 'cache-sets' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: 'cache-size' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: 'cache-unified' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: 'reg' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: {'compatible': ['cache'], 'phandle': [[2]],
> '$nodename': ['l3-cache']} is not valid under any of the given schemas
> {'$filename': '/builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml',
>  '$id': 'http://devicetree.org/schemas/riscv/sifive-l2-cache.yaml#',
>  '$schema': 'http://devicetree.org/meta-schemas/core.yaml#',
>  '$select_validator': <jsonschema.validators.create.<locals>.Validator object
> at 0x7efcd84bc850>,
>  'additionalProperties': False,
>  'allOf': [{'$ref': '/schemas/cache-controller.yaml#'}],
>  'oneOf': [{'required': ['interrupts']},
>            {'required': ['interrupts-extended']}],
>  'patternProperties': {'pinctrl-[0-9]+': True},
>  'properties': {'$nodename': True,
>                 'cache-block-size': {'additionalItems': False,
>                                      'items': [{'additionalItems': False,
>                                                 'items': [{'const': 64}],
>                                                 'maxItems': 1,
>                                                 'minItems': 1,
>                                                 'type': 'array'}],
>                                      'maxItems': 1,
>                                      'minItems': 1,
>                                      'type': 'array'},
>                 'cache-level': {'additionalItems': False,
>                                 'items': [{'additionalItems': False,
>                                            'items': [{'const': 2}],
>                                            'maxItems': 1,
>                                            'minItems': 1,
>                                            'type': 'array'}],
>                                 'maxItems': 1,
>                                 'minItems': 1,
>                                 'type': 'array'},
>                 'cache-sets': {'additionalItems': False,
>                                'items': [{'additionalItems': False,
>                                           'items': [{'const': 1024}],
>                                           'maxItems': 1,
>                                           'minItems': 1,
>                                           'type': 'array'}],
>                                'maxItems': 1,
>                                'minItems': 1,
>                                'type': 'array'},
>                 'cache-size': {'additionalItems': False,
>                                'items': [{'additionalItems': False,
>                                           'items': [{'const': 2097152}],
>                                           'maxItems': 1,
>                                           'minItems': 1,
>                                           'type': 'array'}],
>                                'maxItems': 1,
>                                'minItems': 1,
>                                'type': 'array'},
>                 'cache-unified': True,
>                 'compatible': {'additionalItems': False,
>                                'items': [{'enum': ['sifive,fu540-c000-ccache']},
>                                          {'const': 'cache'}],
>                                'maxItems': 2,
>                                'minItems': 2,
>                                'type': 'array'},
>                 'interrupt-parent': True,
>                 'interrupts': {'maxItems': 3, 'minItems': 1},
>                 'interrupts-extended': {'maxItems': 3, 'minItems': 1},
>                 'memory-region': {},
>                 'next-level-cache': {},
>                 'phandle': True,
>                 'pinctrl-names': True,
>                 'reg': {'maxItems': 1, 'minItems': 1},
>                 'status': True},
>  'required': ['compatible',
>               'cache-block-size',
>               'cache-level',
>               'cache-sets',
>               'cache-size',
>               'cache-unified',
>               'reg'],
>  'select': {'properties': {'compatible': {'contains': {'enum': ['cache',
>                                                                 'sifive,fu540-c000-ccache']}}},
>             'required': ['compatible']},
>  'title': 'SiFive L2 Cache Controller'} (Possible causes of the failure):
>         /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/thermal/thermal-cooling-
> devices.example.dt.yaml: l3-cache: 'interrupts' is a required property
> 
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: $nodename:0: 'cache-controller-0'
> does not match '^(cache-controller|cpu)(@[0-9a-f,]+)*$'
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: compatible:0: 'cache' is not one of
> ['sifive,fu540-c000-ccache']
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: compatible: ['cache'] is too short
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: 'power-domains' does not match
> any of the regexes: 'pinctrl-[0-9]+'
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: 'cache-block-size' is a required
> property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: 'cache-sets' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: 'cache-size' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: 'reg' is a required property
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: {'compatible': ['cache'], 'power-
> domains': [[1, 12]], 'cache-unified': True, 'cache-level': [[2]], '$nodename':
> ['cache-controller-0']} is not valid under any of the given schemas
> {'$filename': '/builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml',
>  '$id': 'http://devicetree.org/schemas/riscv/sifive-l2-cache.yaml#',
>  '$schema': 'http://devicetree.org/meta-schemas/core.yaml#',
>  '$select_validator': <jsonschema.validators.create.<locals>.Validator object
> at 0x7f26dd3928b0>,
>  'additionalProperties': False,
>  'allOf': [{'$ref': '/schemas/cache-controller.yaml#'}],
>  'oneOf': [{'required': ['interrupts']},
>            {'required': ['interrupts-extended']}],
>  'patternProperties': {'pinctrl-[0-9]+': True},
>  'properties': {'$nodename': True,
>                 'cache-block-size': {'additionalItems': False,
>                                      'items': [{'additionalItems': False,
>                                                 'items': [{'const': 64}],
>                                                 'maxItems': 1,
>                                                 'minItems': 1,
>                                                 'type': 'array'}],
>                                      'maxItems': 1,
>                                      'minItems': 1,
>                                      'type': 'array'},
>                 'cache-level': {'additionalItems': False,
>                                 'items': [{'additionalItems': False,
>                                            'items': [{'const': 2}],
>                                            'maxItems': 1,
>                                            'minItems': 1,
>                                            'type': 'array'}],
>                                 'maxItems': 1,
>                                 'minItems': 1,
>                                 'type': 'array'},
>                 'cache-sets': {'additionalItems': False,
>                                'items': [{'additionalItems': False,
>                                           'items': [{'const': 1024}],
>                                           'maxItems': 1,
>                                           'minItems': 1,
>                                           'type': 'array'}],
>                                'maxItems': 1,
>                                'minItems': 1,
>                                'type': 'array'},
>                 'cache-size': {'additionalItems': False,
>                                'items': [{'additionalItems': False,
>                                           'items': [{'const': 2097152}],
>                                           'maxItems': 1,
>                                           'minItems': 1,
>                                           'type': 'array'}],
>                                'maxItems': 1,
>                                'minItems': 1,
>                                'type': 'array'},
>                 'cache-unified': True,
>                 'compatible': {'additionalItems': False,
>                                'items': [{'enum': ['sifive,fu540-c000-ccache']},
>                                          {'const': 'cache'}],
>                                'maxItems': 2,
>                                'minItems': 2,
>                                'type': 'array'},
>                 'interrupt-parent': True,
>                 'interrupts': {'maxItems': 3, 'minItems': 1},
>                 'interrupts-extended': {'maxItems': 3, 'minItems': 1},
>                 'memory-region': {},
>                 'next-level-cache': {},
>                 'phandle': True,
>                 'pinctrl-names': True,
>                 'reg': {'maxItems': 1, 'minItems': 1},
>                 'status': True},
>  'required': ['compatible',
>               'cache-block-size',
>               'cache-level',
>               'cache-sets',
>               'cache-size',
>               'cache-unified',
>               'reg'],
>  'select': {'properties': {'compatible': {'contains': {'enum': ['cache',
>                                                                 'sifive,fu540-c000-ccache']}}},
>             'required': ['compatible']},
>  'title': 'SiFive L2 Cache Controller'} (Possible causes of the failure):
>         /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/power/renesas,rcar-
> sysc.example.dt.yaml: cache-controller-0: 'interrupts' is a required property
> 
>         From schema: /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
> 
> 
> See https://patchwork.ozlabs.org/patch/1350111
> 
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure dt-schema is up to date:
> 
> pip3 install git+https://github.com/devicetree-org/dt-schema.git@master --
> upgrade
> 
> Please check and re-submit.




More information about the linux-riscv mailing list