diff options
| author | pekon gupta <pekon@ti.com> | 2013-11-18 19:03:00 +0530 | 
|---|---|---|
| committer | Scott Wood <scottwood@freescale.com> | 2013-11-21 13:33:41 -0600 | 
| commit | d016dc42cedbf6102e100fa9ecb58462edfb14f8 (patch) | |
| tree | a9d18ed5230c98f8f8ccd0d4b504edafdf3424b2 /arch/arm/include/asm/omap_gpmc.h | |
| parent | beba5f04f2215c81016fbfb727257ea6667aca85 (diff) | |
| download | olio-uboot-2014.01-d016dc42cedbf6102e100fa9ecb58462edfb14f8.tar.xz olio-uboot-2014.01-d016dc42cedbf6102e100fa9ecb58462edfb14f8.zip | |
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
	on CONFIG_NAND_OMAP_ELM or CONFIG_NAND_OMAP_BCH8
- enables CONFIG_BCH
	S/W library (lib/bch.c) required by OMAP_ECC_BCHx_CODE_HW_DETECTION_SW
  	is enabled by CONFIG_BCH.
- enables CONFIG_SYS_NAND_ONFI_DETECTION
	for auto-detection of ONFI compliant NAND devices
- updates following README doc
	doc/README.nand
	board/ti/am335x/README
	doc/README.omap3
Signed-off-by: Pekon Gupta <pekon@ti.com>
[scottwood@freescale.com: fixed unused variable warning]
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/arm/include/asm/omap_gpmc.h')
| -rw-r--r-- | arch/arm/include/asm/omap_gpmc.h | 16 | 
1 files changed, 16 insertions, 0 deletions
| diff --git a/arch/arm/include/asm/omap_gpmc.h b/arch/arm/include/asm/omap_gpmc.h index dd40cb6c1..d4143ecd8 100644 --- a/arch/arm/include/asm/omap_gpmc.h +++ b/arch/arm/include/asm/omap_gpmc.h @@ -68,4 +68,20 @@  }  #endif +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. */ +	OMAP_ECC_HAM1_CODE_HW, +	/* 4-bit  ECC calculation by GPMC, Error detection by Software */ +	OMAP_ECC_BCH4_CODE_HW_DETECTION_SW, +	/* 4-bit  ECC calculation by GPMC, Error detection by ELM */ +	OMAP_ECC_BCH4_CODE_HW, +	/* 8-bit  ECC calculation by GPMC, Error detection by Software */ +	OMAP_ECC_BCH8_CODE_HW_DETECTION_SW, +	/* 8-bit  ECC calculation by GPMC, Error detection by ELM */ +	OMAP_ECC_BCH8_CODE_HW, +}; +  #endif /* __ASM_OMAP_GPMC_H */ |