Skip to content

Commit

Permalink
dt-bindings: mtd: document Broadcom's BCM47xx partitions
Browse files Browse the repository at this point in the history
Broadcom based home router devices use partitions which have to be
discovered in a specific way. They are not fixed and there is not any
standard partition table. This commit adds and describes a new custom
binding for such devices.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
  • Loading branch information
Rafał Miłecki authored and Boris Brezillon committed May 23, 2018
1 parent ea092fb commit 5178b99
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/mtd/partition.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ 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.

We currently only document a binding for fixed layouts.
Available bindings are listed in the "partitions" subdirectory.


Fixed Partitions
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Broadcom BCM47xx Partitions
===========================

Broadcom is one of hardware manufacturers providing SoCs (BCM47xx) used in
home routers. Their BCM947xx boards using CFE bootloader have several partitions
without any on-flash partition table. On some devices their sizes and/or
meanings can also vary so fixed partitioning can't be used.

Discovering partitions on these devices is possible thanks to having a special
header and/or magic signature at the beginning of each of them. They are also
block aligned which is important for determinig a size.

Most of partitions use ASCII text based magic for determining a type. More
complex partitions (like TRX with its HDR0 magic) may include extra header
containing some details, including a length.

A list of supported partitions includes:
1) Bootloader with Broadcom's CFE (Common Firmware Environment)
2) NVRAM with configuration/calibration data
3) Device manufacturer's data with some default values (e.g. SSIDs)
4) TRX firmware container which can hold up to 4 subpartitions
5) Backup TRX firmware used after failed upgrade

As mentioned earlier, role of some partitions may depend on extra configuration.
For example both: main firmware and backup firmware use the same TRX format with
the same header. To distinguish currently used firmware a CFE's environment
variable "bootpartition" is used.


Devices using Broadcom partitions described above should should have flash node
with a subnode named "partitions" using following properties:

Required properties:
- compatible : (required) must be "brcm,bcm947xx-cfe-partitions"

Example:

flash@0 {
partitions {
compatible = "brcm,bcm947xx-cfe-partitions";
};
};

0 comments on commit 5178b99

Please sign in to comment.