Re: [PATCH] dt-bindings: mtd-partitions: Export special values

From: Krzysztof Kozlowski
Date: Wed Oct 25 2023 - 04:20:19 EST


On 25/10/2023 07:29, Edward Chow wrote:
> There are special "offset" and "size" values defined and documented in
> linux/mtd/partitions.h:
>
> // consume as much as possible, leaving size after the end of partition.
>
> // the partition will start at the next erase block.
>
> // the partition will start where the previous one ended.
>
> (Though not explicitly, they are compared against variables in uint64_t
> in drivers/mtd/mtdpart.c, so they had better be considered as such.)
>
> // the partition will extend to the end of the master MTD device.
>
> These special values could be used to define partitions automatically
> fitting to the size of the master MTD device at runtime.
>
> However, these values used not to be exported to dt-bindings, thus
> seldom used before, since they might have been only used in numeric form,
> such as "(-1) (-3)" for MTDPART_OFS_RETAIN.
>
> Now, they are exported in dt-bindings/mtd/partitions.h as 32-bit cell
> values, so 2-cell addressed should be defined to use special offset values,
> such as "MTDPART_OFS_SPECIAL MTDPART_OFS_RETAIN" for MTDPART_OFS_RETAIN in
> linux/mtd/partitions.h. An example is added to fixed-partitions.yaml.
>
> Signed-off-by: Edward Chow <equu@xxxxxxxxxxx>
> ---
> .../mtd/partitions/fixed-partitions.yaml | 29 +++++++++++++++++++
> MAINTAINERS | 2 ++
> include/dt-bindings/mtd/partitions.h | 15 ++++++++++
> 3 files changed, 46 insertions(+)
> create mode 100644 include/dt-bindings/mtd/partitions.h
>
> diff --git a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> index 331e564f29dc..a939fb52ef76 100644
> --- a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> +++ b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> @@ -164,3 +164,32 @@ examples:
> read-only;
> };
> };
> +
> + - |
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <2>;
> + #size-cells = <1>;
> +
> + partition@0 {
> + label = "bootloader";
> + reg = <0 0x000000 0x020000>;
> + read-only;
> + };
> +
> + firmware@1 {
> + label = "firmware";
> + /* From the end of the last partition, occupying as mush

Use Linux coding style comments.

> + * as possible, retaining 0x010000 after it,
> + * "MTDPART_OFS_SPECIAL MTDPART_OFS_NXTBLK" similar to
> + * this, but always beginning at erase block boundary. */
> + reg = <MTDPART_OFS_SPECIAL MTDPART_OFS_RETAIN 0x010000>;
> + };
> +
> + calibration@2 {
> + compatible = "fixed-partitions";
> + label = "calibration";
> + /* Appending to the last partition, occupying 0x010000 */
> + reg = <MTDPART_OFS_SPECIAL MTDPART_OFS_APPEND 0x010000>;

And where is any user of this? Example in the bindings is not user. I
would expect that you will change at least one other DTS.

> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 668d1e24452d..7d6beadc8b36 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -13771,9 +13771,11 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/fixes
> T: git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next
> F: Documentation/devicetree/bindings/mtd/
> F: drivers/mtd/
> +F: include/dt-bindings/mtd/
> F: include/linux/mtd/
> F: include/uapi/mtd/
>
> +

Drop.

> MEMSENSING MICROSYSTEMS MSA311 DRIVER
> M: Dmitry Rokosov <ddrokosov@xxxxxxxxxxxxxx>
> L: linux-iio@xxxxxxxxxxxxxxx
> diff --git a/include/dt-bindings/mtd/partitions.h b/include/dt-bindings/mtd/partitions.h
> new file mode 100644
> index 000000000000..456a54a1259a
> --- /dev/null
> +++ b/include/dt-bindings/mtd/partitions.h
> @@ -0,0 +1,15 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */

Dual license, as asked by checkpatch.

Best regards,
Krzysztof