AnsweredAssumed Answered

NAND REWORK on MCIMX6ULL-EVK(MT29F8G08ABACAWP)

Question asked by alex zhu on Jun 25, 2018
Latest reply on Oct 24, 2018 by alex zhu

Dear NXP:
I am doing nand bring up on MCIMX6ULL-EVK board now.
The nand is "Micron MT29F8G08ABACAWP-ITC".

(1)Hardware-side finished work:
a)According to "i.MX 6ULL EVK Board Hardware User's Guide -IMX6ULLEVKHUG.pdf":
2.8. NAND flash
NAND flash is not populated by default on the i.MX 6ULL EVK board. To boot from the NAND flash, the following reworks should be implemented:
1. Remove the QSPI Nor flash device
2. Populate the NAND device
3. Change the Boot-mode switch (SW601) settings to ON, ON, OFF, ON
4. The developer should adjust the BOOT_CFG settings for specified NAND Flash device, by exchanging the pull up/down resistors. See the main board schematic for more information.
b)According to FUSE MAP(Boot Cfg) on EVK board Schematics:
Note: Action: N/A means do nothing, the resistors have been welded by default on EVK!
******************************************************************************************************************
                  BOOT_CFG1[7]             BOOT_CFG1[6]            BOOT_CFG1[5:4]          BOOT_CFG1[3:2]           
                  Boot device selection    BT_TOGGLEMODE      Pages in block                Nand Number of Devices 

                         1                                 0-raw NAND                       01-64                              00-1 
Action              N/A                                    N/A                          remove R619                        N/A  

 

                   BOOT_CFG1[1:0] 

               Nand Row address bytes

                      00-3

 Action    move R623 to R632, remove R624 

******************************************************************************************************************

(Other BOOT CFG such as BOOT_CFG2, used default setting.)

 

(2)Software-side:
uboot version: imx_v2016.03_4.1.15_2.0.0_ga
kernel version: imx_4.9.11_1.0.0_ga
MFGTOOLS: L4.1.15_2.0.0-ga_mfg-tools
We have prepared flash images:
u-boot-imx6ull14x14evk_nand.imx, zImage, zImage-imx6ull-14x14-evk-gpmi-weim.dtb, rootfs.tar.bz2
Then used mfgtools "mfgtool2-yocto-mx-evk-nand.vbs" to flash. According to the log, uboot nand driver read nand MANUFACTURE ID && DEVICE ID failed, read id result was all 0xff, for this nand chip, it should be 0x2c && 0xd3.
Recognize nand chip failed. (maf_id, dev_id)
Below is my nand-rework patch:
(2-1)uboot:
2-1-1)
diff --git a/include/configs/mx6ullevk.h b/include/configs/mx6ullevk.h
index ad8afad..89ff52c 100644
--- a/include/configs/mx6ullevk.h
+++ b/include/configs/mx6ullevk.h
@@ -120,7 +120,7 @@
"bootargs=console=ttymxc0,115200 ubi.mtd=4 " \
"root=ubi0:rootfs rootfstype=ubifs " \
CONFIG_BOOTARGS_CMA_SIZE \
- "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
+ "mtdparts=gpmi-nand:64m(boot),16m(user1),16m(logo),8m(kernel),1m(dtb),800m(rootfs)\0"\
"bootcmd=nand read ${loadaddr} 0x4000000 0x800000;"\
"nand read ${fdt_addr} 0x5000000 0x100000;"\
"bootz ${loadaddr} - ${fdt_addr}\0"

2-1-2)
diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
index fdd0074..f1ce7f9 100644
--- a/drivers/mtd/nand/nand_ids.c
+++ b/drivers/mtd/nand/nand_ids.c
@@ -41,6 +41,9 @@ struct nand_flash_dev nand_flash_ids[] = {
* listed by full ID. We list them first so that we can easily identify
* the most specific match.
*/
+ {"MT29F8G08ABACAWP 8G 3.3V 8-bit",
+ { .id = {0x2c, 0xd3} },
+ SZ_4K, SZ_1K, SZ_256K, 0, 8, 224, NAND_ECC_INFO(4, SZ_512) },
{"TC58NVG2S0F 4G 3.3V 8-bit",
{ .id = {0x98, 0xdc, 0x90, 0x26, 0x76, 0x15, 0x01, 0x08} },
SZ_4K, SZ_512, SZ_256K, 0, 8, 224, NAND_ECC_INFO(4, SZ_512) },

(2-2)kernel:
diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
index 2af9869..823a65e 100644
--- a/drivers/mtd/nand/nand_ids.c
+++ b/drivers/mtd/nand/nand_ids.c
@@ -29,6 +29,9 @@ struct nand_flash_dev nand_flash_ids[] = {
* listed by full ID. We list them first so that we can easily identify
* the most specific match.
*/
+ {"MT29F8G08ABACAWP 8G 3.3V 8-bit",
+ { .id = {0x2c, 0xd3} },
+ SZ_4K, SZ_1K, SZ_256K, 0, 8, 224, NAND_ECC_INFO(8, SZ_1K) },
{"TC58NVG0S3E 1G 3.3V 8-bit",
{ .id = {0x98, 0xd1, 0x90, 0x15, 0x76, 0x14, 0x01, 0x00} },
SZ_2K, SZ_128, SZ_128K, 0, 8, 64, NAND_ECC_INFO(1, SZ_512),


My questions were below:
1) Dose MCIMX6ULL-EVK support "Micron MT29F8G08ABACAWP-ITC"? (see attached datasheet)
2) HW-Rework was ok? Is there any method that could be used to check rework was ok from hw-side?
3) SW patch was ok? Any patch was missed? (attached log for fail details)

 

Thanks a lot!

Outcomes