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