[PATCH v6 00/10] mtd: add datasheet's ECC information to nand_chip{}
Huang Shijie
shijie8 at gmail.com
Fri Jul 5 00:00:04 EDT 2013
于 2013年05月16日 23:17, Huang Shijie 写道:
> 1.) Why add the ECC information to the nand_chip{} ?
> Each nand chip has its requirement for the ECC correctability, such as
> "4bit ECC for each 512Byte" or "40bit ECC for each 1024Byte".
> This ECC info is very important to the nand controller, such as gpmi.
>
> Take the Micron MT29F64G08CBABA for example, its geometry is
> 8k page size, 744 bytes oob size and it requires 40bit ECC per 1K bytes.
> If we do not provide the ECC info to the gpmi nand driver, it has to
> calculate the ECC correctability itself. The gpmi driver will gets the 56bit
> ECC for per 1K bytes which is beyond its BCH's 40bit ecc capibility.
> The gpmi will quits in this case. But in actually, the gpmi can supports
> this nand chip if it can get the right ECC info.
>
> 2.) About the patch set:
> 2.1) patch 1:
> The keynote patch.
>
> 2.2) patch 2 ~ patch 6:
> These patches are for ONFI nand.
> Parse out the ecc info from the parameter page if we can, else
> parse out the ecc info from the extended parameter page.
>
> 2.2) patch 7 ~ patch 9:
> Add the ECC info for full-id nand, and parse it out.
>
> 2.3) patch 10
> The gpmi uses the ecc info to set the BCH module. and with this
> patch set, the gpmi can supports the MT29F64G08CBABA now.
>
> v5 --> v6:
> [0] rename the ecc_strength/ecc_step to ecc_strength_ds/ecc_step_ds.
> [1] fix a case when "the codeword is 0".
> [2] fix typo.
> [3] add the 'O' to the diagram in the gpmi patch.
>
> v4 --> v5:
> [0] rebase the new l2-mtd(dropped the 3 merged patches).
> [1] rename ecc_size to ecc_step.
> [2] change the comment for the new fields.
>
> v3 --> v4:
> [0] remove the printk for "out of memory".
> [1] remove the hardcode nand_command_lp(). Update the chip->cmd_func
> before we call the nand_flash_detect_ext_param_page().
> [2] split the ecc_info to two fields for full id nand.
> [3] update the comments for ecc_strength/ecc_size (from Brian).
>
> v2 --> v3:
> [0] add a new patch to define the semantics of the two fields.
> [1] Use the Change Read Column command to remove the "last" argument.
> [2] simplify the onfi_feature().
> [3] Use kmalloc() to replace kcalloc().
> [4] others.
>
> v1 --> v2:
> [0] Since the first 3 patches are accepted, I do not send them in the
> version 2.
> [1] add NAND_ prefix for macros used by the full-id nands.
> [2] add onfi_ prefix for the extend parameter page data structures.
> [3] rename the onfi_get_feature() to onfi_feature().
> [4] I re-test this patch set again.
>
> Huang Shijie (10):
> mtd: add datasheet's ECC information to nand_chip{}
> mtd: get the ECC info from the parameter page for ONFI nand
> mtd: add data structures for Extended Parameter Page
> mtd: add a helper to get the supported features for ONFI nand
> mtd: get the ECC info from the Extended Parameter Page
> mtd: replace the hardcode with the onfi_feature()
> mtd: add ECC info for nand_flash_dev{}
> mtd: parse out the ECC info for the full-id nand chips
> mtd: add the ecc info for some full-id nand chips
> mtd: gpmi: set the BCH's geometry with the ecc info
>
> drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 132 +++++++++++++++++++++++++++++++-
> drivers/mtd/nand/nand_base.c | 93 ++++++++++++++++++++++-
> drivers/mtd/nand/nand_ids.c | 8 +-
> include/linux/mtd/nand.h | 72 +++++++++++++++++-
> 4 files changed, 296 insertions(+), 9 deletions(-)
>
Hi Artem:
Could you merge this patch set?
thanks
Huang Shijie
More information about the linux-mtd
mailing list