Verdin IMX8M Mini /dev/ttyRPMSG not created


I am not seeing /dev/ttyRPMSG

Module: Vedrin IMX8M Mini Quad 2GB, 16GB WL BT IT, ver 1.1A
Carrier Board: Verdin Development Board V1.1A
OS details are given below

root@verdin-imx8mm-06902306:~# cat /etc/os-release
NAME=“TDX Wayland with XWayland”
VERSION=“5.4.0+build.11 (dunfell)”
PRETTY_NAME=“TDX Wayland with XWayland 5.4.0+build.11 (dunfell)”

I get the following error message.
root@verdin-imx8mm-06902306:~# modprobe imx-rpmsg-tty
root@verdin-imx8mm-06902306:~# dmesg | grep rpmsg
[ 0.063450] imx rpmsg driver is registered.
[ 1.731502] imx-rpmsg rpmsg: No vring buffer.
[ 1.735930] imx-rpmsg: probe of rpmsg failed with error -12

I have added the below lines in the device tree file imx8mm-verdin-wifi-dev.dts

&rpmsg {
status = “okay”;

Thanks for your help in advance.

Referred this page and modified the &rpmsg node as follows. I made a small progress by doing this.

	 * 64K for one rpmsg instance:
	 * --0xb8000000~0xb800ffff: pingpong
	vdev-nums = <1>;
	reg = <0x0 0xb8000000 0x0 0x10000>;
	status = "okay";

On first reboot it worked. In dmesg I could see

virtio_rpmsg_bus virtio0: rpmsg host is online

/dev/ttyRPMSG was created and the freeRTOS multicore exaample ‘rpmsg_lite_str_echo_rtos’ worked.

On the subsequent reboots, I am not seeing the below message in dmesg. /dev/ttyRPMSG is not getting created. The example does not work.

virtio_rpmsg_bus virtio0: rpmsg host is online

Hi @spsarathy1 ,
I am trying to reproduce the issue. I will get back to you as soon as possible.

Hi @spsarathy1,

/dev/ttyRPMSGx won’t appear without running Cortex-M FW, which should run RPMSG stack, which should have VRING’s placed at same address like it is specified in your dtb (0:b8000000). You should make sure Cortex-M doesn’t stuck somewhere, perhaps due to Linux disabling “unused” clock or something. Blinking LED or stream of some chars to serial port may help determining is it still running or not.


Thanks a lot Edward.

I have been testing without loading the ‘rpmsg_lite_str_echo_rtos’ in M4. After loading M4, it works in linux as expected.