From: Ben Levinsky <ben.levinsky@xilinx.com> To: <michael.auchter@ni.com>, <stefanos@xilinx.com>, <mathieu.poirier@linaro.org> Cc: <devicetree@vger.kernel.org>, <linux-remoteproc@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org> Subject: [PATCH v21 4/5] dt-bindings: remoteproc: Add documentation for ZynqMP R5 rproc bindings Date: Mon, 2 Nov 2020 11:38:58 -0800 [thread overview] Message-ID: <20201102193859.31090-5-ben.levinsky@xilinx.com> (raw) In-Reply-To: <20201102193859.31090-1-ben.levinsky@xilinx.com> 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: Jason Wu <j.wu@xilinx.com> Signed-off-by: Wendy Liang <jliang@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Ben Levinsky <ben.levinsky@xilinx.com> --- .../xilinx,zynqmp-r5-remoteproc.yaml | 143 ++++++++++++++++++ 1 file changed, 143 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 000000000000..9cb358389cd7 --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.yaml @@ -0,0 +1,143 @@ +# 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 <ed.mooring@xilinx.com> + - Ben Levinsky <ben.levinsky@xilinx.com> + +properties: + compatible: + const: xlnx,zynqmp-r5-remoteproc + + lockstep-mode: + description: + If this property is present, then the configuration is lock-step. + Otherwise RPU is split. + type: boolean + 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-regions: + description: + Collection of memory carveouts used for elf-loading and inter-processor + communication. each carveout in this case should be in DDR, not + chip-specific memory. In Xilinx case, this is TCM, OCM, BRAM, etc. + $ref: /schemas/types.yaml#/definitions/phandle-array + + meta-memory-regions: + description: + Collection of memories that are not present in the top level memory + nodes' mapping. For example, R5s' TCM banks. These banks are needed + for R5 firmware meta data such as the R5 firmware's heap and stack. + To be more precise, this is on-chip reserved SRAM regions, e.g. TCM, + BRAM, OCM, etc. + $ref: /schemas/types.yaml#/definitions/phandle-array + + pnode-id: + maxItems: 1 + description: + Power node id that is used to uniquely identify the node for Xilinx + Power Management. The value is then passed to Xilinx platform + manager for power on/off and access. + $ref: /schemas/types.yaml#/definitions/uint32 + + mboxes: + description: + Array of phandles that describe the rx and tx for xilinx zynqmp + mailbox driver. order of rx and tx is described by the mbox-names + property. This will be used for communication with remote + processor. + maxItems: 2 + + mbox-names: + description: + Array of strings that denote which item in the mboxes property array + are the rx and tx for xilinx zynqmp mailbox driver + maxItems: 2 + $ref: /schemas/types.yaml#/definitions/string-array + + +examples: + - | + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + elf_load: rproc@3ed000000 { + no-map; + reg = <0x3ed00000 0x40000>; + }; + + rpu0vdev0vring0: rpu0vdev0vring0@3ed40000 { + no-map; + reg = <0x3ed40000 0x4000>; + }; + rpu0vdev0vring1: rpu0vdev0vring1@3ed44000 { + no-map; + reg = <0x3ed44000 0x4000>; + }; + rpu0vdev0buffer: rpu0vdev0buffer@3ed48000 { + no-map; + reg = <0x3ed48000 0x100000>; + }; + + }; + + /* + * Below nodes are required if using TCM to load R5 firmware + * if not, then either do not provide nodes or label as disabled in + * status property + */ + tcm0a: tcm_0a@ffe00000 { + reg = <0xffe00000 0x10000>; + pnode-id = <0xf>; + no-map; + status = "okay"; + phandle = <0x40>; + }; + tcm0b: tcm_1a@ffe20000 { + reg = <0xffe20000 0x10000>; + pnode-id = <0x10>; + no-map; + status = "okay"; + phandle = <0x41>; + }; + + rpu { + compatible = "xlnx,zynqmp-r5-remoteproc"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + lockstep-mode; + r5_0 { + compatible = "xlnx,zynqmp-r5-single-remoteproc"; + ranges; + #address-cells = <1>; + #size-cells = <1>; + memory-regions = <&elf_load>, + <&rpu0vdev0vring0>, + <&rpu0vdev0vring1>, + <&rpu0vdev0buffer>; + meta-memory-regions = <&tcm_0a>, <&tcm_0b>; + pnode-id = <0x7>; + }; + }; + +... -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Ben Levinsky <ben.levinsky@xilinx.com> To: <michael.auchter@ni.com>, <stefanos@xilinx.com>, <mathieu.poirier@linaro.org> Cc: devicetree@vger.kernel.org, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v21 4/5] dt-bindings: remoteproc: Add documentation for ZynqMP R5 rproc bindings Date: Mon, 2 Nov 2020 11:38:58 -0800 [thread overview] Message-ID: <20201102193859.31090-5-ben.levinsky@xilinx.com> (raw) In-Reply-To: <20201102193859.31090-1-ben.levinsky@xilinx.com> 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: Jason Wu <j.wu@xilinx.com> Signed-off-by: Wendy Liang <jliang@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Ben Levinsky <ben.levinsky@xilinx.com> --- .../xilinx,zynqmp-r5-remoteproc.yaml | 143 ++++++++++++++++++ 1 file changed, 143 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 000000000000..9cb358389cd7 --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.yaml @@ -0,0 +1,143 @@ +# 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 <ed.mooring@xilinx.com> + - Ben Levinsky <ben.levinsky@xilinx.com> + +properties: + compatible: + const: xlnx,zynqmp-r5-remoteproc + + lockstep-mode: + description: + If this property is present, then the configuration is lock-step. + Otherwise RPU is split. + type: boolean + 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-regions: + description: + Collection of memory carveouts used for elf-loading and inter-processor + communication. each carveout in this case should be in DDR, not + chip-specific memory. In Xilinx case, this is TCM, OCM, BRAM, etc. + $ref: /schemas/types.yaml#/definitions/phandle-array + + meta-memory-regions: + description: + Collection of memories that are not present in the top level memory + nodes' mapping. For example, R5s' TCM banks. These banks are needed + for R5 firmware meta data such as the R5 firmware's heap and stack. + To be more precise, this is on-chip reserved SRAM regions, e.g. TCM, + BRAM, OCM, etc. + $ref: /schemas/types.yaml#/definitions/phandle-array + + pnode-id: + maxItems: 1 + description: + Power node id that is used to uniquely identify the node for Xilinx + Power Management. The value is then passed to Xilinx platform + manager for power on/off and access. + $ref: /schemas/types.yaml#/definitions/uint32 + + mboxes: + description: + Array of phandles that describe the rx and tx for xilinx zynqmp + mailbox driver. order of rx and tx is described by the mbox-names + property. This will be used for communication with remote + processor. + maxItems: 2 + + mbox-names: + description: + Array of strings that denote which item in the mboxes property array + are the rx and tx for xilinx zynqmp mailbox driver + maxItems: 2 + $ref: /schemas/types.yaml#/definitions/string-array + + +examples: + - | + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + elf_load: rproc@3ed000000 { + no-map; + reg = <0x3ed00000 0x40000>; + }; + + rpu0vdev0vring0: rpu0vdev0vring0@3ed40000 { + no-map; + reg = <0x3ed40000 0x4000>; + }; + rpu0vdev0vring1: rpu0vdev0vring1@3ed44000 { + no-map; + reg = <0x3ed44000 0x4000>; + }; + rpu0vdev0buffer: rpu0vdev0buffer@3ed48000 { + no-map; + reg = <0x3ed48000 0x100000>; + }; + + }; + + /* + * Below nodes are required if using TCM to load R5 firmware + * if not, then either do not provide nodes or label as disabled in + * status property + */ + tcm0a: tcm_0a@ffe00000 { + reg = <0xffe00000 0x10000>; + pnode-id = <0xf>; + no-map; + status = "okay"; + phandle = <0x40>; + }; + tcm0b: tcm_1a@ffe20000 { + reg = <0xffe20000 0x10000>; + pnode-id = <0x10>; + no-map; + status = "okay"; + phandle = <0x41>; + }; + + rpu { + compatible = "xlnx,zynqmp-r5-remoteproc"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + lockstep-mode; + r5_0 { + compatible = "xlnx,zynqmp-r5-single-remoteproc"; + ranges; + #address-cells = <1>; + #size-cells = <1>; + memory-regions = <&elf_load>, + <&rpu0vdev0vring0>, + <&rpu0vdev0vring1>, + <&rpu0vdev0buffer>; + meta-memory-regions = <&tcm_0a>, <&tcm_0b>; + pnode-id = <0x7>; + }; + }; + +... -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-11-02 19:39 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-11-02 19:38 [PATCH v21 0/5] Provide basic driver to control Arm R5 co-processor found on Xilinx ZynqMP Ben Levinsky 2020-11-02 19:38 ` Ben Levinsky 2020-11-02 19:38 ` [PATCH v21 1/5] firmware: xilinx: Add ZynqMP firmware ioctl enums for RPU configuration Ben Levinsky 2020-11-02 19:38 ` Ben Levinsky 2020-11-02 19:38 ` [PATCH v21 2/5] firmware: xilinx: Add shutdown/wakeup APIs Ben Levinsky 2020-11-02 19:38 ` Ben Levinsky 2020-11-02 19:38 ` [PATCH v21 3/5] firmware: xilinx: Add RPU configuration APIs Ben Levinsky 2020-11-02 19:38 ` Ben Levinsky 2020-11-02 19:38 ` Ben Levinsky [this message] 2020-11-02 19:38 ` [PATCH v21 4/5] dt-bindings: remoteproc: Add documentation for ZynqMP R5 rproc bindings Ben Levinsky 2020-11-02 19:38 ` [PATCH v21 5/5] remoteproc: Add initial zynqmp R5 remoteproc driver Ben Levinsky 2020-11-02 19:38 ` Ben Levinsky 2020-11-02 21:13 ` Michael Auchter 2020-11-02 21:13 ` Michael Auchter 2020-11-02 21:46 ` Ben Levinsky 2020-11-02 21:46 ` Ben Levinsky 2020-11-02 22:08 ` Michael Auchter 2020-11-02 22:08 ` Michael Auchter 2020-11-02 22:22 ` Michael Auchter 2020-11-02 22:22 ` Michael Auchter
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201102193859.31090-5-ben.levinsky@xilinx.com \ --to=ben.levinsky@xilinx.com \ --cc=devicetree@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-remoteproc@vger.kernel.org \ --cc=mathieu.poirier@linaro.org \ --cc=michael.auchter@ni.com \ --cc=stefanos@xilinx.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.