-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dt-bindings: mtd: document Broadcom's BCM47xx partitions
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
Showing
2 changed files
with
43 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
Documentation/devicetree/bindings/mtd/partitions/brcm,bcm947xx-cfe-partitions.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"; | ||
}; | ||
}; |