From 5a8f3c6232ee5bdde6fcdbbab9f17cecd8eff017 Mon Sep 17 00:00:00 2001 From: Yi Zeng Date: Fri, 13 Jul 2018 15:33:31 +0800 Subject: [PATCH] mtd: add new ATO slc nand support PD#170048: mtd: add new ATO slc nand support add a ATO slc nand: AFND2G08U3A Change-Id: I0263682231008c862c9f3f77d02ef7512de3a46f Signed-off-by: Yi Zeng --- drivers/amlogic/mtd/nand_flash.c | 13 +++++++++++++ drivers/amlogic/mtd/rsv_manage.c | 28 ++-------------------------- 2 files changed, 15 insertions(+), 26 deletions(-) diff --git a/drivers/amlogic/mtd/nand_flash.c b/drivers/amlogic/mtd/nand_flash.c index 72b2a3daced8..206e615aaaea 100644 --- a/drivers/amlogic/mtd/nand_flash.c +++ b/drivers/amlogic/mtd/nand_flash.c @@ -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, diff --git a/drivers/amlogic/mtd/rsv_manage.c b/drivers/amlogic/mtd/rsv_manage.c index d7d3d6d30421..72d9e048fad6 100644 --- a/drivers/amlogic/mtd/rsv_manage.c +++ b/drivers/amlogic/mtd/rsv_manage.c @@ -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; - } - } } } /* } */