Why isn't the eMMC fast-boot failing over to normal boot?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Why isn't the eMMC fast-boot failing over to normal boot?

2,361 Views
hughboddington
Contributor I

We're using an eMMC 4.4.1 chip with our imx.6 design and trying to boot into u-boot using fast-boot mode (BOOT_CFG1[4]=1).  This mode works if the eMMC is in a pre-idle state (i.e., just after power-on reset).  If the imx.6 is reset without cycling power, the eMMC is NOT in pre-idle and therefore cannot enter fast-boot mode.  That's all fine and good, but the imx.6 FRM suggests that if fast-boot mode fails then the eMMC "boots as a normal MMC card from the selected boot partition" (that's a quote from table 8-16 of the FRM).  This isn't happening.  Instead, the imx.6 locks up and won't boot at all.  It's crucial for us that this fail-over behaviour works properly:

Desired behaviour:

Attempt fast-boot -> Fail -> Attempt normal-boot -> Succeed

Observed behaviour:

Attempt fast-boot -> Fail -> Lock up

Am I doing something wrong?  If I manually disable fast-boot mode then the boot process works properly, but I'm not seeing that fast-boot fail-over behaviour.  We do not have a reset pin connected so it's not feasible to enable the hardware eMMC reset (BOOT_CFG1[1]). 

Any thoughts?

Additional information: Our BOOT_CFG is set to 0x0000DC70

Labels (1)
0 Kudos
6 Replies

1,283 Views
igorpadykov
NXP Employee
NXP Employee

Hi Hugh

i.MX6 supports special boot mode with CMD line low and it is described in eMMC
ver.4.4 specification JESD84-A44 sect.7.3.3 Boot operation p.36  as follows:  

"If the CMD line is held LOW for less than 74 clock cycles after power-up before CMD1 is issued, or the
master sends any normal MMC command other than CMD0 with argument 0xFFFFFFFA before initiating
boot mode, the slave shall not respond and shall be locked out of boot mode until the next power cycle or
hardware reset.."

So according to specification it is necessary to power cycle or use eMMC hardware reset signal.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,283 Views
hughboddington
Contributor I

That is all true and I totally agree with you.  However, according to the imx6 FRM (table 8-16 in chapter 8.5.3.2):

"...ROM waits 1 second for data. If BOOT ACK or data was received then eMMC4.3/eMMC4.4 is booted in "Boot mode", otherwise eMMC4.3/eMMC4.4 boots as a normal MMC card from the selected boot partition."

That implies to me that if the eMMC wasn't power cycled or hardware reset, then it will fail to send a BOOT ACK or data and the ROM will fall-back to using the normal boot mode.  Can you confirm?

0 Kudos

1,283 Views
igorpadykov
NXP Employee
NXP Employee

yes i.MX6 fall-back to using the normal boot mode, but at this time

eMMC is already locked and can not respond to processor until power cycle or
hardware reset.

also could you recheck that "Secondary" image and its tag was set correctly as

shown on Table 8-18. Secondary Image Table Format i.MX6DQ Reference Manual
http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf

Best regards
igor

0 Kudos

1,283 Views
jonconsidine
Contributor I

Hi Igor,

Just tackling the same problem here (no reset line). If you were to send CMD0 with argument 0xFFFFFFFA before triggering watchdog2 (e.g. 'reset' from u-boot) would that not correctly reset the eMMC before the iMX6 then tries to initiate the boot sequence?

Regards,

Jon

0 Kudos

1,283 Views
igorpadykov
NXP Employee
NXP Employee

Hi Jon

yes as per eMMC specification:

Reset: CMD0 with argument of 0x00000000 or 0xF0F0F0F0, H/W reset

Best regards
igor

0 Kudos

1,283 Views
jonconsidine
Contributor I

Following on from my own reply(!), as a test I added a new command 'mmc reset' in u-boot which sends CMD0 with argument 0xF0F0F0F0 (as per the JEDEC spec below). If I issue an 'mmc reset' and then a 'reset', the iMX6 boots correctly in fast-boot mode, whereas without the 'mmc reset' command, it hangs as described by @ Hugh Boddington above.

pastedImage_407.png

0 Kudos