Hello,
I am trying to run an M7 application on IMX95LPD5EVK-19 following AN14748, but I cannot flash flash.bin with UUU. The board is detected briefly, then SDPS boot fails immediately.
Hardware: IMX95LPD5BB-19 REV A1 (2024 NXP B.V.)
Boot switch (SW7[1:4]): 1001 (Serial Download)
Target: eMMC
Host: Ubuntu Linux
UUU: libuuu_1.5.243-0-g230f1b1
SDKs tried (MCUXpresso SDK Builder):
Both produce the same result.
Command:
Error:
Steps followed (per AN14748):
Please share the steps to flash and the BSP version supported for M7 core for this version of the board.
Hello,
The latest supported BSP for A1 revision is Linux 6.12.20.
Also, you could try to build the the whole binary from scratch (Uboot+SPL+ATF+Firmware+M-SDK).
#### Download and extract ARM GCC toolchain ####
$ sudo tar -xvJf arm-gnu-toolchain-14.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz -C /opt
$ sudo tar -xvf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz -C /opt
$ sudo tar -xvf arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz -C /opt
#### Get NXP code necessary for the i.MX95 #### In your case be careful with the latest supported BSP version.
$ git clone https://github.com/nxp-imx/imx-mkimage -b lf-6.18.2-1.0.0
$ git clone https://github.com/nxp-imx/imx-atf -b lf-6.18.2-1.0.0
$ git clone https://github.com/nxp-imx/imx-sm -b lf-6.18.2-1.0.0
$ git clone https://github.com/nxp-imx/imx-oei -b lf-6.18.2-1.0.0
$ git clone https://github.com/nxp-imx/uboot-imx -b lf-6.18.2-1.0.0
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-2.0.5-29313e0.bin
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.31-4fa5b46.bin
#### Build Uboot ####
$ cd uboot-imx
$ make -j $(nproc --all) clean
$ make -j $(nproc --all) ARCH=arm CROSS_COMPILE=/opt/arm-gnu-toolchain-14.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- imx95_19x19_evk_defconfig
$ make -j $(nproc --all) ARCH=arm CROSS_COMPILE=/opt/arm-gnu-toolchain-14.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
#### Build ATF ####
$ cd ..
$ cd imx-atf
$ make -j $(nproc --all) PLAT=imx95 bl31 CROSS_COMPILE=/opt/arm-gnu-toolchain-14.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
#### Build SM ####
$ cd ..
$ cd imx-sm
$ make -j $(nproc --all) TOOLS=/opt/ config=mx95evk cfg (optional if the associated mx95evk.cfg file has been changed)
$ make -j $(nproc --all) TOOLS=/opt/ config=mx95evk all (Linux+M7)
$ make -j $(nproc --all) TOOLS=/opt/ config=mx95alt all (config for MCUXpresso testing)
#### Build OEI ####
$ cd ..
$ cd imx-sm
$ make -j $(nproc --all) TOOLS=/opt/ board=mx95lp5 oei=ddr DEBUG=1
$ make -j $(nproc --all) TOOLS=/opt/ board=mx95lp5 oei=tcm DEBUG=1 (for i.MX 95 A1 only)
#### Extract Firmware ####
$ cd ..
$ chmod +x firmware-ele-imx-2.0.5-29313e0.bin
$ ./firmware-ele-imx-2.0.5-29313e0.bin --auto-accept
$ chmod +x firmware-imx-8.31-4fa5b46.bin
$ ./firmware-imx-8.31-4fa5b46.bin --auto-accept
#### M7 SDK compilation ####
$ unzip SDK_25_12_00_IMX95LPD5EVK-19.zip
$ python3 -m venv .venv
$ source .venv/bin/activate
$ export ARMGCC_DIR=/opt/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi
$ pip install west
$ west build -p always examples/demo_apps/hello_world --toolchain armgcc --config release -b imx95lpd5evk19 -Dcore_id=cm7 #### For ITCM ####
$ west build -p always examples/demo_apps/hello_world --toolchain armgcc --config ddr_release -b imx95lpd5evk19 -Dcore_id=cm7 #### For DDR ####
$ exit (this will close the terminal so re-open the terminal)
#### Copy the resulting binaries to imx-mkimage ####
$ cd imx-mkimage
$ cp ../uboot-imx/u-boot.bin ./iMX95
$ cp ../uboot-imx/spl/u-boot-spl.bin ./iMX95
$ cp ../imx-atf/bl31.bin ./iMX95
$ cp ../imx-oei/oei-m33-ddr.bin ./iMX95
$ cp ../imx-sm/m33_image.bin ./iMX95
$ cp ../mcuxsdk/build/hello_world_cm7.bin ./iMX95/m7_image.bin
$ cp ../firmware-imx-8.31-4fa5b46/firmware/ddr/synopsys/lpddr5_dmem_qb_v202409.bin ./iMX95
$ cp ../firmware-imx-8.31-4fa5b46/firmware/ddr/synopsys/lpddr5_dmem_v202409.bin ./iMX95
$ cp ../firmware-imx-8.31-4fa5b46/firmware/ddr/synopsys/lpddr5_imem_qb_v202409.bin ./iMX95
$ cp ../firmware-imx-8.31-4fa5b46/firmware/ddr/synopsys/lpddr5_imem_v202409.bin ./iMX95
$ cp ../firmware-ele-imx-2.0.5-29313e0/mx95b0-ahab-container.img ./iMX95
$ make SOC=iMX95 OEI=YES flash_all
You may use the resulting binary to flash your EVK, we tested this in standalone mode and it is working correctly.
Best regards.
if boot from EMMC, SW7-3 should be 1 according to Quick Start Guide
IMX95LPD5EVK-19
Hello,
Thank you for the update.
Please try with sudo command.
Best regards.
Hi @JorgeCas
I have followed the exact steps given by you.
But there is a same flashing error. It goes till 60% and failed after sometime.
Can you please check the below screenshots and let me know whether the commands are right.
Thanks,
Gaurav
why there is usb error no device?does it happen at 60% booting process?
Hello,
I found a new resource that suggest use Linux 6.12.3_1.0.0/SDK25.03.00 for A1 silicon revision, please try again with this software versions.
What do you see in Cortex-A console when you see the error log?
Best regards.
And I am working on the lf-6.12 version for all the repos. Switch position for download mode is "1 0 0 1"
Can you please also confirm the supported version of M7 SDK?
can this issue be reproduced as failed at 60% process all the time?
Hi @db16122 ,
Thanks for replying.
Yes while flashing the firmware it is getting failed gets stuck at 60% for sometime and getting failed after that.
Thanks,
Gaurav C.
Hi @JorgeCas ,
I have tried with sudo command as well but there is no change and it is still failing.
Please check the below screenshot.
Thanks,
Gaurav C.
Yes, it is happening everytime.
Hi @JorgeCas
I have tried with SDK 25.03 and i am only getting some failure logs on /dev/ttyUSB3 while flashing the binary.
I have also copied the file like below.
cp ../firmware-ele-imx-2.0.5-29313e0/mx95b0-ahab-container.img ./iMX95
Do you think there exists a file for mx95a1-ahab-container.img as well?
Please also go through the screenshot, it is showing the SOC IMX95(A0) while I am having A1 revision.
Thanks
Gaurav