Message ID | 20180713143221.8474-1-zajec5@gmail.com |
---|---|
State | Accepted |
Delegated to: | Boris Brezillon |
Headers | show |
Series | [V2,1/2] dt-bindings: mtd: explicitly document nesting partitions descriptions | expand |
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>
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>; > + }; > + }; > + }; > +};
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>; + }; + }; + }; +};