On Mon, Jun 25, 2018 at 3:41 PM Rafał Miłecki <rafal@xxxxxxxxxx> wrote: > > On 2018-06-25 23:21, Rob Herring wrote: > > On Tue, Jun 12, 2018 at 12:44:33PM +0200, Rafał Miłecki wrote: > >> From: Rafał Miłecki <rafal@xxxxxxxxxx> > >> > >> Broadcom based home router devices use TRX firmware format. It's a > >> container that can hold few partitions. If operating system is > >> expected > >> to access them it has to understand that format and parse flash data > >> accordingly. > >> > >> Signed-off-by: Rafał Miłecki <rafal@xxxxxxxxxx> > >> --- > >> .../bindings/mtd/partitions/brcm,trx.txt | 35 > >> ++++++++++++++++++++++ > >> 1 file changed, 35 insertions(+) > >> create mode 100644 > >> Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt > >> > >> diff --git > >> a/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt > >> b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt > >> new file mode 100644 > >> index 000000000000..e590b884e5ac > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt > >> @@ -0,0 +1,35 @@ > >> +Broadcom TRX Container Partition > >> +================================ > >> + > >> +TRX is Broadcom's official firmware format for the BCM947xx boards. > >> It's used by > >> +most of the vendors building devices based on Broadcom's BCM47xx SoCs > >> and is > >> +supported by the CFE bootloader. > >> + > >> +Design of the TRX format is very minimalistic. Its header contains > >> +identification fields, CRC32 checksum and the locations of embedded > >> partitions. > >> +Its purpose is to store a few partitions in a format that can be > >> distributed as > >> +a standalone file and written in a flash memory. > >> + > >> +Container can hold up to 4 partitions. The first partition has to > >> contain a > >> +device executable binary (e.g. a kernel) as it's what the CFE > >> bootloader starts > >> +executing. Other partitions can be used for operating system > >> purposes. This is > >> +useful for systems that keep kernel and rootfs separated. > >> + > >> +TRX doesn't enforce any strict partition boundaries or size limits. > >> All > >> +partitions have to be less than the 4GiB max size limit. > >> + > >> +There are two existing/known TRX variants: > >> +1) v1 which contains 3 partitions > >> +2) v2 which contains 4 partitions > >> + > >> +Required properties: > >> +- compatible : (required) must be either: "brcm,trx-v1" or > >> "brcm,trx-v2" > >> + followed by "brcm,trx" > > > > What is the purpose of brcm,trx? Either that alone is enough or you > > need > > v1/v2 to distinguish the difference. You shouldn't need both. > > I guess I incorrectly tried some pattern I saw when specifying SoC > compatibility. > > Can I have you advise here, please? > > No TRX supporting code really needs a hint about used TRX version. TRX > format (header) contains "version" field so any code dealing with TRX > format can check that field. Then it knows what version it's dealing > with. > > Which binding(s) should I use in that case? I'd just use "brcm,trx" then. Rob -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html