[PATCH v2] mtd: mtdpart: Support MTDPART_SIZ_FULL in fixed-partitions

Michael Nazzareno Trimarchi michael at amarulasolutions.com
Tue Apr 8 12:31:14 CEST 2025


Hi

On Tue, Apr 8, 2025 at 7:46 AM Mike Looijmans <mike.looijmans at topic.nl>
wrote:

> Flash partitions may specify MTDPART_SIZ_FULL (=0) as the size of the
> partition to indicate "the remainder of the flash". Make this work with
> device-tree "fixed-partitions" as well.
>
> This makes MTD partitioning compatible with the Linux kernel, see:
>
> https://github.com/torvalds/linux/blob/master/include/linux/mtd/partitions.h#L29
>   https://github.com/torvalds/linux/blob/master/drivers/mtd/mtdpart.c#L123
>
> Previously, this could only be done through MTDPARTS so this change allows
> boards like topic_miami to migrate from `mtdparts`/`mtdids` to devicetree
> partitions.
>
> Signed-off-by: Mike Looijmans <mike.looijmans at topic.nl>
> ---
>
> Changes in v2:
> Amend commit text to add links to Linux code and explain the rationale
>
>  drivers/mtd/mtdpart.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
> index 88094b81e7a..5284890bd88 100644
> --- a/drivers/mtd/mtdpart.c
> +++ b/drivers/mtd/mtdpart.c
> @@ -910,11 +910,13 @@ int add_mtd_partitions_of(struct mtd_info *master)
>                         continue;
>
>                 offset = ofnode_get_addr_size_index_notrans(child, 0,
> &size);
> -               if (offset == FDT_ADDR_T_NONE || !size) {
> -                       debug("Missing partition offset/size on \"%s\"
> partition\n",
> +               if (offset == FDT_ADDR_T_NONE) {
> +                       debug("Missing partition offset on \"%s\"
> partition\n",
>                               master->name);
>                         continue;
>                 }
> +               if (size == MTDPART_SIZ_FULL)
> +                       size = master->size - offset;
>
>                 part.name = ofnode_read_string(child, "label");
>                 if (!part.name)
> --
> 2.43.0
>
>
>
Reviewed-by: Michael Trimarchi <michael at amarulasolutions.com>


> Met vriendelijke groet / kind regards,
>
> Mike Looijmans
> System Expert
>
>
> TOPIC Embedded Products B.V.
> Materiaalweg 4, 5681 RJ Best
> The Netherlands
>
> T: +31 (0) 499 33 69 69
> E: mike.looijmans at topic.nl
> W: www.topic.nl
>
> Please consider the environment before printing this e-mail
>


-- 
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
michael at amarulasolutions.com
__________________________________

Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
info at amarulasolutions.com
www.amarulasolutions.com


More information about the U-Boot mailing list