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

Charles Hardin ckhardin at exablox.com
Thu Sep 27 23:18:38 CEST 2012


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 at 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];
 };
 
 /**


More information about the U-Boot mailing list