mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-14 12:37:32 +00:00
5178b99cd3
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>
42 lines
1.6 KiB
Text
42 lines
1.6 KiB
Text
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";
|
|
};
|
|
};
|