1d1001b06SRafał MiłeckiBroadcom TRX Container Partition
2d1001b06SRafał Miłecki================================
3d1001b06SRafał Miłecki
4d1001b06SRafał MiłeckiTRX is Broadcom's official firmware format for the BCM947xx boards. It's used by
5d1001b06SRafał Miłeckimost of the vendors building devices based on Broadcom's BCM47xx SoCs and is
6d1001b06SRafał Miłeckisupported by the CFE bootloader.
7d1001b06SRafał Miłecki
8d1001b06SRafał MiłeckiDesign of the TRX format is very minimalistic. Its header contains
9d1001b06SRafał Miłeckiidentification fields, CRC32 checksum and the locations of embedded partitions.
10d1001b06SRafał MiłeckiIts purpose is to store a few partitions in a format that can be distributed as
11d1001b06SRafał Miłeckia standalone file and written in a flash memory.
12d1001b06SRafał Miłecki
13d1001b06SRafał MiłeckiContainer can hold up to 4 partitions. The first partition has to contain a
14d1001b06SRafał Miłeckidevice executable binary (e.g. a kernel) as it's what the CFE bootloader starts
15d1001b06SRafał Miłeckiexecuting. Other partitions can be used for operating system purposes. This is
16d1001b06SRafał Miłeckiuseful for systems that keep kernel and rootfs separated.
17d1001b06SRafał Miłecki
18d1001b06SRafał MiłeckiTRX doesn't enforce any strict partition boundaries or size limits. All
19d1001b06SRafał Miłeckipartitions have to be less than the 4GiB max size limit.
20d1001b06SRafał Miłecki
21d1001b06SRafał MiłeckiThere are two existing/known TRX variants:
22d1001b06SRafał Miłecki1) v1 which contains 3 partitions
23d1001b06SRafał Miłecki2) v2 which contains 4 partitions
24d1001b06SRafał Miłecki
25d1001b06SRafał MiłeckiThere aren't separated compatible bindings for them as version can be trivialy
26d1001b06SRafał Miłeckidetected by a software parsing TRX header.
27d1001b06SRafał Miłecki
28d1001b06SRafał MiłeckiRequired properties:
29d1001b06SRafał Miłecki- compatible : (required) must be "brcm,trx"
30d1001b06SRafał Miłecki
31*a4d82940SHauke MehrtensOptional properties:
32*a4d82940SHauke Mehrtens
33*a4d82940SHauke Mehrtens- brcm,trx-magic: TRX magic, if it is different from the default magic
34*a4d82940SHauke Mehrtens		  0x30524448 as a u32.
35*a4d82940SHauke Mehrtens
36d1001b06SRafał MiłeckiExample:
37d1001b06SRafał Miłecki
38d1001b06SRafał Miłeckiflash@0 {
39d1001b06SRafał Miłecki	partitions {
40d1001b06SRafał Miłecki		compatible = "brcm,trx";
41d1001b06SRafał Miłecki	};
42d1001b06SRafał Miłecki};
43