Message ID | 20230705-seama-partitions-v2-1-9d349f0d5ab7@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add SEAMA partition types | expand |
On Wed, Jul 05, 2023 at 12:17:46PM +0200, Linus Walleij wrote: > This types of NAND partitions appear in OpenWrt and > U-Boot. > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > ChangeLog v1->v2: > - Fix up the binding to be childless > --- > .../bindings/mtd/partitions/partitions.yaml | 1 + > .../devicetree/bindings/mtd/partitions/seama.yaml | 50 ++++++++++++++++++++++ > 2 files changed, 51 insertions(+) > > diff --git a/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml > index 2edc65e0e361..9bd0a8d800da 100644 > --- a/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml > +++ b/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml > @@ -21,6 +21,7 @@ oneOf: > - $ref: linksys,ns-partitions.yaml > - $ref: qcom,smem-part.yaml > - $ref: redboot-fis.yaml > + - $ref: seama.yaml I think this is in the wrong place. These should be device level partitioning schemas, not an individual partition type. (Though nesting is possible) > > properties: > compatible: true > diff --git a/Documentation/devicetree/bindings/mtd/partitions/seama.yaml b/Documentation/devicetree/bindings/mtd/partitions/seama.yaml > new file mode 100644 > index 000000000000..5ed7764bba69 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mtd/partitions/seama.yaml > @@ -0,0 +1,50 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mtd/partitions/seama.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Seattle Image Partitions > + > +description: The SEAttle iMAge (SEAMA) partition is a type of partition > + used for NAND flash devices. This type of flash image is found in some > + D-Link routers such as DIR-645, DIR-842, DIR-859, DIR-860L, DIR-885L, > + DIR890L and DCH-M225, as well as in WD and NEC routers on the ath79 > + (MIPS), Broadcom BCM53xx, and RAMIPS platforms. This partition type > + does not have children defined in the device tree, they need to be > + detected by software. > + > +allOf: > + - $ref: partition.yaml# > + > +maintainers: > + - Linus Walleij <linus.walleij@linaro.org> > + > +select: false Remove this and your example will fail. You need unevaluatedProperties. There's a problem in partitions.yaml. It never gets applied, so this schema never gets applied. The default 'select' is generated based on $nodename or compatible, but it has neither. This needs some more thought on how to fix given the variable way partitions can be combined. Probably at a minimum, all the 'select: false' need to be removed. > + > +properties: > + compatible: > + const: seama > + > + '#address-cells': false > + > + '#size-cells': false > + > +required: > + - compatible > + > +additionalProperties: false > + > +examples: > + - | > + partitions { > + compatible = "fixed-partitions"; > + #address-cells = <1>; > + #size-cells = <1>; > + > + partition@0 { > + compatible = "seama"; > + reg = <0x0 0x800000>; > + label = "firmware"; > + }; > + }; > > -- > 2.34.1 >
On Wed, Jul 5, 2023 at 9:51 PM Rob Herring <robh@kernel.org> wrote: > On Wed, Jul 05, 2023 at 12:17:46PM +0200, Linus Walleij wrote: > > - $ref: redboot-fis.yaml > > + - $ref: seama.yaml > > I think this is in the wrong place. These should be device level > partitioning schemas, not an individual partition type. (Though nesting > is possible) OK it wasn't there in v1, then Krzysztof said it should be there (if I understood correctly) and I will remove it again then. > > +select: false > > Remove this and your example will fail. You need unevaluatedProperties. OK > There's a problem in partitions.yaml. It never gets applied, so this > schema never gets applied. The default 'select' is generated based on > $nodename or compatible, but it has neither. This needs some more > thought on how to fix given the variable way partitions can be combined. > Probably at a minimum, all the 'select: false' need to be removed. I don't think I can fix this problem, I'm not that good with schema. I don't even understand the thinking around the existing partitions.yaml. Yours, Linus Walleij
diff --git a/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml index 2edc65e0e361..9bd0a8d800da 100644 --- a/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml +++ b/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml @@ -21,6 +21,7 @@ oneOf: - $ref: linksys,ns-partitions.yaml - $ref: qcom,smem-part.yaml - $ref: redboot-fis.yaml + - $ref: seama.yaml properties: compatible: true diff --git a/Documentation/devicetree/bindings/mtd/partitions/seama.yaml b/Documentation/devicetree/bindings/mtd/partitions/seama.yaml new file mode 100644 index 000000000000..5ed7764bba69 --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/partitions/seama.yaml @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mtd/partitions/seama.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Seattle Image Partitions + +description: The SEAttle iMAge (SEAMA) partition is a type of partition + used for NAND flash devices. This type of flash image is found in some + D-Link routers such as DIR-645, DIR-842, DIR-859, DIR-860L, DIR-885L, + DIR890L and DCH-M225, as well as in WD and NEC routers on the ath79 + (MIPS), Broadcom BCM53xx, and RAMIPS platforms. This partition type + does not have children defined in the device tree, they need to be + detected by software. + +allOf: + - $ref: partition.yaml# + +maintainers: + - Linus Walleij <linus.walleij@linaro.org> + +select: false + +properties: + compatible: + const: seama + + '#address-cells': false + + '#size-cells': false + +required: + - compatible + +additionalProperties: false + +examples: + - | + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + compatible = "seama"; + reg = <0x0 0x800000>; + label = "firmware"; + }; + };
This types of NAND partitions appear in OpenWrt and U-Boot. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- ChangeLog v1->v2: - Fix up the binding to be childless --- .../bindings/mtd/partitions/partitions.yaml | 1 + .../devicetree/bindings/mtd/partitions/seama.yaml | 50 ++++++++++++++++++++++ 2 files changed, 51 insertions(+)