[PATCH] mtd: Expand the ecc placement locations to 1260

punnaiah choudary kalluri punnaia at xilinx.com
Mon Mar 23 19:34:55 PDT 2015


On Fri, Mar 20, 2015 at 4:51 AM, Jeff Lauruhn (jlauruhn)
<jlauruhn at micron.com> wrote:
> This device has a Page size x8: 17,600 bytes (16,384 + 1216 bytes) and minimum required ECC 24-bit ECC per 1100 bytes of data.  Spare area needed for ECC would be ECC * M, where M is (codeword <= 2^m-1).  In this case M=14, because (1100*8)<=2^14-1, therefore minimum spare area needed is 14*24 = 336b or 42B per codeword.  So for this device a minimum of 672bytes of the 1216 need to be used for ECC, the rest can be used for other purposes.
>

Ok. Does it mean increasing the size to 672 bytes will be enough ?
I see that 672 bytes is the minimum required size for 24 bit ecc. There
may be controllers that may detect errors beyond 24 bit and would require
more number of  ecc bytes per codeword. So, i configured the ecc position
value to max oobsize and i believe this change is needed.

Regards,
Punnaiah
>
>
> Jeff Lauruhn
> NAND Application Engineer
>
>
> -----Original Message-----
> From: linux-mtd [mailto:linux-mtd-bounces at lists.infradead.org] On Behalf Of Punnaiah Choudary Kalluri
> Sent: Thursday, March 19, 2015 1:50 AM
> To: dwmw2 at infradead.org; computersforpeace at gmail.com
> Cc: linux-kernel at vger.kernel.org; shaktib at xilinx.com; michals at xilinx.com; linux-mtd at lists.infradead.org; kalluripunnaiahchoudary at gmail.com; Punnaiah Choudary Kalluri
> Subject: [PATCH] mtd: Expand the ecc placement locations to 1260
>
> Device like MT29F32G08ABCDBJ4 have a writesize/oobsize of 16K/1260 Bytes.
> So, increasing the maximum ecc placement locations to 1260
>
> Signed-off-by: Punnaiah Choudary Kalluri <punnaia at xilinx.com>
> ---
>  include/linux/mtd/mtd.h |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index f17fa75..e73d85b 100644
> --- a/include/linux/mtd/mtd.h
> +++ b/include/linux/mtd/mtd.h
> @@ -95,7 +95,7 @@ struct mtd_oob_ops {
>  };
>
>  #define MTD_MAX_OOBFREE_ENTRIES_LARGE  32
> -#define MTD_MAX_ECCPOS_ENTRIES_LARGE   640
> +#define MTD_MAX_ECCPOS_ENTRIES_LARGE   1260
>  /*
>   * Internal ECC layout control structure. For historical reasons, there is a
>   * similar, smaller struct nand_ecclayout_user (in mtd-abi.h) that is retained
> --
> 1.7.4
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/



More information about the linux-mtd mailing list