162306a36Sopenharmony_ciBroadcom TRX Container Partition
262306a36Sopenharmony_ci================================
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciTRX is Broadcom's official firmware format for the BCM947xx boards. It's used by
562306a36Sopenharmony_cimost of the vendors building devices based on Broadcom's BCM47xx SoCs and is
662306a36Sopenharmony_cisupported by the CFE bootloader.
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciDesign of the TRX format is very minimalistic. Its header contains
962306a36Sopenharmony_ciidentification fields, CRC32 checksum and the locations of embedded partitions.
1062306a36Sopenharmony_ciIts purpose is to store a few partitions in a format that can be distributed as
1162306a36Sopenharmony_cia standalone file and written in a flash memory.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciContainer can hold up to 4 partitions. The first partition has to contain a
1462306a36Sopenharmony_cidevice executable binary (e.g. a kernel) as it's what the CFE bootloader starts
1562306a36Sopenharmony_ciexecuting. Other partitions can be used for operating system purposes. This is
1662306a36Sopenharmony_ciuseful for systems that keep kernel and rootfs separated.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciTRX doesn't enforce any strict partition boundaries or size limits. All
1962306a36Sopenharmony_cipartitions have to be less than the 4GiB max size limit.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciThere are two existing/known TRX variants:
2262306a36Sopenharmony_ci1) v1 which contains 3 partitions
2362306a36Sopenharmony_ci2) v2 which contains 4 partitions
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciThere aren't separated compatible bindings for them as version can be trivialy
2662306a36Sopenharmony_cidetected by a software parsing TRX header.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciRequired properties:
2962306a36Sopenharmony_ci- compatible : (required) must be "brcm,trx"
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciOptional properties:
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci- brcm,trx-magic: TRX magic, if it is different from the default magic
3462306a36Sopenharmony_ci		  0x30524448 as a u32.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciExample:
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciflash@0 {
3962306a36Sopenharmony_ci	partitions {
4062306a36Sopenharmony_ci		compatible = "brcm,trx";
4162306a36Sopenharmony_ci	};
4262306a36Sopenharmony_ci};
43