Hi NXP ,
MIMX8M6CVNKZAB(IMX8M Mini)
I am facing problem while booting A53 , in U-boot after booting Cortex M4 ( bootaux 0x7e0000). A53 is unable to boot. I have shared the error log dsocument(A53_M4_Boot_Problem.docx). I have also shared the dts file which I am using.
I have downloaded the SDK from SDK Builder and tested Hello_world Program and ping_pong_test . These 2 are working fine but after running low_power_wakeword its showing the errror in this way.
Then I try to power off the board and try to boot only A53 then it is not booting error log I have attached(A53_Boot_issue.docx).
I am booting through SD card
At first I was running the low_power_wakeword.bin
=>fatload mmc 1:1 0x48000000 low_power_wakeword.bin
=>cp.b 0x48000000 0x7e0000 0x20000
=>bootaux 0x7e0000
=>boot
then in m4 terminal it is showing this
################### LOW POWER VOICE DEMO START ####################
Build Time: Dec 29 2023--10:56:20
VoiceSeekerLight_Create status: 0x0
VoiceSeekerLight lib initialized!
VoiceSpot library version: 0.23.3.1665740895
VoiceSpot model version: 0.13.1
VoiceSpot model string: HeyNXP_en-US_1
********************************
Wait the Linux kernel boot up to create the link between M core and A core.
********************************
then after I am booting A53 its not booting.
After doing this experiment when I try to boot only A53 it's not booting. after changing the env value to default it's booting.
U-Boot=> env default -a
I am using this command to get the default environment.
How can I solve this problem ,provide the necessory source/documents to edit the SDK examples as per my requirement and compile it .
How can I boot both M4 and A53 safely? Provide me the changes I need to make in dts file. RPmsg is not working correctly.
Board #https://www.phytec.de/produkte/single-board-computer/phyboard-polis-imx8m-mini/
Solved! Go to Solution.
pls refer to the steps as below, the example is for imx8mn, you just replace it by imx8mm
If you already booted Mcore in U-Boot stage, you need first stop the m core using remoteproc, before you start the new firwmare.
echo stop > /sys/devices/platform/[imx8mn-cm7]/remoteproc/remoteproc0/state; #if you not start Mcore in U-Boot stage, no need execute this in the begining.
echo imx8mn_m7_TCM_rpmsg_lite_str_echo_rtos.elf > /sys/devices/platform/imx8mn-cm7/remoteproc/remoteproc0/firmware
echo start > /sys/devices/platform/imx8mn-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.
For IMX8MM hardware, this initialization process is managed within the U-Boot bootloader, specifically located in the board/freescale/imx8mm_evk/ directory.
U-Boot, drivers/power/pmic/pca9450.c is typically involved.
root@phyboard-polis-imx8mm-4:remoteproc0# echo start > state
[ 1886.701057] remoteproc remoteproc0: powering up imx-rproc
[ 1886.706541] remoteproc remoteproc0: Direct firmware load for rpmsg_lite_pingpong_rtos_linux_remote.elf failed with error -2
[ 1886.717784] remoteproc remoteproc0: Falling back to sysfs fallback for: rpmsg_lite_pingpong_rtos_linux_remote.elf
[ 1886.728968] remoteproc remoteproc0: request_firmware failed: -2
[ 1886.734975] remoteproc remoteproc0: Boot failed: -2
-sh: echo: write error: No such file or directory
root@phyboard-polis-imx8mm-4:remoteproc0#
after doing this I am getting this error
This rpmsg ping pong is working while loading in U-boot prompt but my issue is in low_power_wakeword ,
after loading the low_power_wakeword.bin in U-boot prompt , unable to boot the A53 I am getting the error . I have attached the error(A53_M4_Boot_Problem.docx) . In M4 terminal I am getting this
#################### LOW POWER VOICE DEMO START ####################
Build Time: Jan 1 2024--10:16:54
VoiceSeekerLight_Create status: 0x0
VoiceSpot library version: 0.23.1.1648542135
VoiceSpot model version: 0.13.1
VoiceSpot model string: HeyNXP_en-US_1
********************************
Wait the Linux kernel boot up to create the link between M core and A core.
then A53 is not booting.
did you step by step according to the readme, right? it seems the A core is still under sleep, so you couldn't use remotproc, refer to the readme
3. Make Linux on A core enter suspend:
"echo mem > /sys/power/state"
4. When a wakeword ("Hey NXP") is detected by M core, Linux will resume and audio record will continue on Linux.
Pls share your detailed test steps, refer to the readme, This case runs together with Linux and the Linux release version should be not lower than 5.15.X_2.0.0
After M core running, please boot the linux kernel to create the rpmsg channel between A core and M core.
if you test step by step according to readme, it should be successful, still failed, pls share your detailed steps and let me reproduce this on my board
Through u-boot i have tried to boot and I have got the same error . I have shared the log file just check out and what modification I need to do in device tree file .
And the example code for low_power_wakeword is written for 8 mic array , I need to modify in where that it will work for USB mic .
And after the board is booted I have tried to load the frimware and started the m4 core but i got error.
root@phyboard-polis-imx8mm-4:~# ls
gstreamer-examples@ rpmsg_lite_pingpong_rtos_linux_remote.elf
opencv-examples@ v4l2_c-examples@
root@phyboard-polis-imx8mm-4:~# echo start > /sys/devices/platform/imx8mm-cm4/remoteproc/remoteproc0//state
[ 1390.952865] remoteproc remoteproc0: powering up imx-rproc
[ 1390.958344] remoteproc remoteproc0: Direct firmware load for rpmsg_lite_pingpong_rtos_linux_remote.elf failed with error -2
[ 1390.969578] remoteproc remoteproc0: Falling back to sysfs fallback for: rpmsg_lite_pingpong_rtos_linux_remote.elf
[ 1390.980868] remoteproc remoteproc0: request_firmware failed: -2
[ 1390.986837] remoteproc remoteproc0: Boot failed: -2
-sh: echo: write error: No such file or directory
root@phyboard-polis-imx8mm-4:~# echo stop > /sys/devices/platform/imx8mm-cm4/remoteproc/remoteproc0/sstate
-sh: echo: write error: Invalid argument
root@phyboard-polis-imx8mm-4:~# echo stop > /sys/devices/platform/imx8mm-cm4/remoteproc/remoteproc0/sstatephyboard-polis-imx8mm-4:~# echo start > /sys/devices/platform/imx8mm-cm4/remoteproc/remoteproc0/state
[ 1445.031463] remoteproc remoteproc0: powering up imx-rproc
[ 1445.036940] remoteproc remoteproc0: Direct firmware load for rpmsg_lite_pingpong_rtos_linux_remote.elf failed with error -2
[ 1445.048200] remoteproc remoteproc0: Falling back to sysfs fallback for: rpmsg_lite_pingpong_rtos_linux_remote.elf
[ 1445.059417] remoteproc remoteproc0: request_firmware failed: -2
[ 1445.065420] remoteproc remoteproc0: Boot failed: -2
-sh: echo: write error: No such file or directory
root@phyboard-polis-imx8mm-4:~# echo start > /sys/devices/platform/imx8mm-cm4/remoteproc/remoteproc0//statehyboard-polis-imx8mm-4:~# echo stop > /sys/devices/platform/imx8mm-cm4/remoteproc/remoteproc0/state
-sh: echo: write error: Invalid argument
root@phyboard-polis-imx8mm-4:~# echo rpmsg_lite_pingpong_rtos_linux_remote.elf > /sys/devices/platfoorm/imx8mm-cm4/remoteproc/remoteproc0/firmware
root@phyboard-polis-imx8mm-4:~# echo rpmsg_lite_pingpong_rtos_linux_remote.elf > /sys/devices/platfoorm/imx8mm-cm4/remoteproc/remoteproc0/firmwarestop > /sys/devices/platform/imx8mm-cm4/remoteproc/remoteproc0/statephyboard-polis-imx8mm-4:~# echo start > /sys/devices/platform/imx8mm-cm4/remoteproc/remoteproc0/state
[ 1470.283239] remoteproc remoteproc0: powering up imx-rproc
[ 1470.288718] remoteproc remoteproc0: Direct firmware load for rpmsg_lite_pingpong_rtos_linux_remote.elf failed with error -2
[ 1470.299957] remoteproc remoteproc0: Falling back to sysfs fallback for: rpmsg_lite_pingpong_rtos_linux_remote.elf
[ 1470.311067] remoteproc remoteproc0: request_firmware failed: -2
[ 1470.317058] remoteproc remoteproc0: Boot failed: -2
-sh: echo: write error: No such file or directory
root@phyboard-polis-imx8mm-4:~#
No output on M4 terminal.
pls refer to the steps as below, the example is for imx8mn, you just replace it by imx8mm
If you already booted Mcore in U-Boot stage, you need first stop the m core using remoteproc, before you start the new firwmare.
echo stop > /sys/devices/platform/[imx8mn-cm7]/remoteproc/remoteproc0/state; #if you not start Mcore in U-Boot stage, no need execute this in the begining.
echo imx8mn_m7_TCM_rpmsg_lite_str_echo_rtos.elf > /sys/devices/platform/imx8mn-cm7/remoteproc/remoteproc0/firmware
echo start > /sys/devices/platform/imx8mn-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.