Hello everyone, Hello @Dhruvit ,
We manage to get over this error.
To write our RPMsg / remoteproc device tree configuration for my iMX8MP based board, we were using the device tree configuration Freescale suggests for the iMX8MP-EVK (in arch/arm64/boot/dts/freescale/{imx8mp.dtsi, imx8mp-evk-rpmsg.dts}).
In this configuration, they use the same channel numbers (channel number 1) both for remoteproc (imx8mp-cm7 dts node) and RPMsg (rpmsg dts node). For us, it did not work. The mailbox was allocating channels 1 to RPMsg and then it crashes (the kernel panic described in the original post) while trying to allocate those same channels for remoteproc ...
We had to change the channel numbers used by rpmsg : we have overwritten the channel numbers automatically given in imx8mp.dtsi by our own ones. We succesfully used channel numbers 3.
You can find below the final RPMsg and remoteproc dts configuration we used.
For RPMsg :
&rpmsg{
/*
* 64K for one rpmsg instance:
* --0x55000000~0x5500ffff: pingpong
*/
vdev-nums = <1>;
reg = <0x0 0x55000000 0x0 0x10000>;
mbox-names = "tx", "rx", "rxdb";
mboxes = <&mu 0 3
&mu 1 3
&mu 3 3>;
memory-region = <&vdevbuffer>;
status = "okay";
};
For remoteproc :
imx8mp-cm7 {
compatible = "fsl,imx8mn-cm7";
rsc-da = <0x55000000>;
clocks = <&clk IMX8MP_CLK_M7_DIV>;
mbox-names = "tx", "rx", "rxdb";
mboxes = <&mu 0 1
&mu 1 1
&mu 3 1>;
memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
status = "okay";
}; Hope it can help other people !
Victor