AnsweredAssumed Answered

i.MXRT eMMC boot

Question asked by Anders Esbensen on Aug 15, 2018
Latest reply on Oct 22, 2019 by Richard Tucker
Branched to a new discussion



I am having problems getting  i.MXRT to boot from eMMC.  My current setup is the EVB with an uSD to eMMC converter connected in the uSD socket (J20).


I am able to communicate with the eMMC from my application code if i load it into hyperflash. So HW setup should be fine.


With help from the forum i managed to create an image that i can program to SD with MFGTool, and afterwards boot  from SD, but when i switch to eMMC, MFGTool fails during programming with the following in the log.


ModuleID[2] LevelID[1]: Program Boot image [WndIndex:0] {
"command" : "receive-sb-file",
"response" : [],
"status" : {
"description" : "1812 (0x714) Send Operation Condition failed",
"value" : 1812

I have the following emmc config in my bd file.

# The source block assign file name to identifiers
sources {
myBootImageFile = extern (0);

# The section block specifies the sequence of boot commands to be written to the SB file
section (0) {

#1. Prepare MMC Card option block
#Load : 1 bit SDR, Normal Speed, Boot partition 1.
#Boot : Boot partition 1, 1 bit SDR, normal speed

# 1bit SDR, Normal Speed, Boot partition 1.
load 0xC1100001 > 0x100;
load 0x00000000 > 0x104;

#2. Configure MMC Card
enable mmccard 0x100;

#3. Erase blocks as needed.
erase mmccard 0x400..0x100000;

#4. Program MMC Card Image offset 0x400
load mmccard myBootImageFile > 0x400;

#5. Program Efuse for optimal read performance (optional)
#load fuse 0x00000000 > 0x07;



I also tried using blhost directly with the follwing result:


>blhost -u 0x15a2,0x0073 fill-memory 0x20000000 0x4 0xC0000000
  Inject command 'fill-memory'
  Successful generic response to command 'fill-memory'
  Response status = 0 (0x0) Success.

>blhost -u 0x15a2,0x0073 fill-memory 0x20000004 0x4 0x00040000
  Inject command 'fill-memory'
  Successful generic response to command 'fill-memory'
  Response status = 0 (0x0) Success.

>blhost -u 0x15a2,0x0073 configure-memory 0x121 0x20000000
  Inject command 'configure-memory'
  Response status = 1812 (0x714) Send Operation Condition failed


To me it looks like the bootloader isn't able to communicate with the card at all. Since the eMMC is connected to the uSD socket (J20), it is fixed to 3V mode. I wonder if the bootloader will try switch to 1V8 during the card init, and that would cause the communication to fail.


Anybody succesully programmed an EMMC card with MfgTool og blhost on iMXRT ?


Is source code for the MCUX flash loader available ?