Trouble configuring / using RPMsg

  • I am having trouble configuring RPMsg for PicoCore™MX8MP-V4I-LIN with MX8MP Baseboard


    I have compiled the fus-image-std image from fsimx8mp-Y2023.09 with lines 15 and 16 uncommented in linux-fus/arch/arm64/boot/dts/F+S/picocoremx8mp.dts such that they are:

    Code
    1. #define SUPPORT_M7
    2. #define SUPPORT_RPMSG

    I have also compiled rpmsg pingpong example from freertos-fsimx8mp-V2022.07.1 and moved the rpmsg_lite_pingpong_rtos_linux_remote.bin binary generated after make rpmsg_lite_pingpong_rtos_linux_remote.elf && make install to a directory named /home/root/cortex-m/ on the mx8mp.

    I start the auxiliary Cortex-M7 with the following commands in uboot:

    Code
    1. setenv load_cmd "ext4load mmc 2:2"
    2. setenv m7image "/home/root/cortex-m/rpmsg_lite_pingpong_rtos_linux_remote.bin"
    3. setenv m7image_size 30000
    4. setenv loadm7image "${load_cmd} ${loadaddr} ${m7image}"
    5. setenv m7boot "${loadm7image}; cp.b ${loadaddr} 0x7e0000 ${m7image_size}; dcache flush; bootaux 0x7e0000"
    6. run m7boot

    After which the following is sent over UART_C:

    Code
    1. RPMSG Ping-Pong FreeRTOS RTOS API Demo...
    2. RPMSG Share Base Addr is 0x55800000

    Then I boot into linux and run modprobe -v img_rpmsg_pingpong which returns insmod /lib/modules/5.15.71-F+S/kernel/drivers/rpmsg/imx_rpmsg_pingpong.ko but nothing appears to happen. No new output over UART_C.


    Running dmesg | grep rpmsg returns imx rpmsg driver is registered.

  • Thanks for the suggestion. I have extra=clk-imx8mp.mcore_booted clk_ignore_unused in my U-Boot environment, but my problem persists. I believe the problem in this case is also different to one in the linked thread, as I fail to establish RPMsg link even when starting the auxiliary core from U-Boot, and nothing appears in /sys/class/remoteproc, so I suspect my problem may be related to the image / device tree configuration.

  • Hello,


    could you try to change the variable VDEV0_VRING_BASE in the file

    examples/fsimx8mp/multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote/board.h

    to 0x55000000U ?


    The vring value from the Device Tree hast to match the value from the M7 binary.


    Your F&S Support Team

  • Thanks for the help!


    I was missing this part as well. However, turns out I also hadn't transferred the new dtb properly, so it was using the default one from fsimx8mp-Y2023.09