1. 21 Nov, 2013 2 commits
    • pekon gupta's avatar
      mtd: nand: omap: enable BCH ECC scheme using ELM for generic platform · d016dc42
      pekon gupta authored
      
      
      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: default avatarPekon Gupta <pekon@ti.com>
      [scottwood@freescale.com: fixed unused variable warning]
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      d016dc42
    • pekon gupta's avatar
      mtd: nand: omap: make am33xx/elm.c as common driver for all OMAPx and AMxxxx platforms · beba5f04
      pekon gupta authored
      
      
      ELM hardware engine which is used for ECC error detection, is present on all
      latest OMAP SoC (like OMAP4xxx, OMAP5xxx, DRA7xxx, AM33xx, AM43xx). Thus ELM
      driver should be moved to common drivers/mtd/nand/ folder so that all SoC
      having on-chip ELM hardware engine can re-use it.
      This patch has following changes:
      - mv arch/arm/include/asm/arch-am33xx/elm.h arch/arm/include/asm/omap_elm.h
      - mv arch/arm/cpu/armv7/am33xx/elm.c drivers/mtd/nand/omap_elm.c
      - update Makefiles
      - update #include <asm/elm.h>
      - add CONFIG_NAND_OMAP_ELM to compile driver/mtd/nand/omap_elm.c
      	and include in all board configs using AM33xx SoC platform.
      Signed-off-by: default avatarPekon Gupta <pekon@ti.com>
      beba5f04
  2. 24 Jul, 2013 1 commit
  3. 04 Jun, 2013 1 commit
    • Sergey Lapin's avatar
      bug, nand, am33xx: nand->ecc.strength not set in board_nand_init() · 4bfd0002
      Sergey Lapin authored
      commit dfe64e2c
      
      
      Author: Sergey Lapin <slapin@ossfans.org>
      Date:   Mon Jan 14 03:46:50 2013 +0000
      
          mtd: resync with Linux-3.7.1
      
      Introduced runtime bug:
      
      U-Boot 2013.04-00499-g46567df-dirty (Jun 04 2013 - 08:17:08)
      
      I2C:   ready
      DRAM:  512 MiB
      WARNING: Caches not enabled
      NAND:  BUG: failure at nand_base.c:3214/nand_scan_tail()!
      BUG!
      resetting ...
      
      on boards using drivers/mtd/nand/omap_gpmc.c as in board_nand_init()
      nand->ecc.strength is not set. Fix this!
      Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
      Cc: Sergey Lapin <slapin@ossfans.org>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Tom Rini <trini@ti.com>
      4bfd0002
  4. 31 May, 2013 1 commit
    • Sergey Lapin's avatar
      mtd: resync with Linux-3.7.1 · dfe64e2c
      Sergey Lapin authored
      
      
      This patch is essentially an update of u-boot MTD subsystem to
      the state of Linux-3.7.1 with exclusion of some bits:
      
      - the update is concentrated on NAND, no onenand or CFI/NOR/SPI
      flashes interfaces are updated EXCEPT for API changes.
      
      - new large NAND chips support is there, though some updates
      have got in Linux-3.8.-rc1, (which will follow on top of this patch).
      
      To produce this update I used tag v3.7.1 of linux-stable repository.
      
      The update was made using application of relevant patches,
      with changes relevant to U-Boot-only stuff sticked together
      to keep bisectability. Then all changes were grouped together
      to this patch.
      Signed-off-by: default avatarSergey Lapin <slapin@ossfans.org>
      [scottwood@freescale.com: some eccstrength and build fixes]
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      dfe64e2c
  5. 08 Apr, 2013 3 commits
    • Andreas Bießmann's avatar
      omap_gpmc: add support for hw assisted BCH8 · 4a093006
      Andreas Bießmann authored
      
      
      The kernel states:
      
      ---8<---
      The OMAP3 GPMC hardware BCH engine computes remainder polynomials, it does not
      provide automatic error location and correction: this step is implemented using
      the BCH library.
      --->8---
      
      And we do so in u-boot.
      
      This implementation uses the same layout for BCH8 but it is fix. The current
      provided layout does only work with 64 Byte OOB.
      Signed-off-by: default avatarAndreas Bießmann <andreas.devel@googlemail.com>
      Cc: Tom Rini <trini@ti.com>
      Cc: Ilya Yanok <ilya.yanok@cogentembedded.com>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Mansoor Ahamed <mansoor.ahamed@ti.com>
      Cc: Thomas Weber <thomas.weber.linux@googlemail.com>
      4a093006
    • Andreas Bießmann's avatar
      omap_gpmc: change nandecc command · da634ae3
      Andreas Bießmann authored
      
      
      With uppcoming BCH support on OMAP devices we need to decide between differnt
      algorithms when switching the ECC engine.  Currently we support 1-bit hammign
      and 8-bit BCH on HW backend.
      
      In order to switch between differnet ECC algorithms we need to change the
      interface of omap_nand_switch_ecc() also.
      Signed-off-by: default avatarAndreas Bießmann <andreas.devel@googlemail.com>
      Cc: Tom Rini <trini@ti.com>
      Cc: Thomas Weber <thomas.weber.linux@googlemail.com>
      da634ae3
    • Andreas Bießmann's avatar
      asm/omap_gpmc.h: consolidate common defines · 5bf299bc
      Andreas Bießmann authored
      
      
      arch/arm/include/asm/arch-am33xx/omap_gpmc.h and
      arch/arm/include/asm/arch-omap3/omap_gpmc.h are almost the same, consolidate
      the common parts into a new header.
      
      Introduce a new asm/omap_gpmc.h which defines the command part and pulls in
      the architecture specific one.
      Signed-off-by: default avatarAndreas Bießmann <andreas.devel@googlemail.com>
      Cc: Tom Rini <trini@ti.com>
      Reviewed-by: default avatarTom Rini <trini@ti.com>
      5bf299bc
  6. 24 Mar, 2013 1 commit
    • Tom Rini's avatar
      am33xx: Add required includes to some omap/am33xx code · 98f92001
      Tom Rini authored
      
      
      - In arch/arm/cpu/armv7/omap-common/timer.c,
        drivers/mtd/nand/omap_gpmc.c and drivers/net/cpsw.c add #include files
        that the driver needs but had been relying on <config.h> to bring in.
      - In arch/arm/cpu/armv7/omap-common/lowlevel_init.S add <config.h>
      - In am335x_evm.h and pcm051.h don't globally include
        <asm/arch/hardware.h> and <asm/arch/cpu.h> but just <asm/arch/omap.h>
        as that is the only include which defines things the config uses.
      
      Cc: Lars Poeschel <poeschel@lemonage.de>
      Signed-off-by: default avatarTom Rini <trini@ti.com>
      98f92001
  7. 10 Dec, 2012 1 commit
  8. 01 Sep, 2012 1 commit
  9. 27 Mar, 2012 1 commit
    • Stefano Babic's avatar
      NAND: TI: fix warnings in omap_gpmc.c · f7dad8f1
      Stefano Babic authored
      
      
      The following warnings are reported for boards using SOFT ECC.
      
      omap_gpmc.c:33:30: warning: 'hw_nand_oob' defined but not used
      omap_gpmc.c:78:13: warning: 'omap_hwecc_init' defined but not used
      omap_gpmc.c:116:12: warning: 'omap_correct_data' defined but not used
      omap_gpmc.c:182:12: warning: 'omap_calculate_ecc' defined but not used
      omap_gpmc.c:208:13: warning: 'omap_enable_hwecc' defined but not used
      Signed-off-by: default avatarStefano Babic <sbabic@denx.de>
      Cc: Tom Rini <trini@ti.com>
      Cc: Scott Wood <scottwood@freescale.com>
      f7dad8f1
  10. 06 Dec, 2011 1 commit
  11. 30 Sep, 2011 1 commit
  12. 08 Aug, 2009 2 commits
  13. 07 Aug, 2009 1 commit
  14. 24 Jan, 2009 1 commit