Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame] | 1 | Broadcom TRX Container Partition |
| 2 | ================================ |
| 3 | |
| 4 | TRX is Broadcom's official firmware format for the BCM947xx boards. It's used by |
| 5 | most of the vendors building devices based on Broadcom's BCM47xx SoCs and is |
| 6 | supported by the CFE bootloader. |
| 7 | |
| 8 | Design of the TRX format is very minimalistic. Its header contains |
| 9 | identification fields, CRC32 checksum and the locations of embedded partitions. |
| 10 | Its purpose is to store a few partitions in a format that can be distributed as |
| 11 | a standalone file and written in a flash memory. |
| 12 | |
| 13 | Container can hold up to 4 partitions. The first partition has to contain a |
| 14 | device executable binary (e.g. a kernel) as it's what the CFE bootloader starts |
| 15 | executing. Other partitions can be used for operating system purposes. This is |
| 16 | useful for systems that keep kernel and rootfs separated. |
| 17 | |
| 18 | TRX doesn't enforce any strict partition boundaries or size limits. All |
| 19 | partitions have to be less than the 4GiB max size limit. |
| 20 | |
| 21 | There are two existing/known TRX variants: |
| 22 | 1) v1 which contains 3 partitions |
| 23 | 2) v2 which contains 4 partitions |
| 24 | |
| 25 | There aren't separated compatible bindings for them as version can be trivialy |
| 26 | detected by a software parsing TRX header. |
| 27 | |
| 28 | Required properties: |
| 29 | - compatible : (required) must be "brcm,trx" |
| 30 | |
| 31 | Optional properties: |
| 32 | |
| 33 | - brcm,trx-magic: TRX magic, if it is different from the default magic |
| 34 | 0x30524448 as a u32. |
| 35 | |
| 36 | Example: |
| 37 | |
| 38 | flash@0 { |
| 39 | partitions { |
| 40 | compatible = "brcm,trx"; |
| 41 | }; |
| 42 | }; |