Re: [PATCH] dt-bindings: mtd: fixed-partitions: Fix 'sercomm,scpart-id' schema

From: Miquel Raynal
Date: Mon Nov 14 2022 - 04:14:38 EST


Hi Rob,

robh@xxxxxxxxxx wrote on Fri, 11 Nov 2022 15:28:24 -0600:

> The schema for 'sercomm,scpart-id' is broken. The 'if' condition is
> never true because 'compatible' is in the parent node, not the child
> node the sub-schema applies to. The example passes as there are no
> constraints on additional/unevaluated properties. That's a secondary
> issue which is complicated due to nested partitions.
>
> Drop the if/then schema and the unnecessary 'allOf' so that the
> 'sercomm,scpart-id' property is at least defined.
>
> Cc: Mikhail Zhilkin <csharper2005@xxxxxxxxx>
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>

Mmmh right, I've missed that in my little rework. I'll apply it with
the big series "[PATCH v3 00/17] Improve MTD bindings" as soon as the
last remaining patch gets reviewed.

> ---
> .../mtd/partitions/fixed-partitions.yaml | 29 +++++++------------
> 1 file changed, 11 insertions(+), 18 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> index ad3ccd250802..39b715aad2dc 100644
> --- a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> +++ b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> @@ -31,24 +31,17 @@ properties:
>
> patternProperties:
> "@[0-9a-f]+$":
> - allOf:
> - - $ref: "partition.yaml#"
> - - if:
> - properties:
> - compatible:
> - contains:
> - const: sercomm,sc-partitions
> - then:
> - properties:
> - sercomm,scpart-id:
> - description: Partition id in Sercomm partition map. Mtd
> - parser uses this id to find a record in the partition map
> - containing offset and size of the current partition. The
> - values from partition map overrides partition offset and
> - size defined in reg property of the dts. Frequently these
> - values are the same, but may differ if device has bad
> - eraseblocks on a flash.
> - $ref: /schemas/types.yaml#/definitions/uint32
> + $ref: partition.yaml#
> +
> + properties:
> + sercomm,scpart-id:
> + description: Partition id in Sercomm partition map. Mtd parser
> + uses this id to find a record in the partition map containing
> + offset and size of the current partition. The values from
> + partition map overrides partition offset and size defined in
> + reg property of the dts. Frequently these values are the same,
> + but may differ if device has bad eraseblocks on a flash.
> + $ref: /schemas/types.yaml#/definitions/uint32
>
> required:
> - "#address-cells"


Thanks,
Miquèl