Dear Support Team,
we are testing the rpmsg_lite_str_echo_rtos demo included in NXP MCUXpresso SDK 2.5.2 MIMX8QM6xxxFF and meet below issue, the Linux BSP running on Cortex-Ax cores is latest Ycoto Linux console image v3.04, kindly please help advise?
./ Testing process
a. set up HW /related UARTs according to the developer article - FreeRTOS on the Cortex-M4s of a Apalis iMX8 | Toradex Developer Center
b. SDK toolchain use gcc-arm-none-eabi-7-2018-q2-update.
c. compile and test the “hello_world” demo under boards/mekmimx8qm/demo_apps/hello_world folder and it works well.
c. compile and test “rpmsg_str_echo” demo under boards/mekmimx8qm/multicore_examples/rpmsg_lite_str_echo_rtos/ folder. the RPMSG seems didn’t link up successfully, detailed logs are as below:
./ Cortex-A Debug console output
...
Apalis iMX8 # fatload mmc 2 ${loadaddr} m4_image.bin && dcache flush && bootaux ${loadaddr} 0
20112 bytes read in 21 ms (934.6 KiB/s)
## Starting auxiliary core at 0x80280000 ...
Power on M4 and MU
Copy M4 image from 0x80280000 to TCML 0x34fe0000
Start M4 0
bootaux complete
Apalis iMX8 # run bootcmd
...
Apalis-iMX8_Console-Image 3.0b4.254 20200421
apalis-imx8 login: root
Last login: Tue Apr 21 04:37:00 UTC 2020 on tty7
root@apalis-imx8:~# dmesg |grep rpmsg
[ 0.000000] OF: reserved mem: initialized node rpmsg_dma@0x90400000, compatible id shared-dma-pool
[ 0.236547] imx rpmsg driver is registered.
[ 0.354999] imx-rpmsg 90000000.rpmsg: assigned reserved memory node rpmsg_dma@0x90400000
[ 0.355402] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 0.355784] virtio_rpmsg_bus virtio1: rpmsg host is online
[ 0.355833] virtio_rpmsg_bus virtio1: creating channel rpmsg-virtual-tty-channel addr 0x1e
[ 0.357018] imx-rpmsg 90100000.rpmsg1: assigned reserved memory node rpmsg_dma@0x90400000
[ 0.357398] virtio_rpmsg_bus virtio2: rpmsg host is online
[ 0.378310] virtio_rpmsg_bus virtio3: rpmsg host is online
root@apalis-imx8:~# modprobe imx_rpmsg_tty
[ 41.182443] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: new channel: 0x400 -> 0x1e!
[ 41.191316] Install rpmsg tty driver!
root@apalis-imx8:~# echo test > /dev/ttyRPMSG30
./ Cortex-M4 debug console output:
RPMSG String Echo FreeRTOS RTOS API Demo...
./ per some debugging the M4 demo code just stay at below function in main_remote.c waiting for link up.
while (!rpmsg_lite_is_link_up(my_rpmsg))
d. Also tested the same demo on M4_1, the output log is slightly different as below, but the communication is also failed.
./ Cortex-A Debug console output
...
Apalis iMX8 # fatload mmc 2 ${loadaddr} m4_1_image.bin && dcache flush && bootaux ${loadaddr} 1
27984 bytes read in 21 ms (1.3 MiB/s)
## Starting auxiliary core at 0x80280000 ...
Power on M4 and MU
Copy M4 image from 0x80280000 to TCML 0x38fe0000
Start M4 1
bootaux complete
Apalis iMX8 # run bootcmd
...
Apalis-iMX8_Console-Image 3.0b4.254 20200421
apalis-imx8 login: root
Last login: Tue Apr 21 04:36:59 UTC 2020 on tty7
root@apalis-imx8:~# dmesg |grep rpmsg
[ 0.000000] OF: reserved mem: initialized node rpmsg_dma@0x90400000, compatible id shared-dma-pool
[ 0.236647] imx rpmsg driver is registered.
[ 0.354566] imx-rpmsg 90000000.rpmsg: assigned reserved memory node rpmsg_dma@0x90400000
[ 0.354967] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 0.375904] virtio_rpmsg_bus virtio1: rpmsg host is online
[ 0.377004] imx-rpmsg 90100000.rpmsg1: assigned reserved memory node rpmsg_dma@0x90400000
[ 0.377383] virtio_rpmsg_bus virtio2: rpmsg host is online
[ 0.377756] virtio_rpmsg_bus virtio3: rpmsg host is online
[ 0.377821] virtio_rpmsg_bus virtio3: creating channel rpmsg-virtual-tty-channel-1 addr 0x1f
[ 0.380174] virtio_rpmsg_bus virtio2: creating channel rpmsg-vehicle-channel addr 0x1
[ 0.380262] virtio_rpmsg_bus virtio2: creating channel rpmsg-i2c-channel addr 0x2
[ 0.430476] i2c-rpmsg virtio2.rpmsg-i2c-channel.-1.2: new channel: 0x400 -> 0x2!
root@apalis-imx8:~# modprobe imx_rpmsg_tty
[ 112.431756] imx_rpmsg_tty virtio3.rpmsg-virtual-tty-channel-1.-1.31: new channel: 0x400 -> 0x1f!
[ 112.440790] Install rpmsg tty driver!
root@apalis-imx8:~# echo test > /dev/ttyRPMSG31
./ Cortex-M4 debug console output:
RPMSG String Echo FreeRTOS RTOS API Demo...
Nameservice sent, ready for incoming messages...
app_srtm: AUTO and I2C service registered
Thanks and Best Regards
Hai