| 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"; |
| }; |
| }; |