Commit d016dc42 authored by pekon gupta's avatar pekon gupta Committed by Scott Wood

mtd: nand: omap: enable BCH ECC scheme using ELM for generic platform

BCH8_ECC scheme implemented in omap_gpmc.c driver has following favours
|ECC Scheme                         | ECC Calculation | Error Detection |
|OMAP_ECC_BCH8_CODE_HW              |GPMC             |ELM H/W engine   |
|OMAP_ECC_BCH8_CODE_HW_DETECTION_SW |GPMC             |S/W BCH library  |

Current implementation limits the BCH8_CODE_HW only for AM33xx device family.
(using CONFIG_AM33XX). However, other SoC families (like TI81xx) also have
ELM hardware module, and can support ECC error detection using ELM.

This patch
- removes CONFIG_AM33xx
	Thus this driver can be reused by all devices having ELM h/w engine.
- adds omap_select_ecc_scheme()
	A common function to handle ecc-scheme related configurations. This
	can be used both during device-probe and via user-space u-boot commads
	to change ecc-scheme. During device probe ecc-scheme is selected based
- enables CONFIG_BCH
	S/W library (lib/bch.c) required by OMAP_ECC_BCHx_CODE_HW_DETECTION_SW
  	is enabled by CONFIG_BCH.
	for auto-detection of ONFI compliant NAND devices
- updates following README doc
Signed-off-by: default avatarPekon Gupta <>
[ fixed unused variable warning]
Signed-off-by: default avatarScott Wood <>
parent beba5f04
......@@ -68,4 +68,20 @@
enum omap_ecc {
/* 1-bit ECC calculation by Software, Error detection by Software */
OMAP_ECC_HAM1_CODE_SW = 1, /* avoid un-initialized int can be 0x0 */
/* 1-bit ECC calculation by GPMC, Error detection by Software */
/* ECC layout compatible to legacy ROMCODE. */
/* 4-bit ECC calculation by GPMC, Error detection by Software */
/* 4-bit ECC calculation by GPMC, Error detection by ELM */
/* 8-bit ECC calculation by GPMC, Error detection by Software */
/* 8-bit ECC calculation by GPMC, Error detection by ELM */
#endif /* __ASM_OMAP_GPMC_H */
......@@ -180,6 +180,17 @@ Configuration Options:
flexibility, so that one day we can eliminate the old mechanism.
Enables detection of ONFI compliant devices during probe.
And fetching device parameters flashed on device, by parsing
ONFI parameter page.
Enables software based BCH ECC algorithm present in lib/bch.c
This is used by SoC platforms which do not have built-in ELM
hardware engine required for BCH ECC correction.
Platform specific options
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment