RPMSG on iMX8M-Plus having error "imx_rproc_kick: failed"

Hi @aditya.yantra,

Please check my overlay that I uploadeed here

and check if that works in your module, without your device tree. Then, after checking if it works, you can enable your device tree and compare.

Here is the steps that I’ve followed:

  1. Loaded the rpmsg_lite_str_echo_rtos.bin:
Verdin iMX8MP # ext4load mmc 2:2 ${loadaddr} /home/root/rpmsg_lite_str_echo_rtos.bin
19868 bytes read in 1 ms (18.9 MiB/s)
Verdin iMX8MP # cp.b ${loadaddr} 0x7e0000 20000
Verdin iMX8MP # dcache flush
Verdin iMX8MP # bootaux 0x7e0000
## Starting auxiliary core stack = 0x20020000, pc = 0x000004DD...

The binary is loaded and waiting. When you boot the Linux kernel, you can see the message appearing “Nameservice sent, ready for incoming messages…”:

$ picocom -b 115200 /dev/ttyUSB2
picocom v3.1

port is        : /dev/ttyUSB2
flowcontrol    : none
baudrate is    : 115200
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
hangup is      : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        :
omap is        :
emap is        : crcrlf,delbs,
logfile is     : none
initstring     : none
exit_after is  : not set
exit is        : no

Type [C-a] [C-h] to see available commands
Terminal ready

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After that, I loaded the kernel module:

root@verdin-imx8mp-07174398:~# modprobe imx_rpmsg_tty
[   72.367176] imx_rpmsg_tty virtio0.rpmsg-virtual-tty-channel-1.-1.30: new channel: 0x400 -> 0x1e!
[   72.376179] Install rpmsg tty driver!

Then I can see the hello world showing up. The RPMsg is working.

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...
Get Message From Master Side : "hello world!" [len : 12]

Please let me know if you can reproduce the same steps.

You’re correct, but in this case we’re already accessing the resource table in the device, so this shouldn’t be a problem.

You’re seeing the remoteproc because the remoteproc driver is already enabled by default in our Kernel, however this is not required for RPMsg to work.

Please, test this overlay with the default device tree and let me know if it works.

Best Regards,
Hiago.