linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V3 1/2] dt-bindings: mtd: partitions: support marking rootfs partition
@ 2022-10-22 21:13 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
                   ` (2 more replies)
  0 siblings, 3 replies; 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>

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(+)

diff --git a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
index ad3ccd250802..d66a6e3bcb56 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
@@ -84,6 +84,7 @@ examples:
         partition@0 {
             label = "filesystem";
             reg = <0x00000000 0x1 0x00000000>;
+            linux,rootfs;
         };
     };
 
diff --git a/Documentation/devicetree/bindings/mtd/partitions/partition.yaml b/Documentation/devicetree/bindings/mtd/partitions/partition.yaml
index f1a02d840b12..a25cd23a34c0 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/partition.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/partition.yaml
@@ -52,6 +52,10 @@ properties:
       immune to paired-pages corruptions
     type: boolean
 
+  linux,rootfs:
+    description: Marks partition that contains root filesystem to mount and boot
+      user space from
+
 if:
   not:
     required: [ reg ]
-- 
2.34.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [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


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply related	[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>

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[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

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ 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

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-11-07 16:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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-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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).