[U-Boot] [PATCH v8 0/5] mtd: nand: omap: optimize and clean-up of OMAP NAND driver

Pekon Gupta pekon at ti.com
Thu Oct 10 13:00:09 CEST 2013


*changes in v8*
[PATCH 1/5] incorporated following feedbacks from Scott Wood <scottwood at freescale.com>
	- using symbolic names (enums) as values of CONFIG_NAND_OMAP_ECCSCHEME
	- updated omap_select_ecc_scheme(): perform ecc-scheme compatibility
		checks before updating nand_chip.ecc fields. This avoids
		corrupting of existing ecc-scheme in case of switching failures.
	- code clean-up (removed fall-back on omap_select_ecc_scheme() failures)
[PATCH 2/5], [PATCH 3/5], [PATCH 4/5] minor code clean-up
[PATCH 5/5] <no update>


*changes in v7*
[PATCH 1/5]
	- omap_gpmc.c: fix: free bytes in OOB (ecclayout->oobfree[0].length)
	- omap_gpmc.c: cleanup: redundant code added in previous patch versions
	- am335x_evm.h: cleanup: redundant code added in previous patch versions
	- tricorder.h: fix: CONFIG_NAND_OMAP_ECCSCHEME
[PATCH 2/5] removed: re-configuration of gpmc.config1[dev_width] added in
		previous version of patch
[PATCH 3/5] <no update>
[PATCH 4/5] <no update>
[PATCH 5/5] minor fix: missing '$' in ${loadaddr}

 
*changes in v6*
[PATCH 1/5] incorporated feedbacks from Scott Wood <scottwood at freescale.com>
	- renamed CONFIG_SYS_NAND_ECCSCHEME to CONFIG_NAND_OMAP_ECCSCHEME
	- updated omap_select_ecc_scheme() to handle error conditions without
		depending on caller.
	- renamed OMAP_ECC_HAM1_CODE_HW_ROMCODE to OMAP_ECC_HAM1_CODE_HW 
		to keep it naming compatible to linux kernel
	- updated doc/README.nand and doc/README.omap3
[PATCH 2/5] minor code clean-up
[PATCH 3/5] minor code clean-up 
[PATCH 4/5] <no update>
[PATCH 5/5] <moved CONFIG_NAND_OMAP_ECCSCHEME description to README.nand>


*changes in v5*
This version of patch is tested on am335x-evm with x8 NAND device, and boots
SPL and u-boot from NAND
[PATCH 1/5]
	- re-added omap_read_page_bch(): needed proper sequence of while reading
	DATA and ECC from NAND page, so that calc_ecc generated from GPMC
	is understood by ELM.
	- added check to see if NAND OOB can accomodate ECC for entire page
[PATCH 2/5] fixed device-width in GPMC_CONFIG1_X to support x16 devices
[PATCH 3/5] code clean-up for OMAP_ECC_BCH8_CODE_HW_DETECTION_SW mode
[PATCH 4/5]
	- fixed omap_correct_data_bch() for correcting bit-flips using ELM
	- code-cleanup + added omap_reverse_list()
[PATCH 5/5] incorporated feedbacks from Peter Korsgaard <jacmet at sunsite.dk>


*changes in v4*
[PATCH 1/5]
	- removed omap_read_page_bch(): chip->ecc.read_page uses default API
		nand_read_page_hwecc() in nand_base.c
	- updated tricorder.h: added new CONFIGS for ECCSCHEME & ONFI_DETECTION
	- converted printf("ECC-SCHEME") to debug("ECC-SCHEME")
[PATCH 2/5] minor code clean-up
[PATCH 3/5] <no update>
[PATCH 4/5] <no update>
[PATCH 5/5] updated README as per feedbacks from trini at ti.com


*changes in v3*
[PATCH 1/5] (complete change) 
	- ecc-scheme is selection is controller by s/w, not CONFIG_NAND_xx
	- added omap_select_ecc_scheme(), as common function to handle all
	  ecc-scheme related configurations for both board_nand_init() &
	  omap_nand_switch_ecc().
	- removed un-used defines from asm/arch-am33xx/omap_gpmc.h
	- updated doc/REAME.nand
[PATCH 2/5] removed un-used defines from asm/omap_gpmc.h
[PATCH 3/5] removed omap_calculate_ecc_bch_sw() and omap_calculate_ecc()
		and merged their logic into omap_calculate_ecc_bch()
[PATCH 4/5] updated return error-code in-case of invalid conditions
[PATCH 5/5] (new) for board/ti/am335x/README


*changes in v2*
- added documentation for CONFIG_NAND_OMAP_xx in doc/README.nand
- added CONFIG_BCH along with CONFIG_NAND_OMAP_ECC_BCH8_CODE_HW_DETECTION_SW
  to include software library lib/bch.c
- fixed board_nand_init() and omap_enable_hwecc()


*original v1*
This patch series updates BCH8_ECC schemes in mtd/nand/omap_gpmc.c driver
- adds scalability for higher ECC schemes in future.
- removes CONFIG_AM335x and it makes it generic for all platforms.
- optimizes read_data paths

Pekon Gupta (5):
[PATCH 1/5] mtd: nand: omap: enable BCH ECC scheme using ELM for generic platform
[PATCH 2/5] mtd: nand: omap: optimize chip->ecc.hwctl() for H/W ECC schemes
[PATCH 3/5] mtd: nand: omap: optimize chip->ecc.calculate() for H/W ECC schemes
[PATCH 4/5] mtd: nand: omap: optimized chip->ecc.correct() for H/W ECC schemes
[PATCH 5/5] board/ti/am335x/README: update for NAND boot

 arch/arm/include/asm/arch-am33xx/omap_gpmc.h |  52 +-
 arch/arm/include/asm/omap_gpmc.h             |   7 -
 board/ti/am335x/README                       |  53 +-
 doc/README.nand                              |  38 ++
 doc/README.omap3                             |   4 +-
 drivers/mtd/nand/omap_gpmc.c                 | 843 +++++++++++----------------
 include/configs/am335x_evm.h                 |  11 +-
 include/configs/tricorder.h                  |   3 +-
 8 files changed, 446 insertions(+), 565 deletions(-)

-- 
1.8.1



More information about the U-Boot mailing list