xref: /linux/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mtd/partitions/brcm,trx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Broadcom TRX Container Partition
8
9maintainers:
10  - Hauke Mehrtens <hauke@hauke-m.de>
11  - Rafał Miłecki <rafal@milecki.pl>
12
13description: >
14  TRX is Broadcom's official firmware format for the BCM947xx boards. It's used by
15  most of the vendors building devices based on Broadcom's BCM47xx SoCs and is
16  supported by the CFE bootloader.
17
18  Design of the TRX format is very minimalistic. Its header contains
19  identification fields, CRC32 checksum and the locations of embedded partitions.
20  Its purpose is to store a few partitions in a format that can be distributed as
21  a standalone file and written in a flash memory.
22
23  Container can hold up to 4 partitions. The first partition has to contain a
24  device executable binary (e.g. a kernel) as it's what the CFE bootloader starts
25  executing. Other partitions can be used for operating system purposes. This is
26  useful for systems that keep kernel and rootfs separated.
27
28  TRX doesn't enforce any strict partition boundaries or size limits. All
29  partitions have to be less than the 4GiB max size limit.
30
31  There are two existing/known TRX variants:
32    1) v1 which contains 3 partitions
33    2) v2 which contains 4 partitions
34
35  There aren't separated compatible bindings for them as version can be trivially
36  detected by a software parsing TRX header.
37
38properties:
39  compatible:
40    oneOf:
41      - items:
42          - const: linksys,ns-firmware
43          - const: brcm,trx
44      - const: brcm,trx
45
46  brcm,trx-magic:
47    description: TRX magic, if it is different from the default magic.
48    $ref: /schemas/types.yaml#/definitions/uint32
49    default: 0x30524448
50
51required:
52  - compatible
53
54allOf:
55  - $ref: partition.yaml#
56
57unevaluatedProperties: false
58
59examples:
60  - |
61    flash {
62        partitions {
63            compatible = "brcm,trx";
64        };
65    };
66