How to test rpmsg on IMX8QXP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to test rpmsg on IMX8QXP

777 Views
wang12zhe
Contributor III

HW: IMX8QXP MEK
Yocto :L5.10.52

Case 1:
When power on my board and stop in uboot command line, I can see below information fromM4 UART:
MCU wakeup source 0x80...

#################### Power Mode Switch Task ####################

Build Time: Feb 20 2021--08:41:40
Core Clock: 264000000Hz
Power mode: RUN

Select the desired operation

Press A to enter: RUN - Normal RUN mode
Press B to enter: WAIT - Wait mode
Press C to enter: STOP - Stop mode
Press D to enter: VLPR - Very Low Power Run mode
Press E to enter: VLPW - Very Low Power Wait mode
Press F to enter: VLPS - Very Low Power Stop mode
Press G to enter: LLS - Low Leakage Stop mode
Press H to enter: VLLS - Very Low Leakage Stop mode

Press R to enter: RESET - using WDOG trigger M4 partition reset.

Waiting for user selection..

Then I try to run imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin by below command:
=>dhcp
=>nfs ${loadaddr} 192.168.50.207:/home/wzg/8TB/IMX/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin ; dcache flush ; bootaux ${loadaddr} 0
Using ethernet@5b040000 device
File transfer via NFS from server 192.168.50.207; our IP address is 192.168.50.189
Filename '/home/wzg/8TB/IMX/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin'.
Load address: 0x80280000
Loading: ######
done
Bytes transferred = 29920 (74e0 hex)
## Auxiliary core is already up
=>

Nothing changed in M4 UART

Then run bootcmd to start linux and modprobe imx_rpmsg_tty;modprobe imx_rpmsg_pingpong

I can't find the /dev/ttyRPMSG30

 


Case 2:

write flash.bin to /dev/mmcblk0boot0 by command:
echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=/home/root/flash.bin of=/dev/mmcblk0boot0 bs=1024 seek=32 conv=fsync
echo 1 > /sys/block/mmcblk0boot0/force_ro
mmc bootpart enable 1 1 /dev/mmcblk0

When power on my board and stop in uboot command line, I can see nothing from M4 UART:

Then I try to run imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin by below command:
=>dhcp
=> nfs ${loadaddr} 192.168.50.207:/home/wzg/8TB/IMX/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin ; dcache flush ; bootaux ${loadaddr} 0
Using ethernet@5b040000 device
File transfer via NFS from server 192.168.50.207; our IP address is 192.168.50.137
Filename '/home/wzg/8TB/IMX/imx8qx_m4_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin'.
Load address: 0x80280000
Loading: ######
done
Bytes transferred = 29920 (74e0 hex)
Power on aux core 0
Copy image from 0x80280000 to 0x34fe0000
Start M4
bootaux complete
=>

I can see below information from M4 USRT:
RPMSG Ping-Pong FreeRTOS RTOS API Demo...
RPMSG Share Base Addr is 0x90010000

Then run bootcmd to start linux and modprobe imx_rpmsg_tty;modprobe imx_rpmsg_pingpong

I still can't find the /dev/ttyRPMSG30 

any error in my test step ?

0 Kudos
Reply
1 Reply

720 Views
Dhruvit
NXP TechSupport
NXP TechSupport
 
I hope you are doing well
 
Kindly confirm that you have correctly loaded the driver module using "$insmod imx_rpmsg_tty.ko" for rpmsg on the kernel side. One can verify this by the 'lsmod' command.
For the source code, kindly refer to the latest version of SDK from MCUXpresso SDK Builder.
To run the 'rpmsg' code please look into the 2.6.2.2 Running i.MX RPMsg Test Programs from i.MX Reference Manual.
 
For more information regarding the same kindly refer to the below documents
 
Thanks & Regards,
Dhruvit Vasavada
0 Kudos
Reply