Hello team,
We are working on a NXP i.MX 8M board and wanted to perform communication between the M4 and A53 using RPC (RPMSG).
We have enabled the driver imx_rpmsg_tty.ko and loading the same after kernel bootup but only able to see below dmesg prints related to rpmsg.
root@imx8mqthor96:~# dmesg | grep -i rpmsg
[ 0.220948] imx rpmsg driver is registered.
[ 2.465290] imx-rpmsg b8000000.rpmsg: assigned reserved memory node vdevbuffer@b8400000
[ 2.497403] virtio_rpmsg_bus virtio0: rpmsg host is online
We have also copied the rpmsg dtb from the reference evk board, and performing below steps in the bootloader.
u-boot=> fatload mmc 2 ${loadaddr} imx8mq_m4_TCM_rpmsg_lite_str_echo_rtos.bin
u-boot=> dcache flush && bootaux ${loadaddr} 0
## Starting auxiliary core stack = 0xFAFBBFDF, pc = 0x4FFFDDFB...
u-boot=> printenv fdt_file (changed the fdtfile to imx8mq-thor96-rpmsg.dtb)
fdt_file=imx8mq-thor96-rpmsg.dtb
We have also made below changes in the dts files:
diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
index f08620a41c10..f4bf7b295d5b 100755
--- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -1567,6 +1567,6 @@
mboxes = <&mu 0 1
&mu 1 1
&mu 3 1>;
- status = "disabled";
+ status = "okay";
};
};
Enabled the rpmsg from the imx8mq-thor96-rpmsg.dts file as well.
+&rpmsg{
+ /*
+ * 64K for one rpmsg instance:
+ * --0xb8000000~0xb800ffff: pingpong
+ */
+ vdev-nums = <1>;
+ reg = <0x0 0xb8000000 0x0 0x10000>;
+ memory-region = <&vdevbuffer>;
+ status = "okay";
+};
Please suggest what is missing in our steps.
Hello,
I would like to know the Kernel version you're using for reference?
Also, when you start the M4 code do you see anything in the Cortex M UART log?
Best regards,
Aldo.
Any update on this?