linux/drivers/mtd/nand
Ivan Djelic 193bd40026 mtd: nand: add software BCH ECC support
This patch adds software BCH ECC support to mtd, in order to handle recent
NAND device ecc requirements (4 bits or more).

It does so by adding a new ecc mode (NAND_ECC_SOFT_BCH) for use by board
drivers, and a new Kconfig option to enable BCH support. It relies on the
generic BCH library introduced in a previous patch.

When a board driver uses mode NAND_ECC_SOFT_BCH, it should also set fields
chip->ecc.size and chip->ecc.bytes to select BCH ecc data size and required
error correction capability. See nand_bch_init() documentation for details.

It has been tested on the following platforms using mtd-utils, UBI and
UBIFS: x86 (with nandsim), arm926ejs.

Signed-off-by: Ivan Djelic <ivan.djelic@parrot.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2011-03-11 17:49:08 +00:00
..
alauda.c mtd: nand: make USB device id constant 2010-02-25 11:26:31 +00:00
ams-delta.c mtd: nand: ams-delta: drop omap_read/write, use ioremap 2011-01-06 15:28:22 +00:00
atmel_nand_ecc.h [ARM] 5265/3: [AT91] Add copyright info 2008-09-21 23:01:18 +01:00
atmel_nand.c mtd: atmel_nand: Add DMA support to access Nandflash 2011-03-11 14:22:42 +00:00
au1550nd.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-03-26 14:55:59 +00:00
autcpu12.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
bcm_umi_bch.c mtd: add bcmring nand driver 2009-10-20 10:07:23 +09:00
bcm_umi_nand.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
bf5xx_nand.c mtd: Blackfin NFC: fix badblock location with BootROM OOB 2010-10-25 01:15:22 +01:00
cafe_nand.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
cmx270_nand.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cs553x_nand.c [MTD] [NAND] Fix compilation warnings in drivers/mtd/nand/cs553x_nand.c 2008-10-18 12:39:17 +01:00
davinci_nand.c mtd: DaVinci: Removed header file that is not required 2011-03-11 14:23:36 +00:00
denali.c mtd: nand: denali should also handle NAND_CMD_PARAM 2010-10-24 23:45:05 +01:00
denali.h nand/denali: use dev_xx debug function to replace nand_dbg_print and some printk 2010-08-11 00:28:40 +01:00
diskonchip.c mtd: Remove obsolete <mtd/compatmac.h> include 2010-08-08 21:19:42 +01:00
edb7312.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
fsl_elbc_nand.c mtd: fsl_elbc_nand: fix jffs2 problem after NAND-flash image record in u-boot 2010-12-03 16:34:24 +00:00
fsl_upm.c mtd: Fix endianness issues from device tree 2010-10-25 00:55:56 +01:00
fsmc_nand.c mtd: FSMC NAND use the PrimeCell identifier macros 2010-12-03 16:35:30 +00:00
gpio.c mtd: drivers/mtd/nand/gpio.c: use resource_size() 2009-12-31 20:47:01 +00:00
h1910.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
jz4740_nand.c mtd: NAND: jz4740: Remove custom {read,write}_page handlers 2010-12-03 16:29:45 +00:00
Kconfig mtd: nand: add software BCH ECC support 2011-03-11 17:49:08 +00:00
Makefile mtd: nand: add software BCH ECC support 2011-03-11 17:49:08 +00:00
mpc5121_nfc.c mtd: mpc5121_nfc: don't treat NULL clk as an error 2011-03-11 14:22:41 +00:00
mxc_nand.c mtd: mxc_nand: fix OOB corruption when page size > 2KiB 2011-03-11 14:23:48 +00:00
nand_base.c mtd: nand: add software BCH ECC support 2011-03-11 17:49:08 +00:00
nand_bbt.c mtd: nand: fix pointer NULL pointer dereferencing 2011-03-11 14:22:44 +00:00
nand_bch.c mtd: nand: add software BCH ECC support 2011-03-11 17:49:08 +00:00
nand_bcm_umi.c mtd: add bcmring nand driver 2009-10-20 10:07:23 +09:00
nand_bcm_umi.h mtd: nand_bcm: fix hot spin and code duplication 2010-02-26 16:56:35 +00:00
nand_ecc.c Merge git://git.infradead.org/mtd-2.6 2009-12-16 10:23:43 -08:00
nand_ids.c mtd: nand: support new Toshiba SLC 2010-10-24 23:38:30 +01:00
nandsim.c mtd: use vzalloc 2010-12-03 16:27:29 +00:00
ndfc.c mtd: Fix endianness issues from device tree 2010-10-25 00:55:56 +01:00
nomadik_nand.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
nuc900_nand.c mtd: nand: rename w90p910_nand.c to nuc900_nand.c 2010-01-01 12:16:47 +00:00
omap2.c mtd: omap3: nand: report corrected ecc errors 2011-03-11 14:22:48 +00:00
orion_nand.c mtd: orion/kirkwood: add RnB line support to orion mtd driver 2010-05-14 01:04:19 +01:00
pasemi_nand.c mtd: nand: Use printf extension %pR for struct resource 2010-12-03 16:29:56 +00:00
plat_nand.c gen_nand: Test if nr_chips field is valid 2010-08-12 12:17:36 +01:00
ppchameleonevb.c
pxa3xx_nand.c mtd: pxa3xx_nand: clean the keep configure code 2011-03-11 14:22:51 +00:00
r852.c mtd: r852: remove useless pci powerup/down from suspend/resume routines 2010-10-25 01:32:21 +01:00
r852.h mtd: r852: remove useless pci powerup/down from suspend/resume routines 2010-10-25 01:32:21 +01:00
rtc_from4.c mtd: Remove obsolete <mtd/compatmac.h> include 2010-08-08 21:19:42 +01:00
s3c2410.c mtd: s3c nand: parsing command-line partitions prior to set->partitions 2010-08-02 09:08:13 +01:00
sh_flctl.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
sharpsl.c [MTD] sharpsl-nand: move registration to board code 2008-10-29 21:08:37 +03:00
sm_common.c mtd: sm_common: remove casts from void 2010-08-02 09:06:10 +01:00
sm_common.h mtd: sm_common: split smartmedia and xD table 2010-05-14 01:03:46 +01:00
socrates_nand.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
spia.c
tmio_nand.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
txx9ndfmc.c mtd: txx9ndfmc: limit transfer bytes to 512 (ECC provides 6 bytes max) 2011-01-06 15:29:12 +00:00