mtd: add new ATO slc nand support
authorYi Zeng <yi.zeng@amlogic.com>
Fri, 13 Jul 2018 07:33:31 +0000 (15:33 +0800)
committerYixun Lan <yixun.lan@amlogic.com>
Wed, 18 Jul 2018 07:50:27 +0000 (00:50 -0700)
PD#170048: mtd: add new ATO slc nand support

add a ATO slc nand: AFND2G08U3A

Change-Id: I0263682231008c862c9f3f77d02ef7512de3a46f
Signed-off-by: Yi Zeng <yi.zeng@amlogic.com>
drivers/amlogic/mtd/nand_flash.c
drivers/amlogic/mtd/rsv_manage.c

index 72b2a3daced8e2fd43d1313d24df79304ff2129f..206e615aaaea0aea3ac59d3377e4d4c6a97744de 100644 (file)
@@ -275,6 +275,19 @@ struct aml_nand_flash_dev aml_nand_flash_ids[] = {
                0,
                (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)},
 
+       {"ATO NAND AFND2G08U3A 2Gb",
+               {NAND_MFR_HYNIX, 0xda, 0x90, 0x95, 0x46, 0xad},
+               2048,
+               256,
+               0x20000,
+               64,
+               1,
+               20,
+               15,
+               0,
+               0,
+               (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)},
+
        {"A revision NAND 1GiB sF1G-A",
                {NAND_MFR_AMD, 0xf1, 0x80, 0x1d, 0x01, 0xf1},
                2048,
index d7d3d6d30421928fb395339d2c320b4080fa9f1c..72d9e048fad622d24dd380ba5454f207a07d103f 100644 (file)
@@ -309,7 +309,8 @@ int aml_nand_scan_shipped_bbt(struct mtd_info *mtd)
                }
 
                if (aml_chip->mfr_type  == NAND_MFR_DOSILICON ||
-                   aml_chip->mfr_type  == NAND_MFR_ATO) {
+                   aml_chip->mfr_type  == NAND_MFR_ATO ||
+                       aml_chip->mfr_type  == NAND_MFR_HYNIX) {
                        if (col0_oob != 0xFF) {
                                pr_info("factory Bad blk:%llx blk=%d chip=%d\n",
                                       (uint64_t)addr, start_blk, i);
@@ -381,31 +382,6 @@ int aml_nand_scan_shipped_bbt(struct mtd_info *mtd)
                                break;
                        }
                }
-
-       if (aml_chip->mfr_type  == NAND_MFR_HYNIX) {
-               if (col0_oob != 0xFF) {
-                       pr_info("factory Bad blk:%llx blk=%d chip=%d\n",
-                               (uint64_t)addr, start_blk, i);
-               aml_chip->nand_bbt_info->nand_bbt[bad_blk_cnt++] =
-                       start_blk|0x8000;
-               aml_chip->block_status[start_blk] = NAND_FACTORY_BAD;
-               /* if  plane 0 is bad block,just set plane 1 to bad */
-               if ((start_blk % 2) == 0) {
-                       start_blk += 1;
-                       aml_chip->nand_bbt_info->nand_bbt[bad_blk_cnt++] =
-                               start_blk|0x8000;
-                       aml_chip->block_status[start_blk] = NAND_FACTORY_BAD;
-                       pr_info(" pl0 is bad block,just set plane 1 to bad:\n");
-               } else {
-                       aml_chip->nand_bbt_info->nand_bbt[bad_blk_cnt++] =
-                               (start_blk - 1)|0x8000;
-                       aml_chip->block_status[start_blk - 1] =
-                               NAND_FACTORY_BAD;
-                       pr_info(" pl1 is bad block,just set plane 0 to bad:\n");
-               }
-                       break;
-               }
-       }
        }
                }
                /* } */