* [PATCH V3 2/2] mtd: core: set ROOT_DEV for partitions marked as rootfs in DT
2022-10-22 21:13 [PATCH V3 1/2] dt-bindings: mtd: partitions: support marking rootfs partition Rafał Miłecki
@ 2022-10-22 21:13 ` Rafał Miłecki
2022-11-07 16:21 ` Miquel Raynal
2022-10-26 19:41 ` [PATCH V3 1/2] dt-bindings: mtd: partitions: support marking rootfs partition Rob Herring
2022-11-07 16:22 ` Miquel Raynal
2 siblings, 1 reply; 5+ messages in thread
From: Rafał Miłecki @ 2022-10-22 21:13 UTC (permalink / raw)
To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
Rob Herring, Krzysztof Kozlowski
Cc: Mikhail Zhilkin, Christian Marangi, Wolfram Sang,
Chaitanya Kulkarni, Martin K . Petersen, Jens Axboe,
Andrew Morton, linux-mtd, devicetree, linux-kernel,
Rafał Miłecki
From: Rafał Miłecki <rafal@milecki.pl>
This adds support for "linux,rootfs" binding that is used to mark flash
partition containing rootfs. It's useful for devices using device tree
that don't have bootloader passing root info in cmdline.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
V2: Use "linux,rootfs" as more accurate. Thanks Rob.
V3: Add IS_BUILTIN(CONFIG_MTD) check to avoid
ERROR: modpost: "ROOT_DEV" [drivers/mtd/mtd.ko] undefined!
---
drivers/mtd/mtdcore.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index 20fcedc3021e..f70a5e66843b 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -28,6 +28,7 @@
#include <linux/leds.h>
#include <linux/debugfs.h>
#include <linux/nvmem-provider.h>
+#include <linux/root_dev.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
@@ -735,6 +736,17 @@ int add_mtd_device(struct mtd_info *mtd)
not->add(mtd);
mutex_unlock(&mtd_table_mutex);
+
+ if (of_find_property(mtd_get_of_node(mtd), "linux,rootfs", NULL)) {
+ if (IS_BUILTIN(CONFIG_MTD)) {
+ pr_info("mtd: setting mtd%d (%s) as root device\n", mtd->index, mtd->name);
+ ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, mtd->index);
+ } else {
+ pr_warn("mtd: can't set mtd%d (%s) as root device - mtd must be builtin\n",
+ mtd->index, mtd->name);
+ }
+ }
+
/* We _know_ we aren't being removed, because
our caller is still holding us here. So none
of this try_ nonsense, and no bitching about it
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH V3 2/2] mtd: core: set ROOT_DEV for partitions marked as rootfs in DT
2022-10-22 21:13 ` [PATCH V3 2/2] mtd: core: set ROOT_DEV for partitions marked as rootfs in DT Rafał Miłecki
@ 2022-11-07 16:21 ` Miquel Raynal
0 siblings, 0 replies; 5+ messages in thread
From: Miquel Raynal @ 2022-11-07 16:21 UTC (permalink / raw)
To: Rafał Miłecki, Miquel Raynal, Richard Weinberger,
Vignesh Raghavendra, Rob Herring, Krzysztof Kozlowski
Cc: Mikhail Zhilkin, Christian Marangi, Wolfram Sang,
Chaitanya Kulkarni, Martin K . Petersen, Jens Axboe,
Andrew Morton, linux-mtd, devicetree, linux-kernel,
Rafał Miłecki
On Sat, 2022-10-22 at 21:13:18 UTC, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> This adds support for "linux,rootfs" binding that is used to mark flash
> partition containing rootfs. It's useful for devices using device tree
> that don't have bootloader passing root info in cmdline.
>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks.
Miquel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH V3 1/2] dt-bindings: mtd: partitions: support marking rootfs partition
2022-10-22 21:13 [PATCH V3 1/2] dt-bindings: mtd: partitions: support marking rootfs partition Rafał Miłecki
2022-10-22 21:13 ` [PATCH V3 2/2] mtd: core: set ROOT_DEV for partitions marked as rootfs in DT Rafał Miłecki
@ 2022-10-26 19:41 ` Rob Herring
2022-11-07 16:22 ` Miquel Raynal
2 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2022-10-26 19:41 UTC (permalink / raw)
To: Rafał Miłecki
Cc: Rob Herring, linux-mtd, linux-kernel, Wolfram Sang, Jens Axboe,
Krzysztof Kozlowski, Mikhail Zhilkin, Andrew Morton,
Rafał Miłecki, Christian Marangi, devicetree,
Richard Weinberger, Martin K . Petersen, Vignesh Raghavendra,
Chaitanya Kulkarni, Miquel Raynal
On Sat, 22 Oct 2022 23:13:17 +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> Linux needs to know what to use as root device. On embedded devices with
> flash the only common way to specify that is cmdline & root= parameter.
>
> That solution works with U-Boot which is Linux & cmdline aware but isn't
> available with all market bootloaders. Also that method is fragile:
> 1. Requires specific probing order on multi-flash devices
> 2. Uses hardcoded partitions indexes
>
> A lot of devices use different partitioning methods. It may be
> "fixed-partitions" or some dynamic partitioning (e.g. based on parts
> table). For such cases allow "linux,rootfs" property to mark correct
> flash partition.
>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> V2: Use "linux,rootfs" as more accurate. Thanks Rob.
> ---
> .../devicetree/bindings/mtd/partitions/fixed-partitions.yaml | 1 +
> .../devicetree/bindings/mtd/partitions/partition.yaml | 4 ++++
> 2 files changed, 5 insertions(+)
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH V3 1/2] dt-bindings: mtd: partitions: support marking rootfs partition
2022-10-22 21:13 [PATCH V3 1/2] dt-bindings: mtd: partitions: support marking rootfs partition Rafał Miłecki
2022-10-22 21:13 ` [PATCH V3 2/2] mtd: core: set ROOT_DEV for partitions marked as rootfs in DT Rafał Miłecki
2022-10-26 19:41 ` [PATCH V3 1/2] dt-bindings: mtd: partitions: support marking rootfs partition Rob Herring
@ 2022-11-07 16:22 ` Miquel Raynal
2 siblings, 0 replies; 5+ messages in thread
From: Miquel Raynal @ 2022-11-07 16:22 UTC (permalink / raw)
To: Rafał Miłecki, Miquel Raynal, Richard Weinberger,
Vignesh Raghavendra, Rob Herring, Krzysztof Kozlowski
Cc: Mikhail Zhilkin, Christian Marangi, Wolfram Sang,
Chaitanya Kulkarni, Martin K . Petersen, Jens Axboe,
Andrew Morton, linux-mtd, devicetree, linux-kernel,
Rafał Miłecki
On Sat, 2022-10-22 at 21:13:17 UTC, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> Linux needs to know what to use as root device. On embedded devices with
> flash the only common way to specify that is cmdline & root= parameter.
>
> That solution works with U-Boot which is Linux & cmdline aware but isn't
> available with all market bootloaders. Also that method is fragile:
> 1. Requires specific probing order on multi-flash devices
> 2. Uses hardcoded partitions indexes
>
> A lot of devices use different partitioning methods. It may be
> "fixed-partitions" or some dynamic partitioning (e.g. based on parts
> table). For such cases allow "linux,rootfs" property to mark correct
> flash partition.
>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> Reviewed-by: Rob Herring <robh@kernel.org>
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks.
Miquel
^ permalink raw reply [flat|nested] 5+ messages in thread