Hi support,
I am trying to make RPMSG work on a colibri i.MX7, using Yocto to create a BSP 5.7 image.
My basic requirements are the ability to pass data from the M4 to Linux in the most efficient way (ideally, I must transfer 2.4MBytes/s).
On the M4 side, I’m using FreeRTOS (at least for now) and the RPMSG API as implemented in rpmsg_rtos.c (rpmsg_rtos_init(), rpmsg_rtos_recv_no_copy() etc…).
My questions concern the Linux side:
In my “defconfig” file, I currently have this:
CONFIG_HAVE_IMX_RPMSG=y
#
# Rpmsg drivers
#
CONFIG_RPMSG=y
CONFIG_RPMSG_CHAR=n
# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
CONFIG_RPMSG_VIRTIO=y
CONFIG_RPMSG_VIRTIO_CHAR=n
CONFIG_IMX_RPMSG_PINGPONG=n
CONFIG_IMX_RPMSG_TTY=n
# end of Rpmsg drivers
Is this the correct configuration that I need in order to make the Linux side work for the functions I use on the M4 ?
When I build for this config and generate/install the corresponding SDK, the only files refering to rpmsg are:
/
opt/tdx-xwayland/5.7.1$ find . -name "*rpmsg*"
./sysroots/armv7at2hf-neon-tdx-linux-gnueabi/lib/modules/5.4.193-5.7.1-devel+git.f78299297185/kernel/drivers/rpmsg
./sysroots/armv7at2hf-neon-tdx-linux-gnueabi/lib/modules/5.4.193-5.7.1-devel+git.f78299297185/kernel/drivers/rpmsg/imx_rpmsg_tty.ko
./sysroots/armv7at2hf-neon-tdx-linux-gnueabi/lib/modules/5.4.193-5.7.1-devel+git.f78299297185/kernel/drivers/rpmsg/imx_rpmsg_pingpong.ko
./sysroots/armv7at2hf-neon-tdx-linux-gnueabi/usr/include/linux/rpmsg.h
The header file just defines a structure (rpmsg_endpoint_info) and that’s all.
(But there are quite some *virtio* header files and a .so library file.)
So I’m a bit lost.
Am I correct in wanting to use the same API on the Linux side as on the M4 side ?
If so, do you have any idea on how to get this API on Linux ?
If not, can you please tell me how I should proceed ? (by giving instructions or a pointer to somewhere…)
Thanks a lot for your help,
Jeroen
(PS: This is not my first post on the subject but I thought it was better to start a new thread for clarity)