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

Bjorn Andersson
2018-10-06T05:50:16Z

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