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