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

From: punnaiah choudary kalluri
Date: Mon Mar 23 2015 - 22:35:05 EST


On Fri, Mar 20, 2015 at 4:51 AM, Jeff Lauruhn (jlauruhn)
<jlauruhn@xxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxx] On Behalf Of Punnaiah Choudary Kalluri
> Sent: Thursday, March 19, 2015 1:50 AM
> To: dwmw2@xxxxxxxxxxxxx; computersforpeace@xxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx; shaktib@xxxxxxxxxx; michals@xxxxxxxxxx; linux-mtd@xxxxxxxxxxxxxxxxxxx; kalluripunnaiahchoudary@xxxxxxxxx; 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@xxxxxxxxxx>
> ---
> 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/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/