2022-06-08 06:37:11

by Christian Marangi

[permalink] [raw]
Subject: [PATCH v5 2/3] dt-bindings: mtd: qcom_nandc: document qcom,boot-partitions binding

Document new qcom,boot-partition binding used to apply special
read/write layout to boot partitions.

QCOM apply a special layout where spare data is not protected
by ECC for some special pages (used for boot partition). Add
Documentation on how to declare these special pages.

Signed-off-by: Ansuel Smith <[email protected]>
---
.../devicetree/bindings/mtd/qcom,nandc.yaml | 26 +++++++++++++++++++
1 file changed, 26 insertions(+)

diff --git a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
index 84ad7ff30121..a0914ccb95b0 100644
--- a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
+++ b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
@@ -102,6 +102,30 @@ allOf:
- const: rx
- const: cmd

+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,ipq806x-nand
+
+ then:
+ properties:
+ qcom,boot-partitions:
+ $ref: /schemas/types.yaml#/definitions/uint32-matrix
+ items:
+ items:
+ - description: offset
+ - description: size
+ description:
+ Boot partition use a different layout where the 4 bytes of spare
+ data are not protected by ECC. Use this to declare these special
+ partitions by defining first the offset and then the size.
+
+ It's in the form of <offset1 size1 offset2 size2 offset3 ...>
+
+ Refer to the ipq8064 example on how to use this special binding.
+
required:
- compatible
- reg
@@ -135,6 +159,8 @@ examples:
nand-ecc-strength = <4>;
nand-bus-width = <8>;

+ qcom,boot-partitions = <0x0 0x58a0000>;
+
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
--
2.36.1


2022-06-09 08:55:54

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH v5 2/3] dt-bindings: mtd: qcom_nandc: document qcom,boot-partitions binding

On Wed, Jun 08, 2022 at 02:10:29AM +0200, Ansuel Smith wrote:
> Document new qcom,boot-partition binding used to apply special
> read/write layout to boot partitions.
>
> QCOM apply a special layout where spare data is not protected
> by ECC for some special pages (used for boot partition). Add
> Documentation on how to declare these special pages.
>
> Signed-off-by: Ansuel Smith <[email protected]>
> ---
> .../devicetree/bindings/mtd/qcom,nandc.yaml | 26 +++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
> index 84ad7ff30121..a0914ccb95b0 100644
> --- a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
> +++ b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
> @@ -102,6 +102,30 @@ allOf:
> - const: rx
> - const: cmd
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,ipq806x-nand
> +
> + then:
> + properties:
> + qcom,boot-partitions:
> + $ref: /schemas/types.yaml#/definitions/uint32-matrix

Wondering if u32 is enough for covering all ranges? Other than this,

Reviewed-by: Manivannan Sadhasivam <[email protected]>

Thanks,
Mani

> + items:
> + items:
> + - description: offset
> + - description: size
> + description:
> + Boot partition use a different layout where the 4 bytes of spare
> + data are not protected by ECC. Use this to declare these special
> + partitions by defining first the offset and then the size.
> +
> + It's in the form of <offset1 size1 offset2 size2 offset3 ...>
> +
> + Refer to the ipq8064 example on how to use this special binding.
> +
> required:
> - compatible
> - reg
> @@ -135,6 +159,8 @@ examples:
> nand-ecc-strength = <4>;
> nand-bus-width = <8>;
>
> + qcom,boot-partitions = <0x0 0x58a0000>;
> +
> partitions {
> compatible = "fixed-partitions";
> #address-cells = <1>;
> --
> 2.36.1
>

--
மணிவண்ணன் சதாசிவம்

2022-06-09 10:59:07

by Christian Marangi

[permalink] [raw]
Subject: Re: [PATCH v5 2/3] dt-bindings: mtd: qcom_nandc: document qcom,boot-partitions binding

On Thu, Jun 09, 2022 at 12:50:29PM +0530, Manivannan Sadhasivam wrote:
> On Wed, Jun 08, 2022 at 02:10:29AM +0200, Ansuel Smith wrote:
> > Document new qcom,boot-partition binding used to apply special
> > read/write layout to boot partitions.
> >
> > QCOM apply a special layout where spare data is not protected
> > by ECC for some special pages (used for boot partition). Add
> > Documentation on how to declare these special pages.
> >
> > Signed-off-by: Ansuel Smith <[email protected]>
> > ---
> > .../devicetree/bindings/mtd/qcom,nandc.yaml | 26 +++++++++++++++++++
> > 1 file changed, 26 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
> > index 84ad7ff30121..a0914ccb95b0 100644
> > --- a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
> > +++ b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
> > @@ -102,6 +102,30 @@ allOf:
> > - const: rx
> > - const: cmd
> >
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - qcom,ipq806x-nand
> > +
> > + then:
> > + properties:
> > + qcom,boot-partitions:
> > + $ref: /schemas/types.yaml#/definitions/uint32-matrix
>
> Wondering if u32 is enough for covering all ranges? Other than this,
>
> Reviewed-by: Manivannan Sadhasivam <[email protected]>
>
> Thanks,
> Mani
>

I mean they are offset and sizes... Considering it's an old SoC and max
nand mounted is 1g we should be safe with u32.

> > + items:
> > + items:
> > + - description: offset
> > + - description: size
> > + description:
> > + Boot partition use a different layout where the 4 bytes of spare
> > + data are not protected by ECC. Use this to declare these special
> > + partitions by defining first the offset and then the size.
> > +
> > + It's in the form of <offset1 size1 offset2 size2 offset3 ...>
> > +
> > + Refer to the ipq8064 example on how to use this special binding.
> > +
> > required:
> > - compatible
> > - reg
> > @@ -135,6 +159,8 @@ examples:
> > nand-ecc-strength = <4>;
> > nand-bus-width = <8>;
> >
> > + qcom,boot-partitions = <0x0 0x58a0000>;
> > +
> > partitions {
> > compatible = "fixed-partitions";
> > #address-cells = <1>;
> > --
> > 2.36.1
> >
>
> --
> மணிவண்ணன் சதாசிவம்

--
Ansuel

2022-06-09 11:20:11

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH v5 2/3] dt-bindings: mtd: qcom_nandc: document qcom,boot-partitions binding

On Thu, Jun 09, 2022 at 12:25:27PM +0200, Ansuel Smith wrote:
> On Thu, Jun 09, 2022 at 12:50:29PM +0530, Manivannan Sadhasivam wrote:
> > On Wed, Jun 08, 2022 at 02:10:29AM +0200, Ansuel Smith wrote:
> > > Document new qcom,boot-partition binding used to apply special
> > > read/write layout to boot partitions.
> > >
> > > QCOM apply a special layout where spare data is not protected
> > > by ECC for some special pages (used for boot partition). Add
> > > Documentation on how to declare these special pages.
> > >
> > > Signed-off-by: Ansuel Smith <[email protected]>
> > > ---
> > > .../devicetree/bindings/mtd/qcom,nandc.yaml | 26 +++++++++++++++++++
> > > 1 file changed, 26 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
> > > index 84ad7ff30121..a0914ccb95b0 100644
> > > --- a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
> > > +++ b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml
> > > @@ -102,6 +102,30 @@ allOf:
> > > - const: rx
> > > - const: cmd
> > >
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - qcom,ipq806x-nand
> > > +
> > > + then:
> > > + properties:
> > > + qcom,boot-partitions:
> > > + $ref: /schemas/types.yaml#/definitions/uint32-matrix
> >
> > Wondering if u32 is enough for covering all ranges? Other than this,
> >
> > Reviewed-by: Manivannan Sadhasivam <[email protected]>
> >
> > Thanks,
> > Mani
> >
>
> I mean they are offset and sizes... Considering it's an old SoC and max
> nand mounted is 1g we should be safe with u32.
>

I thought so but wanted to confirm...

Thanks,
Mani

> > > + items:
> > > + items:
> > > + - description: offset
> > > + - description: size
> > > + description:
> > > + Boot partition use a different layout where the 4 bytes of spare
> > > + data are not protected by ECC. Use this to declare these special
> > > + partitions by defining first the offset and then the size.
> > > +
> > > + It's in the form of <offset1 size1 offset2 size2 offset3 ...>
> > > +
> > > + Refer to the ipq8064 example on how to use this special binding.
> > > +
> > > required:
> > > - compatible
> > > - reg
> > > @@ -135,6 +159,8 @@ examples:
> > > nand-ecc-strength = <4>;
> > > nand-bus-width = <8>;
> > >
> > > + qcom,boot-partitions = <0x0 0x58a0000>;
> > > +
> > > partitions {
> > > compatible = "fixed-partitions";
> > > #address-cells = <1>;
> > > --
> > > 2.36.1
> > >
> >
> > --
> > மணிவண்ணன் சதாசிவம்
>
> --
> Ansuel

--
மணிவண்ணன் சதாசிவம்