# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/mtd/partitions/brcm,bcm947xx-cfe-partitions.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Broadcom BCM47xx Partitions description: | 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. maintainers: - Rafał Miłecki <rafal@milecki.pl> select: false properties: compatible: const: brcm,bcm947xx-cfe-partitions additionalProperties: false examples: - | partitions { compatible = "brcm,bcm947xx-cfe-partitions"; };