I was asking about the imx6q "eMMC fast boot" option section 8.5.3.1 of the user manual reports.
It can be set with BOOT_CFG1[4]. I tried this, but have no boot anymore. Seems my eMMC (MTFC16GJDDQ-4M IT) is simply not supporting this mode. If you could confirm this would be nice so i can close this task.
What i don't understand here, is that Freescale refers, inside 8.5.3.1 of iMX6q user manual, to an "eMMC Fast Boot" feature that i can't find in any of the Micron datasheets. Micron datasheet (TN-52-06, public) describes details of 2 boot modes, Boot Operation and Alternate Boot Operation.
I am supposing this "fast boot" mode match with the "boot ack" feature of micron datasheets. If so, this mode shouldn't cause any fast-up.
Also, another mistery is how to set ECSD[179] of the eMMC, since i am supposing this should be done from ROM bootloader.
i can be completely wrong, but i see at least 2 probable errors in the i.mx 6D/6Q Processor Reference Manual (datasheet):
1) both You and the datasheet say that BOOT_CFG2[1] must be set (so for me set is level 1) to enable Boot Acknowledge.
But datasheet reports "BOOT_CFG2[1] = 1 means Boot Acknowledge Disabled".
2) first eMMC boot diagram (page 408) shows that if Fast Boot is set, execution moves to (6), fast boot happen, and then flow moves back to (2).
But at the end of (2) (page 409), flow moves to (4), normal data read. This (4) part should not happen for Fast Boot, since data has already be read at (6).
Then, i see confusion in the Fast Boot meaning, some time called "Special Boot Mode or Boot Mode", as in page 407. Micron datasheet TN-52-06 refers to Boot Mode or Alternative Boot Mode, that seems to be both Fast Boot modes.
Then, again, there is a "Boot Acknowledge" enable/disable (BOOT_CFG2[1]), and an "eMMC Fast Boot Acknowledge" enable / disable (BOOT_CFG1[2]). The difference is not clear.
i have "maybe" emmc fast boot working, booting from mmcblk0boot0, just programming u-boot.imx into mmcblk0boot0 (at offset 0x400) and setting EXT_CSD[179] to 8.
BOOT_CFG1[4] btw must be not set. If i set it, nothing work anymore. Why ?