imx6q, eMMC fast boot

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

imx6q, eMMC fast boot

10,291 Views
angelo_d
Senior Contributor I

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

Labels (1)
8 Replies

3,033 Views
igorpadykov
NXP Employee
NXP Employee

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!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos

3,033 Views
angelo_d
Senior Contributor I

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

0 Kudos

3,032 Views
igorpadykov
NXP Employee
NXP Employee

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

3,032 Views
angelo_d
Senior Contributor I

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

0 Kudos

3,033 Views
igorpadykov
NXP Employee
NXP Employee

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

https://github.com/beagleboard/meta-beagleboard/blob/master/common-bsp/recipes-bsp/u-boot/u-boot-den...

Best regards

igor

3,033 Views
angelo_d
Senior Contributor I

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

0 Kudos

3,033 Views
angelo_d
Senior Contributor I

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

0 Kudos

3,033 Views
angelo_d
Senior Contributor I

Hi all,

please check here for further info

imx6q eMMC Fast Boot, someone using it can help ?

0 Kudos