mtd: nand: vf610_nfc: add hardware BCH-ECC support
authorStefan Agner <stefan@agner.ch>
Thu, 3 Sep 2015 01:06:34 +0000 (18:06 -0700)
committerBrian Norris <computersforpeace@gmail.com>
Tue, 29 Sep 2015 20:47:58 +0000 (13:47 -0700)
commit049f42509973b86f0015e2c1c38d4c79aea408f5
treeb003801ba0cee3ab3687877ced4e4c8b4d1f7166
parent456930d80a2da129974640dc0238d5380597e172
mtd: nand: vf610_nfc: add hardware BCH-ECC support

This adds hardware ECC support using the BCH encoder in the NFC IP.
The ECC encoder supports up to 32-bit correction by using 60 error
correction bytes. There is no sub-page ECC step, ECC is calculated
always across the whole page (up to 2k pages).

Limitations:
- HW ECC: Only 2K page with 64+ OOB.
- HW ECC: Only 24 and 32-bit error correction implemented.

Raw writes have been tested using the generic nand_write_page_raw
implementation. However, raw reads are currently not possible
because the controller need to know whether we are going to use
the ECC mode already at NAND_CMD_READ0 command time. At this point
we do not have the information whether it is a raw read or a
regular read at driver level...

Signed-off-by: Bill Pringlemeir <bpringlemeir@nbsps.com>
Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/Kconfig
drivers/mtd/nand/vf610_nfc.c