1
0
Fork 0

dt-binding: add imx rpmsg compatibility documentation

Add imx rpmsg compatibility documentation.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
5.4-rM2-2.2.x-imx-squashed
Richard Zhu 2019-04-28 14:01:29 +08:00 committed by Dong Aisheng
parent 219d54332a
commit f0e9006a3c
1 changed files with 75 additions and 0 deletions

View File

@ -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";
};