summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/soc
diff options
context:
space:
mode:
authorRichard Zhu <hongxing.zhu@nxp.com>2019-04-28 14:01:29 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2021-11-02 17:11:22 +0800
commite0b15a71782ac4be1397775f957b629a9bb56c92 (patch)
tree20078db6cd9c66cc0c88f616070681e8653825e1 /Documentation/devicetree/bindings/soc
parent8bb7eca972ad531c9b149c0a51ab43a417385813 (diff)
dt-binding: add imx rpmsg compatibility documentation
Add imx rpmsg compatibility documentation. Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Diffstat (limited to 'Documentation/devicetree/bindings/soc')
-rw-r--r--Documentation/devicetree/bindings/soc/fsl/fsl,rpmsg.txt75
1 files changed, 75 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/soc/fsl/fsl,rpmsg.txt b/Documentation/devicetree/bindings/soc/fsl/fsl,rpmsg.txt
new file mode 100644
index 000000000000..726775672b5f
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/fsl/fsl,rpmsg.txt
@@ -0,0 +1,75 @@
+i.MX RPMSG platform implementations
+
+Distributed framework is used in IMX RPMSG implementation, refer to the
+following requirements:
+ - The CAN functions contained in M core and RTOS should be ready and
+ complete functional in 50ms after AMP system is turned on.
+ - Partition reset. System wouldn't be stalled by the exceptions (e.x
+ the reset triggered by the system hang) occurred at the other side.
+ And the RPMSG mechanism should be recovered automactilly after the
+ partition reset is completed.
+In this scenario, the M core and RTOS would be kicked off by bootloader
+firstly, then A core and Linux would be loaded later. Both M core/RTOS
+and A core/Linux are running independly.
+One physical memory region used to store the vring is mandatory required
+to pre-reserved and well-knowned by both A core and M core
+
+Required properties:
+- compatible: "fsl,imx8qxp-rpmsg", "fsl,imx8mq-rpmsg".
+- vdev-nums: The number of the remote virtual devices.
+- reg: The reserved phisical DDR memory used to store vring descriptors.
+
+Optional properties:
+- rpmsg_dma_reserved: The reserved per device dma pool, that used to
+ allocate the shared memory buffers from the per device.
+ And it is optional for some platforms, since the system dma pool
+ is used to allocate the shared memory buffers directly on them.
+- mub-partition: The partition ID of muB side, that's optional
+ and used on i.mx8qm/8qxp for partition reset. The default
+ value is 3 in driver without this property.
+
+=====================================================================
+Mailbox used by iMX RPMSG
+
+- mboxes: mailboxes used in the RPMSG transactions.
+- mbox-names: names of the mailboxes used in RPMSG.
+ - "tx":TX channel with 32bit transmit register and IRQ transmit
+ - "rx":RX channel with 32bit receive register and IRQ support
+ - "rxdb":RX doorbell channel.
+
+Example:
+Rpmsg node in board dts file.
+&rpmsg{
+ /*
+ * 64K for one rpmsg instance:
+ */
+ vdev-nums = <2>;
+ reg = <0x0 0x90000000 0x0 0x20000>;
+ status = "okay";
+};
+
+SOC level dts node definitions:
+rpmsg_reserved: rpmsg@0x90000000 {
+ no-map;
+ reg = <0 0x90000000 0 0x400000>;
+};
+rpmsg_dma_reserved:rpmsg_dma@0x90400000 {
+ compatible = "shared-dma-pool";
+ no-map;
+ reg = <0 0x90400000 0 0x1C00000>;
+};
+rpmsg: rpmsg{
+ compatible = "fsl,imx8qxp-rpmsg";
+ /* up to now, the following channels are used in imx rpmsg
+ * - tx1/rx1: messages channel.
+ * - general interrupt1: remote proc finish re-init rpmsg stack
+ * when A core is partition reset.
+ */
+ mbox-names = "tx", "rx", "rxdb";
+ mboxes = <&lsio_mu5 0 1
+ &lsio_mu5 1 1
+ &lsio_mu5 3 1>;
+ mub-partition = <3>;
+ memory-region = <&rpmsg_dma_reserved>;
+ status = "disabled";
+};