Search code examples
linuxembedded-linuxyoctou-boot

Issue: Virtio rpmsg bus virtio0: msg received with no recipient - in Yocto Hardknott - imx7d-pico


I’m correctly generating my image Yocto-hardknott-technexion with this:

$ mkdir tn-imx-yocto
$ cd tn-imx-yocto
$ repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b hardknott_5.10.y-next -m imx-5.10.52-2.1.0.xml
$ repo sync -j8
$ DISTRO=fsl-imx-x11 MACHINE=pico-imx7 BASEBOARD=pi source tn-setup-release.sh -b build-x11-pico-imx7
$ bitbake core-image-base

Then after I run modprobe imx_rpmsg_tty I have issue: virtio_rpmsg_bus virtio0: msg received with no recipient

I tried this: https://community.toradex.com/t/rpmsg-error-virtio-rpmsg-bus-virtio0-msg-received-with-no-recipient/12701 But not solved yet

When I change lines 83 and 102 from src to dst I got the error below(also look at the last photo):

/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c: In function 'StrEchoTask':
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c:83:75: error: 'dst' undeclared (first use in this function)
         result = rpmsg_rtos_recv_nocopy(app_chnl->rp_ept, &rx_buf, &len, &dst, 0xFFFFFFFF);
                                                                           ^
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c:83:75: note: each undeclared identifier is reported only once for each function it appears in
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c:63:19: warning: unused variable 'src' [-Wunused-variable]
     unsigned long src;
                   ^
make[2]: *** [CMakeFiles/rpmsg_str_echo_freertos_example.dir/build.make:94: CMakeFiles/rpmsg_str_echo_freertos_example.dir/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c.obj] Erro 1
make[2]: ** Esperando que outros processos terminem.
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/rpmsg_str_echo_freertos_example.dir/all] Erro 2

The error is being printed on line 761: https://elixir.bootlin.com/linux/latest/source/drivers/rpmsg/virtio_rpmsg_bus.c#L761

How to solve?

edited: I think the problem can be stay in Vring[0] Vring1. Link below. Because I can put

#define VRING0_BASE     0xBFFF0000
#define VRING1_BASE     0xBFFF8000 

in platform_info.c But I can't do changes in imx_rpmsg.c

https://imxdev.gitlab.io/tutorial/Multicore_communication_on_WaRP7_using_Remote_Processor_Messaging_bus_(RPMsg)/

enter image description here

enter image description here


Solution

  • I started to resolve my issue after on 04/13/2022 When I edited this post/issue and put this link: https://imxdev.gitlab.io/tutorial/Multicore_communication_on_WaRP7_using_Remote_Processor_Messaging_bus_(RPMsg)/

    In freertos-tn/middleware/multicore/open-amp/porting/imx7d-m4/platform_info.c file #define VRING1_BASE correct is 0x9FFF8000 But in my platform_info.c was 0x9FFF0000

    Now, I can run RPMsg with str_echo_freertos script/example:

    enter image description here