18c2ecf20Sopenharmony_ciBroadcom TRX Container Partition 28c2ecf20Sopenharmony_ci================================ 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciTRX is Broadcom's official firmware format for the BCM947xx boards. It's used by 58c2ecf20Sopenharmony_cimost of the vendors building devices based on Broadcom's BCM47xx SoCs and is 68c2ecf20Sopenharmony_cisupported by the CFE bootloader. 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ciDesign of the TRX format is very minimalistic. Its header contains 98c2ecf20Sopenharmony_ciidentification fields, CRC32 checksum and the locations of embedded partitions. 108c2ecf20Sopenharmony_ciIts purpose is to store a few partitions in a format that can be distributed as 118c2ecf20Sopenharmony_cia standalone file and written in a flash memory. 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciContainer can hold up to 4 partitions. The first partition has to contain a 148c2ecf20Sopenharmony_cidevice executable binary (e.g. a kernel) as it's what the CFE bootloader starts 158c2ecf20Sopenharmony_ciexecuting. Other partitions can be used for operating system purposes. This is 168c2ecf20Sopenharmony_ciuseful for systems that keep kernel and rootfs separated. 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ciTRX doesn't enforce any strict partition boundaries or size limits. All 198c2ecf20Sopenharmony_cipartitions have to be less than the 4GiB max size limit. 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciThere are two existing/known TRX variants: 228c2ecf20Sopenharmony_ci1) v1 which contains 3 partitions 238c2ecf20Sopenharmony_ci2) v2 which contains 4 partitions 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciThere aren't separated compatible bindings for them as version can be trivialy 268c2ecf20Sopenharmony_cidetected by a software parsing TRX header. 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ciRequired properties: 298c2ecf20Sopenharmony_ci- compatible : (required) must be "brcm,trx" 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ciExample: 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ciflash@0 { 348c2ecf20Sopenharmony_ci partitions { 358c2ecf20Sopenharmony_ci compatible = "brcm,trx"; 368c2ecf20Sopenharmony_ci }; 378c2ecf20Sopenharmony_ci}; 38