From patchwork Thu Sep 27 21:18:38 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [U-Boot] nand: Extending the nand_ecclayout struct based on Linux 3.5 From: Charles Hardin X-Patchwork-Id: 187725 Message-Id: <1348780718-1082-1-git-send-email-ckhardin@exablox.com> To: u-boot@lists.denx.de Cc: Scott Wodd , Charles Hardin , Jeremy Fitzhardinge Date: Thu, 27 Sep 2012 14:18:38 -0700 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 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]; }; /**