Re: [PATCH v10 4/5] dt-bindings: remoteproc: Add documentation for ZynqMP R5 rproc bindings
On Wed, 26 Aug 2020 18:58:09 -0700, Ben Levinsky wrote: > Add binding for ZynqMP R5 OpenAMP. > > Represent the RPU domain resources in one device node. Each RPU > processor is a subnode of the top RPU domain node. > > Signed-off-by: Ben Levinsky > Signed-off-by: Jason Wu > Signed-off-by: Wendy Liang > Signed-off-by: Michal Simek > --- > v3: > - update zynqmp_r5 yaml parsing to not raise warnings for extra > information in children of R5 node. The warning "node has a unit > name, but no reg or ranges property" will still be raised though > as this particular node is needed to describe the > '#address-cells' and '#size-cells' information. > v4:: > - remove warning '/example-0/rpu@ff9a/r5@0: > node has a unit name, but no reg or ranges property' > by adding reg to r5 node. > v5: > - update device tree sample and yaml parsing to not raise any warnings > - description for memory-region in yaml parsing > - compatible string in yaml parsing for TCM > v6: > - remove coupling TCM nodes with remoteproc > - remove mailbox as it is optional not needed > v7: > - change lockstep-mode to xlnx,cluster-mode > v9: > - show example IPC nodes and tcm bank nodes > --- > .../xilinx,zynqmp-r5-remoteproc.yaml | 113 ++ > 1 file changed, 113 insertions(+) > create mode 100644 > Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.yaml > My bot found errors running 'make dt_binding_check' on your patch: Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.example.dts:48.18-53.11: Warning (unique_unit_address): /example-0/tcm_0a@0: duplicate unit-address (also used in node /example-0/tcm_1a@0) /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.example.dt.yaml: example-0: tcm_0a@0:reg:0: [0, 4292870144, 0, 65536] is too long From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.example.dt.yaml: example-0: tcm_1a@0:reg:0: [0, 4293001216, 0, 65536] is too long From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.example.dt.yaml: example-0: rpu0vdev0vring0@3ed4:reg:0: [0, 1054081024, 0, 16384] is too long From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.example.dt.yaml: example-0: rpu0vdev0vring1@3ed44000:reg:0: [0, 1054097408, 0, 16384] is too long From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.example.dt.yaml: example-0: rpu0vdev0buffer@3ed48000:reg:0: [0, 1054113792, 0, 1048576] is too long From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml See https://patchwork.ozlabs.org/patch/1352197 If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure dt-schema is up to date: pip3 install git+https://github.com/devicetree-org/dt-schema.git@master --upgrade Please check and re-submit.
[PATCH v10 4/5] dt-bindings: remoteproc: Add documentation for ZynqMP R5 rproc bindings
Add binding for ZynqMP R5 OpenAMP. Represent the RPU domain resources in one device node. Each RPU processor is a subnode of the top RPU domain node. Signed-off-by: Ben Levinsky Signed-off-by: Jason Wu Signed-off-by: Wendy Liang Signed-off-by: Michal Simek --- v3: - update zynqmp_r5 yaml parsing to not raise warnings for extra information in children of R5 node. The warning "node has a unit name, but no reg or ranges property" will still be raised though as this particular node is needed to describe the '#address-cells' and '#size-cells' information. v4:: - remove warning '/example-0/rpu@ff9a/r5@0: node has a unit name, but no reg or ranges property' by adding reg to r5 node. v5: - update device tree sample and yaml parsing to not raise any warnings - description for memory-region in yaml parsing - compatible string in yaml parsing for TCM v6: - remove coupling TCM nodes with remoteproc - remove mailbox as it is optional not needed v7: - change lockstep-mode to xlnx,cluster-mode v9: - show example IPC nodes and tcm bank nodes --- .../xilinx,zynqmp-r5-remoteproc.yaml | 113 ++ 1 file changed, 113 insertions(+) create mode 100644 Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.yaml diff --git a/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.yaml new file mode 100644 index ..f4a28831af6c --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.yaml @@ -0,0 +1,113 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/remoteproc/xilinx,zynqmp-r5-remoteproc.yaml#"; +$schema: "http://devicetree.org/meta-schemas/core.yaml#"; + +title: Xilinx R5 remote processor controller bindings + +description: + This document defines the binding for the remoteproc component that loads and + boots firmwares on the Xilinx Zynqmp and Versal family chipset. + + Note that the Linux has global addressing view of the R5-related memory (TCM) + so the absolute address ranges are provided in TCM reg's. +maintainers: + - Ed Mooring + - Ben Levinsky + +properties: + compatible: +const: "xlnx,zynqmp-r5-remoteproc-1.0" + + lockstep-mode: +description: + R5 core configuration (split is 0 or lock-step and 1) +maxItems: 1 + + interrupts: +description: + Interrupt mapping for remoteproc IPI. It is required if the + user uses the remoteproc driver with the RPMsg kernel driver. +maxItems: 6 + + memory-region: +description: + collection of memory carveouts used for elf-loading and inter-processor + communication. +maxItems: 4 +minItems: 4 + pnode-id: +maxItems: 1 + mboxes: +maxItems: 2 + mbox-names: +maxItems: 2 + +examples: + - | + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + elf_load: rproc@3ed00 { + no-map; + reg = <0x3ed0 0x4>; + }; + }; + rpu { + compatible = "xlnx,zynqmp-r5-remoteproc-1.0"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + lockstep-mode = <0>; + r5_0 { + ranges; + #address-cells = <1>; + #size-cells = <1>; + memory-region = <&elf_load>; + pnode-id = <0x7>; + }; + }; + + /* + * Below nodes are required if using TCM to load R5 firmware + * if not, then either do not provide nodes are label as disabled in + * status property + */ + tcm_0a@0 { + reg = <0x0 0xffe0 0x0 0x1>; + pnode-id = <0xf>; + no-map; + status = "okay"; + }; + tcm_1a@0 { + reg = <0x0 0xffe2 0x0 0x1>; + pnode-id = <0x10>; + no-map; + status = "okay"; + }; + + /* + * Below nodes are required for IPC, as Xilinx Kernel + * can potentially have other applications that use CMA + * and conflict from hardware design. With that in mind, + * explicitly state the address spaces for the IPC remoteproc + * mechanisms. + * + * If IPC not required and only elf-loading then these are not needed. + */ + rpu0vdev0vring0: rpu0vdev0vring0@3ed4 { + no-map; + reg = <0x0 0x3ed4 0x0 0x4000>; + }; + rpu0vdev0vring1: rpu0vdev0vring1@3ed44000 { + no-map; + reg = <0x0 0x3ed44000 0x0 0x4000>; + }; + rpu0vdev0buffer: rpu0vdev0buffer@3ed48000 { + no-map; + reg = <0x0 0x3ed48000 0x0 0x10>; + }; + +... -- 2.17.1