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