i.MX7 NAND boot issue

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

i.MX7 NAND boot issue

1,413 Views
phillipsteinhof
Contributor I

I am having an issue booting an i.MX7 from NAND FLASH.

The MFG tool is being used to program the NAND. The external GPIO boot config is set to NAND. The U-Boot is not booting from the NAND.

The U-Boot code set for the NXP MCIMX7SABRE EVM board does not have NAND fully supported.

The example code mx7dsabresd.c has a block of code with a TODO: NAND in it.

static const struct boot_mode board_boot_modes[] = {

    /* 4 bit bus width */

    {"sd1", MAKE_CFGVAL(0x10, 0x10, 0x00, 0x00)},

    {"emmc", MAKE_CFGVAL(0x10, 0x2a, 0x00, 0x00)},

    /* TODO: Nand */

    {"qspi", MAKE_CFGVAL(0x00, 0x40, 0x00, 0x00)},

    {NULL,   0},

};

Does anyone know the values for MAKE_CFGVAL entires for NAND?

Or how these values are determined?

Thank you.

Phil

Labels (1)
Tags (1)
0 Kudos
3 Replies

676 Views
art
NXP Employee
NXP Employee

Actually, the values of this struct just repeat the values of BT_CFG[19:0] signals for some reason. For regular boot, two upper bytes are always all 0s, for NAND Flash boot the second byte is 0x3y, where y depends on the NAND Flash type according to the table below, the first byte can be left also all 0s or refer to the table below.

pastedImage_4.png


Have a great day,
Artur

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

676 Views
phillipsteinhof
Contributor I

I was able to find some additional information with the help from a friend. The following is my understanding of the interface extension.

It seems that this is a new feature and the documentation for it is still being developed.

This feature provides an interface to allow additional boot media that is not part of the normal fuse or GPIO.

The SRC_GPR10[28] and SRC_GPR9 are part of the feature setup.

The NAND is already part of the normal interface provided by the fuse or GPIO. The BOOT_CFG passed to the hardware during boot were used to define the MAKE_CFGVAL for this extended interface. The NAND boot cfg2 is 0x30, the other values were zero to allow this interface to also use the NAND.

0 Kudos

676 Views
kevinmu
Contributor I

Hi Phil,

do you solve this issue? I have the same issue as yours. I change the boot config to the setting of boot from nand following to the boot table, and mount an empty nand device on board, but when I plugin SD card, my board still boot up from sd card.

Thanks. 

0 Kudos