]> git.baikalelectronics.ru Git - kernel.git/commit
mtd: at91: atmel_nand: add Programmable Multibit ECC controller support
authorJosh Wu <josh.wu@atmel.com>
Fri, 29 Jun 2012 09:47:55 +0000 (17:47 +0800)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 6 Jul 2012 17:23:25 +0000 (18:23 +0100)
commit327c4cbb07fecb01e72576b844dad59fc0c8a178
tree7041d310f5dde2d745908a89418da814d28e8460
parent34b6dd0dcdd7833058c767cb28da2d7886607e4e
mtd: at91: atmel_nand: add Programmable Multibit ECC controller support

The Programmable Multibit ECC (PMECC) controller is a programmable binary
BCH(Bose, Chaudhuri and Hocquenghem) encoder and decoder. This controller
can be used to support both SLC and MLC NAND Flash devices. It supports to
generate ECC to correct 2, 4, 8, 12 or 24 bits of error per sector of data.

To use PMECC in this driver, the user needs to set the address and size of
PMECC, PMECC error location controllers and ROM. And also needs to pass the
correction capability, the sector size and ROM lookup table offsets via dt.

This driver has been tested on AT91SAM9X5-EK and AT91SAM9N12-EK with JFFS2,
YAFFS2, UBIFS and mtd-utils.

Signed-off-by: Hong Xu <hong.xu@atmel.com>
Signed-off-by: Josh Wu <josh.wu@atmel.com>
Tested-by: Richard Genoud <richard.genoud@gmail.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/atmel_nand.c
drivers/mtd/nand/atmel_nand_ecc.h