From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Francesco Dolcini <francesco@dolcini.it>
Cc: Richard Weinberger <richard@nod.at>,
Vignesh Raghavendra <vigneshr@ti.com>,
linux-mtd@lists.infradead.org, Marek Vasut <marex@denx.de>,
Francesco Dolcini <francesco.dolcini@toradex.com>,
u-boot@lists.denx.de,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Re: [PATCH v2] mtd: parsers: ofpart: add workaround for #size-cells 0
Date: Mon, 23 Jan 2023 11:28:08 +0100 [thread overview]
Message-ID: <20230123112808.6340a016@xps-13> (raw)
In-Reply-To: <20230113184556.487405-1-francesco@dolcini.it>
Hi Francesco,
francesco@dolcini.it wrote on Fri, 13 Jan 2023 19:45:56 +0100:
> From: Francesco Dolcini <francesco.dolcini@toradex.com>
>
> Add a mechanism to handle the case in which partitions are present as
> direct child of the nand controller node and #size-cells is set to <0>.
>
> This could happen if the nand-controller node in the DTS is supposed to
> have #size-cells set to 0, but for some historical reason/bug it was set
> to 1 in the past, and the firmware (e.g. U-Boot) is adding the partition
> as direct children of the nand-controller defaulting to #size-cells
> being to 1.
>
> This prevents a real boot failure on colibri-imx7 that happened during v6.1
> development cycles.
>
> Link: https://lore.kernel.org/all/Y4dgBTGNWpM6SQXI@francesco-nb.int.toradex.com/
> Link: https://lore.kernel.org/all/20221202071900.1143950-1-francesco@dolcini.it/
> Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
>
> Miquel, Marek: I do not expect this patch to be backported to stable, however
> I would expect that we do not backport nand-controller dts cleanups neither.
Okay.
>
> v2:
> fixup size-cells only when partitions are direct children of the nand-controller
> completely revised commit message, comments and warning print
> use pr_warn instead of pr_warn_once
> added Reviewed-by Greg
> removed cc:stable@ and fixes tag, since the problematic commit was reverted
> ---
> drivers/mtd/parsers/ofpart_core.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/mtd/parsers/ofpart_core.c b/drivers/mtd/parsers/ofpart_core.c
> index 192190c42fc8..46559a9248e6 100644
> --- a/drivers/mtd/parsers/ofpart_core.c
> +++ b/drivers/mtd/parsers/ofpart_core.c
> @@ -122,6 +122,26 @@ static int parse_fixed_partitions(struct mtd_info *master,
>
> a_cells = of_n_addr_cells(pp);
> s_cells = of_n_size_cells(pp);
> + if (!dedicated && s_cells == 0) {
> + /*
> + * This is a hugly workaround to not create
> + * regression on devices that are still creating
> + * partitions as direct child of the nand controller.
> + * This can happen in case the nand controller node has
> + * #size-cells equal to 0 and the firmware (e.g.
> + * U-Boot) just add the partitions there assuming
> + * 32-bit addressing.
> + *
> + * If you get this warning your firmware and/or DTS
> + * should be really fixed.
> + *
> + * This is working only for devices smaller than 4GiB.
> + */
> + pr_warn("%s: ofpart partition %pOF (%pOF) #size-cells is wrongly set to <0>, assuming <1> for parsing partitions.\n",
> + master->name, pp,
> + mtd_node);
Why mtd_node on a new line?
Otherwise looks good to me.
> + s_cells = 1;
> + }
> if (len / 4 != a_cells + s_cells) {
> pr_debug("%s: ofpart partition %pOF (%pOF) error parsing reg property.\n",
> master->name, pp,
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Francesco Dolcini <francesco@dolcini.it>
Cc: Richard Weinberger <richard@nod.at>,
Vignesh Raghavendra <vigneshr@ti.com>,
linux-mtd@lists.infradead.org, Marek Vasut <marex@denx.de>,
Francesco Dolcini <francesco.dolcini@toradex.com>,
u-boot@lists.denx.de,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Re: [PATCH v2] mtd: parsers: ofpart: add workaround for #size-cells 0
Date: Mon, 23 Jan 2023 11:28:08 +0100 [thread overview]
Message-ID: <20230123112808.6340a016@xps-13> (raw)
In-Reply-To: <20230113184556.487405-1-francesco@dolcini.it>
Hi Francesco,
francesco@dolcini.it wrote on Fri, 13 Jan 2023 19:45:56 +0100:
> From: Francesco Dolcini <francesco.dolcini@toradex.com>
>
> Add a mechanism to handle the case in which partitions are present as
> direct child of the nand controller node and #size-cells is set to <0>.
>
> This could happen if the nand-controller node in the DTS is supposed to
> have #size-cells set to 0, but for some historical reason/bug it was set
> to 1 in the past, and the firmware (e.g. U-Boot) is adding the partition
> as direct children of the nand-controller defaulting to #size-cells
> being to 1.
>
> This prevents a real boot failure on colibri-imx7 that happened during v6.1
> development cycles.
>
> Link: https://lore.kernel.org/all/Y4dgBTGNWpM6SQXI@francesco-nb.int.toradex.com/
> Link: https://lore.kernel.org/all/20221202071900.1143950-1-francesco@dolcini.it/
> Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
>
> Miquel, Marek: I do not expect this patch to be backported to stable, however
> I would expect that we do not backport nand-controller dts cleanups neither.
Okay.
>
> v2:
> fixup size-cells only when partitions are direct children of the nand-controller
> completely revised commit message, comments and warning print
> use pr_warn instead of pr_warn_once
> added Reviewed-by Greg
> removed cc:stable@ and fixes tag, since the problematic commit was reverted
> ---
> drivers/mtd/parsers/ofpart_core.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/mtd/parsers/ofpart_core.c b/drivers/mtd/parsers/ofpart_core.c
> index 192190c42fc8..46559a9248e6 100644
> --- a/drivers/mtd/parsers/ofpart_core.c
> +++ b/drivers/mtd/parsers/ofpart_core.c
> @@ -122,6 +122,26 @@ static int parse_fixed_partitions(struct mtd_info *master,
>
> a_cells = of_n_addr_cells(pp);
> s_cells = of_n_size_cells(pp);
> + if (!dedicated && s_cells == 0) {
> + /*
> + * This is a hugly workaround to not create
> + * regression on devices that are still creating
> + * partitions as direct child of the nand controller.
> + * This can happen in case the nand controller node has
> + * #size-cells equal to 0 and the firmware (e.g.
> + * U-Boot) just add the partitions there assuming
> + * 32-bit addressing.
> + *
> + * If you get this warning your firmware and/or DTS
> + * should be really fixed.
> + *
> + * This is working only for devices smaller than 4GiB.
> + */
> + pr_warn("%s: ofpart partition %pOF (%pOF) #size-cells is wrongly set to <0>, assuming <1> for parsing partitions.\n",
> + master->name, pp,
> + mtd_node);
Why mtd_node on a new line?
Otherwise looks good to me.
> + s_cells = 1;
> + }
> if (len / 4 != a_cells + s_cells) {
> pr_debug("%s: ofpart partition %pOF (%pOF) error parsing reg property.\n",
> master->name, pp,
Thanks,
Miquèl
next prev parent reply other threads:[~2023-01-23 10:30 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-13 18:45 [PATCH v2] mtd: parsers: ofpart: add workaround for #size-cells 0 Francesco Dolcini
2023-01-13 18:45 ` Francesco Dolcini
2023-01-23 10:28 ` Miquel Raynal [this message]
2023-01-23 10:28 ` Miquel Raynal
2023-01-23 10:35 ` Francesco Dolcini
2023-01-23 10:35 ` Francesco Dolcini
2023-01-23 10:52 ` Miquel Raynal
2023-01-23 10:52 ` Miquel Raynal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230123112808.6340a016@xps-13 \
--to=miquel.raynal@bootlin.com \
--cc=francesco.dolcini@toradex.com \
--cc=francesco@dolcini.it \
--cc=gregkh@linuxfoundation.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marex@denx.de \
--cc=richard@nod.at \
--cc=u-boot@lists.denx.de \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.