于 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to