diff mbox series

[7/7] Documentation: devicetree: Add Xilinx R5 rproc binding

Message ID 1534403190-28523-8-git-send-email-jliang@xilinx.com (mailing list archive)
State New, archived
Headers show
Series Add Xilinx ZynqMP R5 remoteproc driver | expand

Commit Message

Jiaying Liang Aug. 16, 2018, 7:06 a.m. UTC
Add device tree binding for Xilinx Cortex-r5 remoteproc.

Signed-off-by: Wendy Liang <jliang@xilinx.com>
---
 .../remoteproc/xlnx,zynqmp-r5-remoteproc.txt       | 81 ++++++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt

Comments

Rob Herring (Arm) Aug. 17, 2018, 3:09 p.m. UTC | #1
Hi, this email is from Rob's (experimental) review bot. I found a couple
of common problems with your patch. Please see below.

On Thu, 16 Aug 2018 00:06:30 -0700, Wendy Liang wrote:
> Add device tree binding for Xilinx Cortex-r5 remoteproc.
> 
> Signed-off-by: Wendy Liang <jliang@xilinx.com>

The preferred subject prefix is "dt-bindings: <binding dir>: ...".

> ---
>  .../remoteproc/xlnx,zynqmp-r5-remoteproc.txt       | 81 ++++++++++++++++++++++
>  1 file changed, 81 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
>
Moritz Fischer Aug. 17, 2018, 4:31 p.m. UTC | #2
Hi Wendy,

couple of minor stuff inline.

On Thu, Aug 16, 2018 at 12:06 AM, Wendy Liang <wendy.liang@xilinx.com> wrote:
> Add device tree binding for Xilinx Cortex-r5 remoteproc.
>
> Signed-off-by: Wendy Liang <jliang@xilinx.com>
> ---
>  .../remoteproc/xlnx,zynqmp-r5-remoteproc.txt       | 81 ++++++++++++++++++++++
>  1 file changed, 81 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt b/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
> new file mode 100644
> index 0000000..3940019
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
> @@ -0,0 +1,81 @@
> +Xilinx ARM Cortex A53-R5 remoteproc driver
> +==========================================
> +
> +ZynqMP family of devices use two Cortex R5 processors to help with various
> +low power / real time tasks.

The ZynqMP family [..] uses [..]
> +
> +This driver requires specific ZynqMP hardware design.

*a* specific ZynqMP hardware design. What does that mean?
> +
> +ZynqMP R5 RemoteProc Device Node:
> +=================================
> +A zynqmp_r5_remoteproc device node is used to represent a R5 IP instance
> +within ZynqMP SoC.
> +
> +Required properties:
> +--------------------
> + - compatible : Should be "xlnx,zynqmp-r5-remoteproc-1.0"
> + - reg : Address and length of the register set for the device. It
> +        contains in the same order as described reg-names

?
> + - reg-names: Contain the register set names.

Contains

> +              "tcm_a" and "tcm_b" for TCM memories.
> +              If the user uses the remoteproc driver with the RPMsg kernel
> +              driver,"ipi" for the IPI register used to communicate with RPU
> +              is also required.
> +              Otherwise, if user only uses the remoteproc driver to boot RPU
> +              firmware, "ipi" is not required.
> + - tcm-pnode-id: TCM resources power nodes IDs which are used to request TCM
> +                 resources for the remoteproc driver to access.
> + - rpu-pnode-id : RPU power node id which is used by the remoteproc driver
> +                  to start RPU or shut it down.
> +
> +Optional properties:
> +--------------------
> + - core_conf : R5 core configuration (valid string - split0 or split1 or
> +               lock-step), default is lock-step.
> + - memory-region: memories regions for RPU executable and DMA memory.
> + - interrupts : Interrupt mapping for remoteproc IPI. It is required if the
> +                user uses the remoteproc driver with the RPMsg kernel driver.
> + - interrupt-parent : Phandle for the interrupt controller. It is required if
> +                      the user uses the remoteproc driver with the RPMsg kernel
> +                      kernel driver.
> +
> +Example:
> +--------
> +       reserved-memory {
> +               #address-cells = <2>;
> +               #size-cells = <2>;
> +               ranges;
> +               rproc_0_fw_reserved: rproc@3ed000000 {
> +                       compatible = "rproc-prog-memory";
> +                       no-map;
> +                       reg = <0x0 0x3ed00000 0x0 0x40000>;
> +               };
> +               rproc_0_dma_reserved: rproc@3ed400000 {
> +                       compatible = "shared-dma-pool";
> +                       no-map;
> +                       reg = <0x0 0x3ed40000 0x0 0x80000>;
> +               };
> +       };
> +
> +       firmware {
> +               zynqmp_firmware: zynqmp-firmware {
> +                       compatible = "xlnx,zynqmp-firmware";
> +                       method = "smc";
> +               };
> +       };
> +
> +       zynqmp-r5-remoteproc@0 {
> +               compatible = "xlnx,zynqmp-r5-remoteproc-1.0";
> +               reg = <0x0 0xFFE00000 0x0 0x10000>,
> +                       <0x0 0xFFE20000 0x0 0x10000>,
> +                       <0x0 0xff340000 0x0 0x100>;
> +               reg-names = "tcm_a", "tcm_b", "ipi";
> +               dma-ranges;
> +               core_conf = "split0";
> +               memory-region = <&rproc_0_fw_reserved>,
> +                               <&rproc_0_dma_reserved>;
> +               tcm-pnode-id = <0xf>, <0x10>;
> +               rpu-pnode-id = <0x7>;
> +               interrupt-parent = <&gic>;
> +               interrupts = <0 29 4>;
> +       } ;
> --
> 2.7.4
>

Cheers,
Moritz
Wendy Liang Aug. 20, 2018, 5:54 a.m. UTC | #3
On Fri, Aug 17, 2018 at 8:09 AM, Rob Herring <robh@kernel.org> wrote:
> Hi, this email is from Rob's (experimental) review bot. I found a couple
> of common problems with your patch. Please see below.
>
> On Thu, 16 Aug 2018 00:06:30 -0700, Wendy Liang wrote:
>> Add device tree binding for Xilinx Cortex-r5 remoteproc.
>>
>> Signed-off-by: Wendy Liang <jliang@xilinx.com>
>
> The preferred subject prefix is "dt-bindings: <binding dir>: ...".
Will updated in the next release
>
>> ---
>>  .../remoteproc/xlnx,zynqmp-r5-remoteproc.txt       | 81 ++++++++++++++++++++++
>>  1 file changed, 81 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
>>
Wendy Liang Aug. 20, 2018, 5:55 a.m. UTC | #4
On Fri, Aug 17, 2018 at 9:31 AM, Moritz Fischer
<moritz.fischer@ettus.com> wrote:
> Hi Wendy,
>
> couple of minor stuff inline.
>
> On Thu, Aug 16, 2018 at 12:06 AM, Wendy Liang <wendy.liang@xilinx.com> wrote:
>> Add device tree binding for Xilinx Cortex-r5 remoteproc.
>>
>> Signed-off-by: Wendy Liang <jliang@xilinx.com>
>> ---
>>  .../remoteproc/xlnx,zynqmp-r5-remoteproc.txt       | 81 ++++++++++++++++++++++
>>  1 file changed, 81 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
>>
>> diff --git a/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt b/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
>> new file mode 100644
>> index 0000000..3940019
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
>> @@ -0,0 +1,81 @@
>> +Xilinx ARM Cortex A53-R5 remoteproc driver
>> +==========================================
>> +
>> +ZynqMP family of devices use two Cortex R5 processors to help with various
>> +low power / real time tasks.
>
> The ZynqMP family [..] uses [..]
Will update in next version
>> +
>> +This driver requires specific ZynqMP hardware design.
>
> *a* specific ZynqMP hardware design. What does that mean?
>> +
>> +ZynqMP R5 RemoteProc Device Node:
>> +=================================
>> +A zynqmp_r5_remoteproc device node is used to represent a R5 IP instance
>> +within ZynqMP SoC.
>> +
>> +Required properties:
>> +--------------------
>> + - compatible : Should be "xlnx,zynqmp-r5-remoteproc-1.0"
>> + - reg : Address and length of the register set for the device. It
>> +        contains in the same order as described reg-names
>
> ?
>> + - reg-names: Contain the register set names.
>
> Contains
Will update in next version
>
>> +              "tcm_a" and "tcm_b" for TCM memories.
>> +              If the user uses the remoteproc driver with the RPMsg kernel
>> +              driver,"ipi" for the IPI register used to communicate with RPU
>> +              is also required.
>> +              Otherwise, if user only uses the remoteproc driver to boot RPU
>> +              firmware, "ipi" is not required.
>> + - tcm-pnode-id: TCM resources power nodes IDs which are used to request TCM
>> +                 resources for the remoteproc driver to access.
>> + - rpu-pnode-id : RPU power node id which is used by the remoteproc driver
>> +                  to start RPU or shut it down.
>> +
>> +Optional properties:
>> +--------------------
>> + - core_conf : R5 core configuration (valid string - split0 or split1 or
>> +               lock-step), default is lock-step.
>> + - memory-region: memories regions for RPU executable and DMA memory.
>> + - interrupts : Interrupt mapping for remoteproc IPI. It is required if the
>> +                user uses the remoteproc driver with the RPMsg kernel driver.
>> + - interrupt-parent : Phandle for the interrupt controller. It is required if
>> +                      the user uses the remoteproc driver with the RPMsg kernel
>> +                      kernel driver.
>> +
>> +Example:
>> +--------
>> +       reserved-memory {
>> +               #address-cells = <2>;
>> +               #size-cells = <2>;
>> +               ranges;
>> +               rproc_0_fw_reserved: rproc@3ed000000 {
>> +                       compatible = "rproc-prog-memory";
>> +                       no-map;
>> +                       reg = <0x0 0x3ed00000 0x0 0x40000>;
>> +               };
>> +               rproc_0_dma_reserved: rproc@3ed400000 {
>> +                       compatible = "shared-dma-pool";
>> +                       no-map;
>> +                       reg = <0x0 0x3ed40000 0x0 0x80000>;
>> +               };
>> +       };
>> +
>> +       firmware {
>> +               zynqmp_firmware: zynqmp-firmware {
>> +                       compatible = "xlnx,zynqmp-firmware";
>> +                       method = "smc";
>> +               };
>> +       };
>> +
>> +       zynqmp-r5-remoteproc@0 {
>> +               compatible = "xlnx,zynqmp-r5-remoteproc-1.0";
>> +               reg = <0x0 0xFFE00000 0x0 0x10000>,
>> +                       <0x0 0xFFE20000 0x0 0x10000>,
>> +                       <0x0 0xff340000 0x0 0x100>;
>> +               reg-names = "tcm_a", "tcm_b", "ipi";
>> +               dma-ranges;
>> +               core_conf = "split0";
>> +               memory-region = <&rproc_0_fw_reserved>,
>> +                               <&rproc_0_dma_reserved>;
>> +               tcm-pnode-id = <0xf>, <0x10>;
>> +               rpu-pnode-id = <0x7>;
>> +               interrupt-parent = <&gic>;
>> +               interrupts = <0 29 4>;
>> +       } ;
>> --
>> 2.7.4
>>
>
> Cheers,
> Moritz
Bjorn Andersson Oct. 6, 2018, 5:50 a.m. UTC | #5
On Thu 16 Aug 00:06 PDT 2018, Wendy Liang wrote:

> Add device tree binding for Xilinx Cortex-r5 remoteproc.
> 
> Signed-off-by: Wendy Liang <jliang@xilinx.com>
> ---
>  .../remoteproc/xlnx,zynqmp-r5-remoteproc.txt       | 81 ++++++++++++++++++++++
>  1 file changed, 81 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
> 
> diff --git a/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt b/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
> new file mode 100644
> index 0000000..3940019
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
> @@ -0,0 +1,81 @@
> +Xilinx ARM Cortex A53-R5 remoteproc driver
> +==========================================
> +
> +ZynqMP family of devices use two Cortex R5 processors to help with various
> +low power / real time tasks.
> +
> +This driver requires specific ZynqMP hardware design.
> +
> +ZynqMP R5 RemoteProc Device Node:
> +=================================
> +A zynqmp_r5_remoteproc device node is used to represent a R5 IP instance
> +within ZynqMP SoC.
> +
> +Required properties:
> +--------------------
> + - compatible : Should be "xlnx,zynqmp-r5-remoteproc-1.0"

What is 1.0?

> + - reg : Address and length of the register set for the device. It
> +        contains in the same order as described reg-names
> + - reg-names: Contain the register set names.
> +              "tcm_a" and "tcm_b" for TCM memories.
> +              If the user uses the remoteproc driver with the RPMsg kernel
> +              driver,"ipi" for the IPI register used to communicate with RPU
> +              is also required.
> +              Otherwise, if user only uses the remoteproc driver to boot RPU
> +              firmware, "ipi" is not required.
> + - tcm-pnode-id: TCM resources power nodes IDs which are used to request TCM
> +                 resources for the remoteproc driver to access.
> + - rpu-pnode-id : RPU power node id which is used by the remoteproc driver
> +                  to start RPU or shut it down.
> +
> +Optional properties:
> +--------------------
> + - core_conf : R5 core configuration (valid string - split0 or split1 or
> +               lock-step), default is lock-step.
> + - memory-region: memories regions for RPU executable and DMA memory.
> + - interrupts : Interrupt mapping for remoteproc IPI. It is required if the
> +                user uses the remoteproc driver with the RPMsg kernel driver.
> + - interrupt-parent : Phandle for the interrupt controller. It is required if
> +                      the user uses the remoteproc driver with the RPMsg kernel
> +                      kernel driver.
> +
> +Example:
> +--------
> +	reserved-memory {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +		rproc_0_fw_reserved: rproc@3ed000000 {
> +			compatible = "rproc-prog-memory";
> +			no-map;
> +			reg = <0x0 0x3ed00000 0x0 0x40000>;
> +		};
> +		rproc_0_dma_reserved: rproc@3ed400000 {
> +			compatible = "shared-dma-pool";
> +			no-map;
> +			reg = <0x0 0x3ed40000 0x0 0x80000>;
> +		};
> +	};
> +
> +	firmware {
> +		zynqmp_firmware: zynqmp-firmware {
> +			compatible = "xlnx,zynqmp-firmware";
> +			method = "smc";
> +		};
> +	};
> +
> +	zynqmp-r5-remoteproc@0 {

remoteproc@ffe00000 {

> +		compatible = "xlnx,zynqmp-r5-remoteproc-1.0";
> +		reg = <0x0 0xFFE00000 0x0 0x10000>,
> +			<0x0 0xFFE20000 0x0 0x10000>,
> +			<0x0 0xff340000 0x0 0x100>;

Make all addresses lowercase, rather than mixing case.

> +		reg-names = "tcm_a", "tcm_b", "ipi";
> +		dma-ranges;
> +		core_conf = "split0";
> +		memory-region = <&rproc_0_fw_reserved>,
> +				<&rproc_0_dma_reserved>;
> +		tcm-pnode-id = <0xf>, <0x10>;
> +		rpu-pnode-id = <0x7>;
> +		interrupt-parent = <&gic>;
> +		interrupts = <0 29 4>;

interrutps = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;

> +	} ;
> -- 
> 2.7.4
> 

Regards,
Bjorn
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt b/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
new file mode 100644
index 0000000..3940019
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5-remoteproc.txt
@@ -0,0 +1,81 @@ 
+Xilinx ARM Cortex A53-R5 remoteproc driver
+==========================================
+
+ZynqMP family of devices use two Cortex R5 processors to help with various
+low power / real time tasks.
+
+This driver requires specific ZynqMP hardware design.
+
+ZynqMP R5 RemoteProc Device Node:
+=================================
+A zynqmp_r5_remoteproc device node is used to represent a R5 IP instance
+within ZynqMP SoC.
+
+Required properties:
+--------------------
+ - compatible : Should be "xlnx,zynqmp-r5-remoteproc-1.0"
+ - reg : Address and length of the register set for the device. It
+        contains in the same order as described reg-names
+ - reg-names: Contain the register set names.
+              "tcm_a" and "tcm_b" for TCM memories.
+              If the user uses the remoteproc driver with the RPMsg kernel
+              driver,"ipi" for the IPI register used to communicate with RPU
+              is also required.
+              Otherwise, if user only uses the remoteproc driver to boot RPU
+              firmware, "ipi" is not required.
+ - tcm-pnode-id: TCM resources power nodes IDs which are used to request TCM
+                 resources for the remoteproc driver to access.
+ - rpu-pnode-id : RPU power node id which is used by the remoteproc driver
+                  to start RPU or shut it down.
+
+Optional properties:
+--------------------
+ - core_conf : R5 core configuration (valid string - split0 or split1 or
+               lock-step), default is lock-step.
+ - memory-region: memories regions for RPU executable and DMA memory.
+ - interrupts : Interrupt mapping for remoteproc IPI. It is required if the
+                user uses the remoteproc driver with the RPMsg kernel driver.
+ - interrupt-parent : Phandle for the interrupt controller. It is required if
+                      the user uses the remoteproc driver with the RPMsg kernel
+                      kernel driver.
+
+Example:
+--------
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+		rproc_0_fw_reserved: rproc@3ed000000 {
+			compatible = "rproc-prog-memory";
+			no-map;
+			reg = <0x0 0x3ed00000 0x0 0x40000>;
+		};
+		rproc_0_dma_reserved: rproc@3ed400000 {
+			compatible = "shared-dma-pool";
+			no-map;
+			reg = <0x0 0x3ed40000 0x0 0x80000>;
+		};
+	};
+
+	firmware {
+		zynqmp_firmware: zynqmp-firmware {
+			compatible = "xlnx,zynqmp-firmware";
+			method = "smc";
+		};
+	};
+
+	zynqmp-r5-remoteproc@0 {
+		compatible = "xlnx,zynqmp-r5-remoteproc-1.0";
+		reg = <0x0 0xFFE00000 0x0 0x10000>,
+			<0x0 0xFFE20000 0x0 0x10000>,
+			<0x0 0xff340000 0x0 0x100>;
+		reg-names = "tcm_a", "tcm_b", "ipi";
+		dma-ranges;
+		core_conf = "split0";
+		memory-region = <&rproc_0_fw_reserved>,
+				<&rproc_0_dma_reserved>;
+		tcm-pnode-id = <0xf>, <0x10>;
+		rpu-pnode-id = <0x7>;
+		interrupt-parent = <&gic>;
+		interrupts = <0 29 4>;
+	} ;