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
parent
219d54332a
commit
f0e9006a3c
|
@ -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";
|
||||
};
|
Loading…
Reference in New Issue