Dear all,
i am wandering what is the gain enabling, as section 8.5.3.1 of the user manual reports, the eMMC fast boot.
Also how can i measure this gain.
My application just load a minimal boot loader and then Linux, so i am not sure the fast boot can improve or
even decrease the boot performance comparing current default normal boot.
Every suggestion is welcome.
Regards
A
Hi angelo
according to links below it significantly improves boot time
Linux Fast Boot on i.MX6 Sabresd Board
Linux Fast Boot on i.MX6Q Board: Building Steps
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
HI Igor, thanks.
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.
Best regards,
Angelo
Hi Angelo
eMMC MTFC16GJDDQ-4M datasheet is not publicly available,
in general one needs to verify that BOOT_CFG2[1] Boot Acknowledge and eMMC
ECSD[179] bit 6 should be set both to make device send this acknowledge during fast boot,
for booting from emmc one can look at
https://community.freescale.com/thread/306880
For eMMC fast boot, the bootloader should be programmed to the specified boot partition.
MMC partitions are treated effectively as separate block devices on the same MMC card.
Boot partition access howto:
-To enable write access to /dev/mmcblkXbootY, disable the forced read-only access with:
echo 0 > /sys/block/mmcblkXbootY/force_ro
-To re-enable read-only access:
echo 1 > /sys/block/mmcblkXbootY/force_ro
e.x:
root@freescale ~$ ls /dev/mmc*
/dev/mmcblk0 /dev/mmcblk0boot0 /dev/mmcblk0boot1 /dev/mmcblk0p1
root@freescale ~$ ls /dev/mmc*
/dev/mmcblk0 /dev/mmcblk0boot0 /dev/mmcblk0boot1 /dev/mmcblk0p1
there would be one boot partitions on mx6sl evk board.
mmcblk0boot0.
after run echo 0 > /sys/block/mmcblk0boot0/force_ro, then dd cmd can be used to program the bootloader directly.
if want to enable eMMC fast boot, the boot_config must be set to 0x08:
echo 8 > /sys/devices/platform/sdhci-esdhc-imx.1/mmc_host/mmc1/mmc1:0001/boot_config
so the process is as follows:
echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=uboot.bin of=/dev/mmcblk0boot0 bs=512 seek=2 skip=2
echo 1 > /sys/block/mmcblk0boot0/force_ro
echo 8 > /sys/devices/platform/sdhci-esdhc-imx.1/mmc_host/mmc1/mmc1:0001/boot_config
Best regards
igor
Hi Igor,
many thanks for your very kind support.
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.
Best regards
Angelo
Hi Hi Angelo
this bit is nonvolatile, as described in Micron
tn2918.pdf Table 2: Boot Partition Enable: Extended CSD Register Byte 179,
imho one can find patches for programming on web, like below
Best regards
igor
Hi Igor,
many thanks i will try as you say, but:
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.
Best regards
Angelo
Hi,
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 ?
Best regards
Angelo