Hello NXP team,
Please help us on this query.
We are using i.MXRT1052 with SDK_2_10_0_EVKB-IMXRT1050 in one of our projects. Our board has provision to boot from SD card and eMMC. We are successfully able to flash the image in SD card and boot from it.
Our final aim is to boot from eMMC. The eMMC used on our hardware is Kingston "EMMC04G-W627-X02U". We are able to able to do basic read/write operation on EMMC so connections seems to be fine. However we are not able to boot from EMMC. We have referred other posts, shown below, on NXP forum and Application notes for the same but none of them provides an actual solution for booting from EMMC with imxRT.
https://mcuoneclipse.com/2019/01/22/tutorial-booting-the-nxp-i-mx-rt-from-micro-sd-card/
https://community.nxp.com/thread/352318
https://www.nxp.com/docs/en/application-note/AN12107.pdf
https://community.nxp.com/t5/i-MX-RT/i-MXRT1051-eMMC-boot/td-p/806269
As per the imxrt1050 Reference Manual the BOOT_CFG and BOOT_MODE pins needs to be configured as below to enable boot from EMMC:
BOOT_CFG[0] : 0
BOOT_CFG[1] : 1
BOOT_CFG[2] : 0 or 1(tried both)
BOOT_CFG[3] : 0
BOOT_CFG[4] : 0
BOOT_CFG[5] : 0
BOOT_CFG[6] : 0
BOOT_CFG[7] : 1
BOOT_CFG[8] : 0
BOOT_CFG[9] : 0
BOOT_CFG[10] : 0
BOOT_MODE[0] is LOW
BOOT_MODE[1] is LOW
We have flashed the image in eMMC using NXP_BOOT_UTILITY tool V3.3.0 and also able to read back the data written to EMMC using the tool, however device fails to boot-up from EMMC.
After flashing the code using boot utility tool, we are keeping the switches for BT_CFG[6], BT_CFG[9], BOOT_MODE[0] and BOOT_MODE [1] in low state. But looks like the internal ROM bootloader is not recognizing the changes made.
We also tried probing the EMMC lines during bootup. Our clock line is via GPIO_SD_B1_04. After making the above changes, we probed the CLK line going to eMMC but couldn’t find any clock signal. However clock for SD1_CLK was still there. Seems like the boot device mode is not switching to eMMC.
Is there anything missing that needs to be done for booting from iMXRT050? Any configuration which needs to be enabled to make it work? Any leads would be appreciated.