[U-Boot] [PATCH] nand: Extending the nand_ecclayout struct based on Linux 3.5

NANDs with large page sizes are getting oob ares of 218 and 224 so the eccpos field needs to support these larger areas since BCH ECC correction with 24-bit over 1024 bytes will use 168 bytes of the oob for ECC and is required for current MLC NAND parts circa 2012.
Signed-off-by: Charles Hardin ckhardin@exablox.com
diff --git a/include/linux/mtd/mtd-abi.h b/include/linux/mtd/mtd-abi.h index 1e7a18f..c321d6b 100644 --- a/include/linux/mtd/mtd-abi.h +++ b/include/linux/mtd/mtd-abi.h @@ -116,16 +116,17 @@ struct nand_oobfree { uint32_t length; };
-#define MTD_MAX_OOBFREE_ENTRIES 8 +#define MTD_MAX_OOBFREE_ENTRIES_LARGE 32 +#define MTD_MAX_ECCPOS_ENTRIES_LARGE 448 /* * ECC layout control structure. Exported to userspace for * diagnosis and to allow creation of raw images */ struct nand_ecclayout { uint32_t eccbytes; - uint32_t eccpos[128]; + uint32_t eccpos[MTD_MAX_ECCPOS_ENTRIES_LARGE]; uint32_t oobavail; - struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES]; + struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES_LARGE]; };
/**

On Thu, Sep 27, 2012 at 11:18:38AM -0000, Charles Hardin wrote:
NANDs with large page sizes are getting oob ares of 218 and 224 so the eccpos field needs to support these larger areas since BCH ECC correction with 24-bit over 1024 bytes will use 168 bytes of the oob for ECC and is required for current MLC NAND parts circa 2012.
Signed-off-by: Charles Hardin ckhardin@exablox.com
Applied to u-boot-nand-flash
-Scott

On 11/15/2012 06:05:35 PM, Scott Wood wrote:
On Thu, Sep 27, 2012 at 11:18:38AM -0000, Charles Hardin wrote:
NANDs with large page sizes are getting oob ares of 218 and 224 so the eccpos field needs to support these larger areas since BCH ECC correction with 24-bit over 1024 bytes will use 168 bytes of the oob for ECC and is required for current MLC NAND parts circa 2012.
Signed-off-by: Charles Hardin ckhardin@exablox.com
Applied to u-boot-nand-flash
Unapplied.
It breaks cam_enc_4xx by making the BSS too large (please work with the maintainer of this board, Heiko Schocher, to find a solution).
It breaks various onenand boards (such as nhk8815) because they refer to MTD_MAX_OOBFREE_ENTRIES but you didn't fix the users.
-Scott
participants (2)
-
Charles Hardin
-
Scott Wood