linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V4 0/9] mtd: add datasheet's ECC information to nand_chip{}
@ 2013-04-26  9:08 Huang Shijie
  2013-04-26  9:08 ` [PATCH V4 1/9] mtd: add more comment for ecc_strength/ecc_size Huang Shijie
                   ` (8 more replies)
  0 siblings, 9 replies; 26+ messages in thread
From: Huang Shijie @ 2013-04-26  9:08 UTC (permalink / raw)
  To: dwmw2; +Cc: dedekind1, computersforpeace, linux-mtd, linux-kernel, 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:
   		This patch adds some comment for the two fields which can be
		treated as the initial semantics.

   2.2) patch 2 ~ patch 5:
	       Parse out the ecc info from the extended parameter page for
	       ONFI nand.
	       
   2.2) patch 6 ~ patch 8:
               Add the ECC info for full-id nand.

   2.3) patch 9
               The gpmi uses the ecc info to set the BCH module. and with this
	       patch set, the gpmi can supports the MT29F64G08CBABA now.

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.
*** BLURB HERE ***

Huang Shijie (9):
  mtd: add more comment for ecc_strength/ecc_size
  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 |  128 +++++++++++++++++++++++++++++++-
 drivers/mtd/nand/nand_base.c           |   85 ++++++++++++++++++++-
 drivers/mtd/nand/nand_ids.c            |    8 +-
 include/linux/mtd/nand.h               |   69 +++++++++++++++++-
 4 files changed, 280 insertions(+), 10 deletions(-)



^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2013-05-15  9:59 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-26  9:08 [PATCH V4 0/9] mtd: add datasheet's ECC information to nand_chip{} Huang Shijie
2013-04-26  9:08 ` [PATCH V4 1/9] mtd: add more comment for ecc_strength/ecc_size Huang Shijie
2013-05-15  7:27   ` Artem Bityutskiy
2013-05-15  7:38     ` Huang Shijie
2013-05-15  7:42       ` Artem Bityutskiy
2013-05-15  8:02         ` Huang Shijie
2013-05-15 10:01           ` Artem Bityutskiy
2013-04-26  9:08 ` [PATCH V4 2/9] mtd: add data structures for Extended Parameter Page Huang Shijie
2013-05-02  7:42   ` Gupta, Pekon
2013-04-26  9:08 ` [PATCH V4 3/9] mtd: add a helper to get the supported features for ONFI nand Huang Shijie
2013-04-26  9:08 ` [PATCH V4 4/9] mtd: get the ECC info from the Extended Parameter Page Huang Shijie
2013-05-02  7:43   ` Gupta, Pekon
2013-05-02 23:39   ` Brian Norris
2013-05-03  2:52     ` Huang Shijie
2013-04-26  9:08 ` [PATCH V4 5/9] mtd: replace the hardcode with the onfi_feature() Huang Shijie
2013-04-30 10:04   ` Gupta, Pekon
2013-05-02  2:14     ` Huang Shijie
2013-05-02  5:42       ` Gupta, Pekon
2013-05-02  6:01         ` Huang Shijie
2013-05-02  6:17           ` Gupta, Pekon
2013-05-02  6:48             ` Huang Shijie
2013-05-02 21:24               ` Brian Norris
2013-04-26  9:08 ` [PATCH V4 6/9] mtd: add ECC info for nand_flash_dev{} Huang Shijie
2013-04-26  9:08 ` [PATCH V4 7/9] mtd: parse out the ECC info for the full-id nand chips Huang Shijie
2013-04-26  9:08 ` [PATCH V4 8/9] mtd: add the ecc info for some " Huang Shijie
2013-04-26  9:08 ` [PATCH V4 9/9] mtd: gpmi: set the BCH's geometry with the ecc info Huang Shijie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).