what your request is using PRMSG on imx8mp, right? if yes, pls refer to the steps as below
Replace [test].elf with the elf that you wanna to test.
You could check the elf file list: =>fatls mmc ${mmcdev}:1
In U-Boot Stage:
=>fatload mmc ${mmcdev}:1 ${loadaddr} [test].bin
=>cp.b ${loadaddr} 0x7e0000 ${filesize}
=>bootaux 0x7e0000 0
=>run prepare_mcore
=> setenv fdtfile [imx8mn-evk]-rpmsg.dtb
=> boot
In Kernel Stage:
If you already booted Mcore in U-Boot stage, you need first stop the m4 using remoteproc, before you start the new firwmare.
echo stop > /sys/devices/platform/[imx8mp-cm7]/remoteproc/remoteproc0/state; #if you not start Mcore in U-Boot stage, no need execute this in the begining.
echo imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.elf > /sys/devices/platform/imx8mp-cm7/remoteproc/remoteproc0/firmware
echo start > /sys/devices/platform/imx8mp-cm7/remoteproc/remoteproc0/state
After start, you could execute stop again, and assign a new elf firmware.
You could not assign a new firwmare when state is in start.
The i.MX8MN/P, the elf file list:
imx8mp_m7_TCM_hello_world.elf
imx8mp_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.elf
imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.elf
imx8mp_m7_TCM_sai_low_power_audio.elf
The path for remoteproc on i.MX8MP:
/sys/devices/platform/imx8mp-cm7/remoteproc/remoteproc0/
Remoteprc: hello world demo not have resource table:
- For i.MX8MP LPDDR4-EVK: #mw 0x550ff000 0 4 to clear garbage resource table area