mtd: nand: omap: add support for BCH16_ECC - NAND driver updates
authorpekon gupta <pekon@ti.com>
Mon, 2 Jun 2014 11:44:42 +0000 (17:14 +0530)
committerTom Rini <trini@ti.com>
Fri, 6 Jun 2014 21:46:10 +0000 (17:46 -0400)
commit46840f66caf564866d191886d2bd86742f982010
treeaa719a57b1c9745b9cd00e9e44f283046f79c7a2
parent8d13a730dea1b5b4d32b31b5584cb8fdea27a248
mtd: nand: omap: add support for BCH16_ECC - NAND driver updates

This patch add support for BCH16_ECC to omap_gpmc driver.

*need to BCH16 ECC scheme*
With newer SLC Flash technologies and MLC NAND, and large densities, pagesizes
Flash devices have become more suspectible to bit-flips. Thus stronger
ECC schemes are required for protecting the data.
But stronger ECC schemes have come with larger-sized ECC syndromes which require
more space in OOB/Spare. This puts constrains like;
(a) BCH16_ECC can correct 16 bit-flips per 512Bytes of data.
(b) BCH16_ECC generates 26-bytes of ECC syndrome / 512B.
Due to (b) this scheme can only be used with NAND devices which have enough
OOB to satisfy following equation:
OOBsize per page >= 26 * (page-size / 512)

Signed-off-by: Pekon Gupta <pekon@ti.com>
drivers/mtd/nand/omap_gpmc.c
include/linux/mtd/omap_gpmc.h