All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2 1/2] dt-bindings: mtd: explicitly document nesting partitions descriptions
@ 2018-07-13 14:32 ` Rafał Miłecki
  0 siblings, 0 replies; 8+ messages in thread
From: Rafał Miłecki @ 2018-07-13 14:32 UTC (permalink / raw)
  To: Brian Norris, David Woodhouse, Boris Brezillon, Marek Vasut,
	Richard Weinberger, Rob Herring
  Cc: Mark Rutland, devicetree, linux-mtd, Rafał Miłecki,
	Jonas Gorski

From: Rafał Miłecki <rafal@milecki.pl>

Documentation was already saying that fixed and dynamic partitioning can
be mixed but was missing a clear description and examples. This commit
adds a proper documentation of how descriptions can be nested and how
layouts can be mixed.

This addition is important for partitions that contain subpartitions.
In such cases partitions have to be properly described in order to let
system handle them correctly.

Depending on situation, nesting descriptions may provide more accurate
logic/structure and/or allow mixing partitioning types (various
"compatible" values).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
V2: Rewrote example: I can include "brcm,trx" now as its Documentation
    has been pushed into mtd git tree.
    Updated commit message.
---
 .../devicetree/bindings/mtd/partition.txt          | 46 ++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/Documentation/devicetree/bindings/mtd/partition.txt b/Documentation/devicetree/bindings/mtd/partition.txt
index a8f382642ba9..afbbd870496d 100644
--- a/Documentation/devicetree/bindings/mtd/partition.txt
+++ b/Documentation/devicetree/bindings/mtd/partition.txt
@@ -14,6 +14,13 @@ method is used for a given flash device. To describe the method there should be
 a subnode of the flash device that is named 'partitions'. It must have a
 'compatible' property, which is used to identify the method to use.
 
+When a single partition is represented with a DT node (it depends on a used
+format) it may also be described using above rules ('compatible' and optionally
+some extra properties / subnodes). It allows describing more complex,
+hierarchical (multi-level) layouts and should be used if there is some
+significant relation between partitions or some partition internally uses
+another partitioning method.
+
 Available bindings are listed in the "partitions" subdirectory.
 
 
@@ -109,3 +116,42 @@ flash@2 {
 		};
 	};
 };
+
+flash@3 {
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition@0 {
+			label = "bootloader";
+			reg = <0x000000 0x100000>;
+			read-only;
+		};
+
+		firmware@100000 {
+			label = "firmware";
+			reg = <0x100000 0xe00000>;
+			compatible = "brcm,trx";
+		};
+
+		calibration@f00000 {
+			label = "calibration";
+			reg = <0xf00000 0x100000>;
+			compatible = "fixed-partitions";
+			ranges = <0 0xf00000 0x100000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@0 {
+				label = "wifi0";
+				reg = <0x000000 0x080000>;
+			};
+
+			partition@80000 {
+				label = "wifi1";
+				reg = <0x080000 0x080000>;
+			};
+		};
+	};
+};
-- 
2.13.7


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

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

* [PATCH V2 1/2] dt-bindings: mtd: explicitly document nesting partitions descriptions
@ 2018-07-13 14:32 ` Rafał Miłecki
  0 siblings, 0 replies; 8+ messages in thread
From: Rafał Miłecki @ 2018-07-13 14:32 UTC (permalink / raw)
  To: Brian Norris, David Woodhouse, Boris Brezillon, Marek Vasut,
	Richard Weinberger, Rob Herring
  Cc: Mark Rutland, linux-mtd, devicetree, Jonas Gorski,
	Rafał Miłecki

From: Rafał Miłecki <rafal@milecki.pl>

Documentation was already saying that fixed and dynamic partitioning can
be mixed but was missing a clear description and examples. This commit
adds a proper documentation of how descriptions can be nested and how
layouts can be mixed.

This addition is important for partitions that contain subpartitions.
In such cases partitions have to be properly described in order to let
system handle them correctly.

Depending on situation, nesting descriptions may provide more accurate
logic/structure and/or allow mixing partitioning types (various
"compatible" values).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
V2: Rewrote example: I can include "brcm,trx" now as its Documentation
    has been pushed into mtd git tree.
    Updated commit message.
---
 .../devicetree/bindings/mtd/partition.txt          | 46 ++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/Documentation/devicetree/bindings/mtd/partition.txt b/Documentation/devicetree/bindings/mtd/partition.txt
index a8f382642ba9..afbbd870496d 100644
--- a/Documentation/devicetree/bindings/mtd/partition.txt
+++ b/Documentation/devicetree/bindings/mtd/partition.txt
@@ -14,6 +14,13 @@ method is used for a given flash device. To describe the method there should be
 a subnode of the flash device that is named 'partitions'. It must have a
 'compatible' property, which is used to identify the method to use.
 
+When a single partition is represented with a DT node (it depends on a used
+format) it may also be described using above rules ('compatible' and optionally
+some extra properties / subnodes). It allows describing more complex,
+hierarchical (multi-level) layouts and should be used if there is some
+significant relation between partitions or some partition internally uses
+another partitioning method.
+
 Available bindings are listed in the "partitions" subdirectory.
 
 
@@ -109,3 +116,42 @@ flash@2 {
 		};
 	};
 };
+
+flash@3 {
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition@0 {
+			label = "bootloader";
+			reg = <0x000000 0x100000>;
+			read-only;
+		};
+
+		firmware@100000 {
+			label = "firmware";
+			reg = <0x100000 0xe00000>;
+			compatible = "brcm,trx";
+		};
+
+		calibration@f00000 {
+			label = "calibration";
+			reg = <0xf00000 0x100000>;
+			compatible = "fixed-partitions";
+			ranges = <0 0xf00000 0x100000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition@0 {
+				label = "wifi0";
+				reg = <0x000000 0x080000>;
+			};
+
+			partition@80000 {
+				label = "wifi1";
+				reg = <0x080000 0x080000>;
+			};
+		};
+	};
+};
-- 
2.13.7

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

* [PATCH V2 2/2] mtd: partitions: use DT info for parsing partitions with "compatible" prop
  2018-07-13 14:32 ` Rafał Miłecki
@ 2018-07-13 14:32   ` Rafał Miłecki
  -1 siblings, 0 replies; 8+ messages in thread
From: Rafał Miłecki @ 2018-07-13 14:32 UTC (permalink / raw)
  To: Brian Norris, David Woodhouse, Boris Brezillon, Marek Vasut,
	Richard Weinberger, Rob Herring
  Cc: Mark Rutland, devicetree, linux-mtd, Rafał Miłecki,
	Jonas Gorski

From: Rafał Miłecki <rafal@milecki.pl>

So far only flash devices could be described in DT regarding partitions
parsing. That could be done with "partitions" subnode and a proper
"compatible" string.

Some devices may use hierarchical (multi-level) layouts and may mix used
layouts (fixed and dynamic). Describing that in DT is done by specifying
"compatible" for DT-represented partition plus optionally more
properties and/or subnodes.

To support such layouts each DT partition has to be checked for
additional description.

Please note this implementation will work in parallel with support for
partition type specified for non-DT setups. That already works since
commit 1a0915be1926 ("mtd: partitions: add support for partition
parsers").

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
V2: Updated commit message (more details + info about non-DT cases)
---
 drivers/mtd/mtdpart.c | 33 +++++++++++++--------------------
 1 file changed, 13 insertions(+), 20 deletions(-)

diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index f8d3a015cdad..52e2cb35fc79 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -322,22 +322,6 @@ static inline void free_partition(struct mtd_part *p)
 	kfree(p);
 }
 
-/**
- * mtd_parse_part - parse MTD partition looking for subpartitions
- *
- * @slave: part that is supposed to be a container and should be parsed
- * @types: NULL-terminated array with names of partition parsers to try
- *
- * Some partitions are kind of containers with extra subpartitions (volumes).
- * There can be various formats of such containers. This function tries to use
- * specified parsers to analyze given partition and registers found
- * subpartitions on success.
- */
-static int mtd_parse_part(struct mtd_part *slave, const char *const *types)
-{
-	return parse_mtd_partitions(&slave->mtd, types, NULL);
-}
-
 static struct mtd_part *allocate_partition(struct mtd_info *parent,
 			const struct mtd_partition *part, int partno,
 			uint64_t cur_offset)
@@ -735,8 +719,8 @@ int add_mtd_partitions(struct mtd_info *master,
 
 		add_mtd_device(&slave->mtd);
 		mtd_add_partition_attrs(slave);
-		if (parts[i].types)
-			mtd_parse_part(slave, parts[i].types);
+		/* Look for subpartitions */
+		parse_mtd_partitions(&slave->mtd, parts[i].types, NULL);
 
 		cur_offset = slave->offset + slave->mtd.size;
 	}
@@ -812,6 +796,12 @@ static const char * const default_mtd_part_types[] = {
 	NULL
 };
 
+/* Check DT only when looking for subpartitions. */
+static const char * const default_subpartition_types[] = {
+	"ofpart",
+	NULL
+};
+
 static int mtd_part_do_parse(struct mtd_part_parser *parser,
 			     struct mtd_info *master,
 			     struct mtd_partitions *pparts,
@@ -882,7 +872,9 @@ static int mtd_part_of_parse(struct mtd_info *master,
 	const char *fixed = "fixed-partitions";
 	int ret, err = 0;
 
-	np = of_get_child_by_name(mtd_get_of_node(master), "partitions");
+	np = mtd_get_of_node(master);
+	if (!mtd_is_partition(master))
+		np = of_get_child_by_name(np, "partitions");
 	of_property_for_each_string(np, "compatible", prop, compat) {
 		parser = mtd_part_get_compatible_parser(compat);
 		if (!parser)
@@ -945,7 +937,8 @@ int parse_mtd_partitions(struct mtd_info *master, const char *const *types,
 	int ret, err = 0;
 
 	if (!types)
-		types = default_mtd_part_types;
+		types = mtd_is_partition(master) ? default_subpartition_types :
+			default_mtd_part_types;
 
 	for ( ; *types; types++) {
 		/*
-- 
2.13.7


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

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

* [PATCH V2 2/2] mtd: partitions: use DT info for parsing partitions with "compatible" prop
@ 2018-07-13 14:32   ` Rafał Miłecki
  0 siblings, 0 replies; 8+ messages in thread
From: Rafał Miłecki @ 2018-07-13 14:32 UTC (permalink / raw)
  To: Brian Norris, David Woodhouse, Boris Brezillon, Marek Vasut,
	Richard Weinberger, Rob Herring
  Cc: Mark Rutland, linux-mtd, devicetree, Jonas Gorski,
	Rafał Miłecki

From: Rafał Miłecki <rafal@milecki.pl>

So far only flash devices could be described in DT regarding partitions
parsing. That could be done with "partitions" subnode and a proper
"compatible" string.

Some devices may use hierarchical (multi-level) layouts and may mix used
layouts (fixed and dynamic). Describing that in DT is done by specifying
"compatible" for DT-represented partition plus optionally more
properties and/or subnodes.

To support such layouts each DT partition has to be checked for
additional description.

Please note this implementation will work in parallel with support for
partition type specified for non-DT setups. That already works since
commit 1a0915be1926 ("mtd: partitions: add support for partition
parsers").

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
V2: Updated commit message (more details + info about non-DT cases)
---
 drivers/mtd/mtdpart.c | 33 +++++++++++++--------------------
 1 file changed, 13 insertions(+), 20 deletions(-)

diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index f8d3a015cdad..52e2cb35fc79 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -322,22 +322,6 @@ static inline void free_partition(struct mtd_part *p)
 	kfree(p);
 }
 
-/**
- * mtd_parse_part - parse MTD partition looking for subpartitions
- *
- * @slave: part that is supposed to be a container and should be parsed
- * @types: NULL-terminated array with names of partition parsers to try
- *
- * Some partitions are kind of containers with extra subpartitions (volumes).
- * There can be various formats of such containers. This function tries to use
- * specified parsers to analyze given partition and registers found
- * subpartitions on success.
- */
-static int mtd_parse_part(struct mtd_part *slave, const char *const *types)
-{
-	return parse_mtd_partitions(&slave->mtd, types, NULL);
-}
-
 static struct mtd_part *allocate_partition(struct mtd_info *parent,
 			const struct mtd_partition *part, int partno,
 			uint64_t cur_offset)
@@ -735,8 +719,8 @@ int add_mtd_partitions(struct mtd_info *master,
 
 		add_mtd_device(&slave->mtd);
 		mtd_add_partition_attrs(slave);
-		if (parts[i].types)
-			mtd_parse_part(slave, parts[i].types);
+		/* Look for subpartitions */
+		parse_mtd_partitions(&slave->mtd, parts[i].types, NULL);
 
 		cur_offset = slave->offset + slave->mtd.size;
 	}
@@ -812,6 +796,12 @@ static const char * const default_mtd_part_types[] = {
 	NULL
 };
 
+/* Check DT only when looking for subpartitions. */
+static const char * const default_subpartition_types[] = {
+	"ofpart",
+	NULL
+};
+
 static int mtd_part_do_parse(struct mtd_part_parser *parser,
 			     struct mtd_info *master,
 			     struct mtd_partitions *pparts,
@@ -882,7 +872,9 @@ static int mtd_part_of_parse(struct mtd_info *master,
 	const char *fixed = "fixed-partitions";
 	int ret, err = 0;
 
-	np = of_get_child_by_name(mtd_get_of_node(master), "partitions");
+	np = mtd_get_of_node(master);
+	if (!mtd_is_partition(master))
+		np = of_get_child_by_name(np, "partitions");
 	of_property_for_each_string(np, "compatible", prop, compat) {
 		parser = mtd_part_get_compatible_parser(compat);
 		if (!parser)
@@ -945,7 +937,8 @@ int parse_mtd_partitions(struct mtd_info *master, const char *const *types,
 	int ret, err = 0;
 
 	if (!types)
-		types = default_mtd_part_types;
+		types = mtd_is_partition(master) ? default_subpartition_types :
+			default_mtd_part_types;
 
 	for ( ; *types; types++) {
 		/*
-- 
2.13.7

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

* Re: [PATCH V2 1/2] dt-bindings: mtd: explicitly document nesting partitions descriptions
  2018-07-13 14:32 ` Rafał Miłecki
@ 2018-07-16 17:57   ` Rob Herring
  -1 siblings, 0 replies; 8+ messages in thread
From: Rob Herring @ 2018-07-16 17:57 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Mark Rutland, Boris Brezillon, devicetree, Richard Weinberger,
	Marek Vasut, linux-mtd, Jonas Gorski, Rafał Miłecki,
	Brian Norris, David Woodhouse

On Fri, Jul 13, 2018 at 04:32:20PM +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> Documentation was already saying that fixed and dynamic partitioning can
> be mixed but was missing a clear description and examples. This commit
> adds a proper documentation of how descriptions can be nested and how
> layouts can be mixed.
> 
> This addition is important for partitions that contain subpartitions.
> In such cases partitions have to be properly described in order to let
> system handle them correctly.
> 
> Depending on situation, nesting descriptions may provide more accurate
> logic/structure and/or allow mixing partitioning types (various
> "compatible" values).
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> V2: Rewrote example: I can include "brcm,trx" now as its Documentation
>     has been pushed into mtd git tree.
>     Updated commit message.
> ---
>  .../devicetree/bindings/mtd/partition.txt          | 46 ++++++++++++++++++++++
>  1 file changed, 46 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] 8+ messages in thread

* Re: [PATCH V2 1/2] dt-bindings: mtd: explicitly document nesting partitions descriptions
@ 2018-07-16 17:57   ` Rob Herring
  0 siblings, 0 replies; 8+ messages in thread
From: Rob Herring @ 2018-07-16 17:57 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Brian Norris, David Woodhouse, Boris Brezillon, Marek Vasut,
	Richard Weinberger, Mark Rutland, linux-mtd, devicetree,
	Jonas Gorski, Rafał Miłecki

On Fri, Jul 13, 2018 at 04:32:20PM +0200, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> Documentation was already saying that fixed and dynamic partitioning can
> be mixed but was missing a clear description and examples. This commit
> adds a proper documentation of how descriptions can be nested and how
> layouts can be mixed.
> 
> This addition is important for partitions that contain subpartitions.
> In such cases partitions have to be properly described in order to let
> system handle them correctly.
> 
> Depending on situation, nesting descriptions may provide more accurate
> logic/structure and/or allow mixing partitioning types (various
> "compatible" values).
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> V2: Rewrote example: I can include "brcm,trx" now as its Documentation
>     has been pushed into mtd git tree.
>     Updated commit message.
> ---
>  .../devicetree/bindings/mtd/partition.txt          | 46 ++++++++++++++++++++++
>  1 file changed, 46 insertions(+)

Reviewed-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH V2 1/2] dt-bindings: mtd: explicitly document nesting partitions descriptions
  2018-07-13 14:32 ` Rafał Miłecki
@ 2018-07-26 19:42   ` Boris Brezillon
  -1 siblings, 0 replies; 8+ messages in thread
From: Boris Brezillon @ 2018-07-26 19:42 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Mark Rutland, Boris Brezillon, devicetree, Richard Weinberger,
	Marek Vasut, Rob Herring, linux-mtd, Jonas Gorski,
	Rafał Miłecki, Brian Norris, David Woodhouse

On Fri, 13 Jul 2018 16:32:20 +0200
Rafał Miłecki <zajec5@gmail.com> wrote:

> From: Rafał Miłecki <rafal@milecki.pl>
> 
> Documentation was already saying that fixed and dynamic partitioning can
> be mixed but was missing a clear description and examples. This commit
> adds a proper documentation of how descriptions can be nested and how
> layouts can be mixed.
> 
> This addition is important for partitions that contain subpartitions.
> In such cases partitions have to be properly described in order to let
> system handle them correctly.
> 
> Depending on situation, nesting descriptions may provide more accurate
> logic/structure and/or allow mixing partitioning types (various
> "compatible" values).
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>

Applied both patches.

Thanks,

Boris

> ---
> V2: Rewrote example: I can include "brcm,trx" now as its Documentation
>     has been pushed into mtd git tree.
>     Updated commit message.
> ---
>  .../devicetree/bindings/mtd/partition.txt          | 46 ++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/mtd/partition.txt b/Documentation/devicetree/bindings/mtd/partition.txt
> index a8f382642ba9..afbbd870496d 100644
> --- a/Documentation/devicetree/bindings/mtd/partition.txt
> +++ b/Documentation/devicetree/bindings/mtd/partition.txt
> @@ -14,6 +14,13 @@ method is used for a given flash device. To describe the method there should be
>  a subnode of the flash device that is named 'partitions'. It must have a
>  'compatible' property, which is used to identify the method to use.
>  
> +When a single partition is represented with a DT node (it depends on a used
> +format) it may also be described using above rules ('compatible' and optionally
> +some extra properties / subnodes). It allows describing more complex,
> +hierarchical (multi-level) layouts and should be used if there is some
> +significant relation between partitions or some partition internally uses
> +another partitioning method.
> +
>  Available bindings are listed in the "partitions" subdirectory.
>  
>  
> @@ -109,3 +116,42 @@ flash@2 {
>  		};
>  	};
>  };
> +
> +flash@3 {
> +	partitions {
> +		compatible = "fixed-partitions";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +
> +		partition@0 {
> +			label = "bootloader";
> +			reg = <0x000000 0x100000>;
> +			read-only;
> +		};
> +
> +		firmware@100000 {
> +			label = "firmware";
> +			reg = <0x100000 0xe00000>;
> +			compatible = "brcm,trx";
> +		};
> +
> +		calibration@f00000 {
> +			label = "calibration";
> +			reg = <0xf00000 0x100000>;
> +			compatible = "fixed-partitions";
> +			ranges = <0 0xf00000 0x100000>;
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition@0 {
> +				label = "wifi0";
> +				reg = <0x000000 0x080000>;
> +			};
> +
> +			partition@80000 {
> +				label = "wifi1";
> +				reg = <0x080000 0x080000>;
> +			};
> +		};
> +	};
> +};


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

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

* Re: [PATCH V2 1/2] dt-bindings: mtd: explicitly document nesting partitions descriptions
@ 2018-07-26 19:42   ` Boris Brezillon
  0 siblings, 0 replies; 8+ messages in thread
From: Boris Brezillon @ 2018-07-26 19:42 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Brian Norris, David Woodhouse, Boris Brezillon, Marek Vasut,
	Richard Weinberger, Rob Herring, Mark Rutland, devicetree,
	linux-mtd, Rafał Miłecki, Jonas Gorski

On Fri, 13 Jul 2018 16:32:20 +0200
Rafał Miłecki <zajec5@gmail.com> wrote:

> From: Rafał Miłecki <rafal@milecki.pl>
> 
> Documentation was already saying that fixed and dynamic partitioning can
> be mixed but was missing a clear description and examples. This commit
> adds a proper documentation of how descriptions can be nested and how
> layouts can be mixed.
> 
> This addition is important for partitions that contain subpartitions.
> In such cases partitions have to be properly described in order to let
> system handle them correctly.
> 
> Depending on situation, nesting descriptions may provide more accurate
> logic/structure and/or allow mixing partitioning types (various
> "compatible" values).
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>

Applied both patches.

Thanks,

Boris

> ---
> V2: Rewrote example: I can include "brcm,trx" now as its Documentation
>     has been pushed into mtd git tree.
>     Updated commit message.
> ---
>  .../devicetree/bindings/mtd/partition.txt          | 46 ++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/mtd/partition.txt b/Documentation/devicetree/bindings/mtd/partition.txt
> index a8f382642ba9..afbbd870496d 100644
> --- a/Documentation/devicetree/bindings/mtd/partition.txt
> +++ b/Documentation/devicetree/bindings/mtd/partition.txt
> @@ -14,6 +14,13 @@ method is used for a given flash device. To describe the method there should be
>  a subnode of the flash device that is named 'partitions'. It must have a
>  'compatible' property, which is used to identify the method to use.
>  
> +When a single partition is represented with a DT node (it depends on a used
> +format) it may also be described using above rules ('compatible' and optionally
> +some extra properties / subnodes). It allows describing more complex,
> +hierarchical (multi-level) layouts and should be used if there is some
> +significant relation between partitions or some partition internally uses
> +another partitioning method.
> +
>  Available bindings are listed in the "partitions" subdirectory.
>  
>  
> @@ -109,3 +116,42 @@ flash@2 {
>  		};
>  	};
>  };
> +
> +flash@3 {
> +	partitions {
> +		compatible = "fixed-partitions";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +
> +		partition@0 {
> +			label = "bootloader";
> +			reg = <0x000000 0x100000>;
> +			read-only;
> +		};
> +
> +		firmware@100000 {
> +			label = "firmware";
> +			reg = <0x100000 0xe00000>;
> +			compatible = "brcm,trx";
> +		};
> +
> +		calibration@f00000 {
> +			label = "calibration";
> +			reg = <0xf00000 0x100000>;
> +			compatible = "fixed-partitions";
> +			ranges = <0 0xf00000 0x100000>;
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition@0 {
> +				label = "wifi0";
> +				reg = <0x000000 0x080000>;
> +			};
> +
> +			partition@80000 {
> +				label = "wifi1";
> +				reg = <0x080000 0x080000>;
> +			};
> +		};
> +	};
> +};

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

end of thread, other threads:[~2018-07-26 19:43 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-13 14:32 [PATCH V2 1/2] dt-bindings: mtd: explicitly document nesting partitions descriptions Rafał Miłecki
2018-07-13 14:32 ` Rafał Miłecki
2018-07-13 14:32 ` [PATCH V2 2/2] mtd: partitions: use DT info for parsing partitions with "compatible" prop Rafał Miłecki
2018-07-13 14:32   ` Rafał Miłecki
2018-07-16 17:57 ` [PATCH V2 1/2] dt-bindings: mtd: explicitly document nesting partitions descriptions Rob Herring
2018-07-16 17:57   ` Rob Herring
2018-07-26 19:42 ` Boris Brezillon
2018-07-26 19:42   ` Boris Brezillon

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.