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