@gustavo.tx @Edward @jeremias.tx thanks guys for prompt response.
I still haven’t managed to compile overlays, so I decided to modify and compile my imx8mm-verdin-wifi-rpmsg.dts file, I used @gustavo.tx code:
/dts-v1/;
#include "imx8mm-verdin.dtsi"
#include "imx8mm-verdin-wifi.dtsi"
#include "imx8mm-verdin-dev.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/imx8mm-clock.h>
/ {
model = "Toradex Verdin iMX8M Mini WB on Verdin Development Board";
compatible = "toradex,verdin-imx8mm-wifi-dev",
"toradex,verdin-imx8mm-wifi",
"toradex,verdin-imx8mm",
"fsl,imx8mm";
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
m4_reserved: m4@0x80000000 {
no-map;
reg = <0 0x80000000 0 0x1000000>;
};
vdev0vring0: vdev0vring0@b8000000 {
compatible = "shared-dma-pool";
reg = <0 0xb8000000 0 0x8000>;
no-map;
};
vdev0vring1: vdev0vring1@b8008000 {
compatible = "shared-dma-pool";
reg = <0 0xb8008000 0 0x8000>;
no-map;
};
vdevbuffer: vdevbuffer@b8400000 {
compatible = "shared-dma-pool";
reg = <0 0xb8400000 0 0x100000>;
no-map;
};
};
imx8mm-cm4 {
compatible = "fsl,imx8mm-cm4";
rsc-da = <0xb8000000>;
clocks = <&clk IMX8MM_CLK_M4_DIV>;
mbox-names = "tx", "rx", "rxdb";
mboxes = <&mu 0 1
&mu 1 1
&mu 3 1>;
memory-region = <&vdev0vring0>, <&vdev0vring1>, <&vdevbuffer>;
syscon = <&src>;
};
};
&clk {
init-on-array = <IMX8MM_CLK_UART4_ROOT
IMX8MM_CLK_AHB IMX8MM_CLK_DRAM_CORE
IMX8MM_CLK_NOC IMX8MM_CLK_NOC_APB
IMX8MM_CLK_USB_BUS
IMX8MM_CLK_MAIN_AXI IMX8MM_CLK_AUDIO_AHB
IMX8MM_CLK_DRAM_APB IMX8MM_CLK_A53_DIV
IMX8MM_ARM_PLL_OUT IMX8MM_CLK_DISP_AXI
IMX8MM_CLK_DISP_APB
>;
};
/*
* ATTENTION: M4 may use IPs like below
* ECSPI0/ECSPI2, GPIO1/GPIO5, GPT1, I2C3, I2S3, WDOG1, UART4, PWM3, SDMA1
*/
&i2c3 {
status = "disabled";
};
&rpmsg{
/*
* 64K for one rpmsg instance:
* --0xb8000000~0xb800ffff: pingpong
*/
vdev-nums = <1>;
reg = <0x0 0xb8000000 0x0 0x10000>;
memory-region = <&vdevbuffer>;
status = "okay";
};
&sdma1{
status = "disabled";
};
&uart4 {
status = "disabled";
};
&sdma3 {
status = "disabled";
};
&sai3 {
status = "disabled";
};
&sai1 {
status = "disabled";
};
&sai2 {
status = "disabled";
};
&flexspi {
status = "disabled";
};
Successfully booted Linux and dmesg | grep rpmsg returned this:
vdev0vring0@b8000000 (0x00000000b8000000--0x00000000b8008000) overlaps with rpmsg@b8000000 (0x00000000b8000000--0x00000000b8400000)
rpmsg@b8000000 (0x00000000b8000000--0x00000000b8400000) overlaps with vdev0vring1@b8008000 (0x00000000b8008000--0x00000000b8010000)
[ 0.047661] imx rpmsg driver is registered.
[ 1.401309] imx-rpmsg b8000000.rpmsg: assigned reserved memory node vdevbuffer@b8400000
[ 1.401688] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 1.403020] virtio_rpmsg_bus virtio0: creating channel rpmsg-virtual-tty-channel-1 addr 0x1e
[ 48.210838] imx_rpmsg_tty virtio0.rpmsg-virtual-tty-channel-1.-1.30: new channel: 0x400 -> 0x1e!
[ 48.211329] Install rpmsg tty driver!
I managed to communicate with M4 core:
RPMSG String Echo FreeRTOS RTOS API Demo...
Nameservice sent, ready for incoming messages...
Get Message From Master Side : "hello world!" [len : 12]
Those “overlaps” warning considers rpmsg_reserved defined in imx8mm-verdin-v1.1.dtsi, also for some reason I cant see can0 interface.