于 2011年12月13日 05:09, Artem Bityutskiy 写道:
On Tue, 2011-12-06 at 18:09 -0600, Scott Wood wrote:
On 12/03/2011 10:31 PM, shuo....@freescale.com wrote:
From: Liu Shuo<shuo....@freescale.com>

Freescale FCM controller has a 2K size limitation of buffer RAM. In order
to support the Nand flash chip whose page size is larger than 2K bytes,
we read/write 2k data repeatedly by issuing FIR_OP_RB/FIR_OP_WB and save
them to a large buffer.

Signed-off-by: Liu Shuo<shuo....@freescale.com>
---
v3:
     -remove page_size of struct fsl_elbc_mtd.
     -do a oob write by NAND_CMD_RNDIN.

  drivers/mtd/nand/fsl_elbc_nand.c |  243 ++++++++++++++++++++++++++++++++++----
  1 files changed, 218 insertions(+), 25 deletions(-)
What is the plan for bad block marker migration.
I think we can use a special bbt pattern to indicate whether migration has been done.
(we needn't to define another marker)

Do the migration our chip->scan_bbt as follow :

/*
 * this pattern indicate that the bad block information has been migrated,
 * if this isn't found, we do the migration.
 */
static u8 migrated_bbt_pattern[] = {'M', 'b', 'b', 't', '0' };

static int fsl_elbc_bbt(struct mtd_info *mtd)
{
        if (!check_migrated_bbt_pattern())
            bad_block_info_migtrate();

         nand_default_bbt(mtd); /* default function in nand_bbt.c */
}

- LiuShuo

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to