* [PATCH] dt-bindings: mtd: partitions: convert Broadcom's TRX to the json-schema
@ 2022-02-16 10:41 Rafał Miłecki
2022-02-17 3:59 ` Rob Herring
0 siblings, 1 reply; 4+ messages in thread
From: Rafał Miłecki @ 2022-02-16 10:41 UTC (permalink / raw)
To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
Rob Herring
Cc: Krzysztof Kozlowski, Hauke Mehrtens, linux-mtd, devicetree,
Rafał Miłecki
From: Rafał Miłecki <rafal@milecki.pl>
This helps validating DTS files.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
.../bindings/mtd/partitions/brcm,trx.txt | 42 ---------------
.../bindings/mtd/partitions/brcm,trx.yaml | 51 +++++++++++++++++++
2 files changed, 51 insertions(+), 42 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt
create mode 100644 Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
diff --git a/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt
deleted file mode 100644
index c2175d3c82ec..000000000000
--- a/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-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
-
-There aren't separated compatible bindings for them as version can be trivialy
-detected by a software parsing TRX header.
-
-Required properties:
-- compatible : (required) must be "brcm,trx"
-
-Optional properties:
-
-- brcm,trx-magic: TRX magic, if it is different from the default magic
- 0x30524448 as a u32.
-
-Example:
-
-flash@0 {
- partitions {
- compatible = "brcm,trx";
- };
-};
diff --git a/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
new file mode 100644
index 000000000000..ec871c9cf605
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/partitions/brcm,trx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom TRX Container Partition
+
+description: |
+ 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
+
+ There aren't separated compatible bindings for them as version can be trivialy
+ detected by a software parsing TRX header.
+
+maintainers:
+ - Rafał Miłecki <rafal@milecki.pl>
+
+properties:
+ compatible:
+ const: brcm,trx
+
+ brcm,trx-magic:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: TRX magic, if it is different from the default 0x30524448
+
+additionalProperties: false
+
+examples:
+ - |
+ partitions {
+ compatible = "brcm,trx";
+ };
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] dt-bindings: mtd: partitions: convert Broadcom's TRX to the json-schema
2022-02-16 10:41 [PATCH] dt-bindings: mtd: partitions: convert Broadcom's TRX to the json-schema Rafał Miłecki
@ 2022-02-17 3:59 ` Rob Herring
2022-02-17 7:43 ` Rafał Miłecki
0 siblings, 1 reply; 4+ messages in thread
From: Rob Herring @ 2022-02-17 3:59 UTC (permalink / raw)
To: Rafał Miłecki
Cc: Rafał Miłecki, Richard Weinberger, Vignesh Raghavendra,
linux-mtd, Krzysztof Kozlowski, Miquel Raynal, devicetree,
Rob Herring, Hauke Mehrtens
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3619 bytes --]
On Wed, 16 Feb 2022 11:41:26 +0100, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> This helps validating DTS files.
>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> .../bindings/mtd/partitions/brcm,trx.txt | 42 ---------------
> .../bindings/mtd/partitions/brcm,trx.yaml | 51 +++++++++++++++++++
> 2 files changed, 51 insertions(+), 42 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt
> create mode 100644 Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
>
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@200000: compatible:0: 'brcm,trx' was expected
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@200000: compatible: ['linksys,ns-firmware', 'brcm,trx'] is too long
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@200000: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+'
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@1100000: compatible:0: 'brcm,trx' was expected
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@1100000: compatible: ['linksys,ns-firmware', 'brcm,trx'] is too long
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@1100000: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+'
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.example.dt.yaml: firmware@100000: 'label', 'reg' do not match any of the regexes: 'pinctrl-[0-9]+'
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.example.dt.yaml: firmware@100000: 'label', 'reg' do not match any of the regexes: 'pinctrl-[0-9]+'
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/patch/1593614
This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: mtd: partitions: convert Broadcom's TRX to the json-schema
2022-02-17 3:59 ` Rob Herring
@ 2022-02-17 7:43 ` Rafał Miłecki
2022-02-23 23:05 ` Rob Herring
0 siblings, 1 reply; 4+ messages in thread
From: Rafał Miłecki @ 2022-02-17 7:43 UTC (permalink / raw)
To: Rob Herring, Rafał Miłecki
Cc: Richard Weinberger, Vignesh Raghavendra, linux-mtd,
Krzysztof Kozlowski, Miquel Raynal, devicetree, Rob Herring,
Hauke Mehrtens
Hi Rob,
On 17.02.2022 04:59, Rob Herring wrote:
> On Wed, 16 Feb 2022 11:41:26 +0100, Rafał Miłecki wrote:
>> From: Rafał Miłecki <rafal@milecki.pl>
>>
>> This helps validating DTS files.
>>
>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>> ---
>> .../bindings/mtd/partitions/brcm,trx.txt | 42 ---------------
>> .../bindings/mtd/partitions/brcm,trx.yaml | 51 +++++++++++++++++++
>> 2 files changed, 51 insertions(+), 42 deletions(-)
>> delete mode 100644 Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt
>> create mode 100644 Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
>>
>
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
>
> yamllint warnings/errors:
>
> dtschema/dtc warnings/errors:
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@200000: compatible:0: 'brcm,trx' was expected
> From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@200000: compatible: ['linksys,ns-firmware', 'brcm,trx'] is too long
> From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
could you advise the best way to solve that?
1. compatible = "brcm,trx";
Most Broadcom 47xx devices have one firmware partition using TRX format.
So we want something like:
partition@200000 {
compatible = "brcm,trx";
label = "firmware";
reg = <0x200000 0xf00000>;
};
2. compatible = "linksys,ns-firmware", "brcm,trx";
Linksys has two firmware partitions and operating system has to choose
the right one to proceed with (to parse for kernel & rootfs). They still
use TRX format though. So we want something like:
partition@200000 {
compatible = "linksys,ns-firmware", "brcm,trx";
reg = <0x200000 0xf00000>;
};
partition@1100000 {
compatible = "linksys,ns-firmware", "brcm,trx";
reg = <0x1100000 0xf00000>;
};
I thought of moving "linksys,ns-firmware" documentation to the
brcm,trx.yaml but its part of the compatible = "linksys,ns-partitions";
(parent node) so it doesn't fit there well.
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] dt-bindings: mtd: partitions: convert Broadcom's TRX to the json-schema
2022-02-17 7:43 ` Rafał Miłecki
@ 2022-02-23 23:05 ` Rob Herring
0 siblings, 0 replies; 4+ messages in thread
From: Rob Herring @ 2022-02-23 23:05 UTC (permalink / raw)
To: Rafał Miłecki
Cc: Rafał Miłecki, Richard Weinberger, Vignesh Raghavendra,
linux-mtd, Krzysztof Kozlowski, Miquel Raynal, devicetree,
Hauke Mehrtens
On Thu, Feb 17, 2022 at 08:43:23AM +0100, Rafał Miłecki wrote:
> Hi Rob,
>
> On 17.02.2022 04:59, Rob Herring wrote:
> > On Wed, 16 Feb 2022 11:41:26 +0100, Rafał Miłecki wrote:
> > > From: Rafał Miłecki <rafal@milecki.pl>
> > >
> > > This helps validating DTS files.
> > >
> > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > ---
> > > .../bindings/mtd/partitions/brcm,trx.txt | 42 ---------------
> > > .../bindings/mtd/partitions/brcm,trx.yaml | 51 +++++++++++++++++++
> > > 2 files changed, 51 insertions(+), 42 deletions(-)
> > > delete mode 100644 Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt
> > > create mode 100644 Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
> > >
> >
> > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> > on your patch (DT_CHECKER_FLAGS is new in v5.13):
> >
> > yamllint warnings/errors:
> >
> > dtschema/dtc warnings/errors:
> > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@200000: compatible:0: 'brcm,trx' was expected
> > From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
> > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.example.dt.yaml: partition@200000: compatible: ['linksys,ns-firmware', 'brcm,trx'] is too long
> > From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
>
> could you advise the best way to solve that?
You should move linksys,ns-firmware from linksys,ns-partitions.yaml to
this schema. Then linksys,ns-partitions.yaml just has:
"^partition@[0-9a-f]+$":
$ref: "partition.yaml#"
additionalProperties: true
That's not completely ideal because then undocumented properties are
allowed. To fix that, you'd need:
"^partition@[0-9a-f]+$":
oneOf:
- $ref: "partition.yaml#"
- $ref: "brcm,trx.yaml#"
unevaluatedProperties: false
I'm not 100% sure that will work.
Rob
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-02-23 23:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-16 10:41 [PATCH] dt-bindings: mtd: partitions: convert Broadcom's TRX to the json-schema Rafał Miłecki
2022-02-17 3:59 ` Rob Herring
2022-02-17 7:43 ` Rafał Miłecki
2022-02-23 23:05 ` Rob Herring
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).