1. 06 4月, 2015 2 次提交
  2. 03 4月, 2015 14 次提交
  3. 01 4月, 2015 15 次提交
  4. 31 3月, 2015 9 次提交
    • T
      Merge branch 'master' of git://git.denx.de/u-boot-imx · 9da7e3da
      Tom Rini 提交于
      9da7e3da
    • S
      mtd: vf610_nfc: specify transfer size before each transfer · 55765b18
      Stefan Agner 提交于
      Testing showed, that commands like STATUS made the buffer dirty
      when executed with NFC_SECSZ set to the page size. It looks
      like the controller transfers bogus data when this register
      is configured. When setting it to 0, the buffer does not get
      altered while the status command still seems to work flawless.
      Signed-off-by: NStefan Agner <stefan@agner.ch>
      55765b18
    • S
      mtd: vf610_nfc: mark page as dirty on block erase · 7653fc28
      Stefan Agner 提交于
      The driver tries to re-use the page buffer by storing the page
      number of the current page in the buffer. The page is only read
      if the requested page number is not currently in the buffer. When
      a block is erased, the page number is marked as invalid if the
      erased page equals the one currently in the cache. However, since
      a erase block consists of multiple pages, also other page numbers
      could be affected.
      
      The commands to reproduce this issue (on a written page):
      > nand dump 0x800
      > nand erase 0x0 0x20000
      > nand dump 0x800
      
      The second nand dump command returns the data from the buffer,
      while in fact the page is erased (0xff).
      
      Avoid the hassle to calculate whether the page is affected or not,
      but set the page buffer unconditionally to invalid instead.
      Signed-off-by: NStefan Agner <stefan@agner.ch>
      7653fc28
    • P
      nand: yaffs: Remove the "nand write.yaffs" command · 004a1fdb
      Peter Tyser 提交于
      This command is only enabled by one board, complicates the NAND code,
      and doesn't appear to have been functioning properly for several
      years.  If there are no bad blocks in the NAND region being written
      nand_write_skip_bad() will take the shortcut of calling nand_write()
      which bypasses the special yaffs handling.  This causes invalid YAFFS
      data to be written. See
      http://lists.denx.de/pipermail/u-boot/2011-September/102830.html for
      an example and a potential workaround.
      
      U-Boot still retains the ability to mount and access YAFFS partitions
      via CONFIG_YAFFS2.
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      004a1fdb
    • P
      nand: Remove CONFIG_MTD_NAND_VERIFY_WRITE · 073adf98
      Peter Tyser 提交于
      The CONFIG_MTD_NAND_VERIFY_WRITE has been removed from Linux for some
      time and a more generic method of NAND verification now exists in U-Boot.
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      Tested-by: NHeiko Schocher <hs@denx.de>
      Acked-by: NHeiko Schocher <hs@denx.de>
      073adf98
    • P
      dfu: nand: Verify writes · 9ac71f11
      Peter Tyser 提交于
      Previously NAND writes were not verified and could fail silently.  Add
      a verification step after all writes to NAND.
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      Reviewed-by: NLukasz Majewski <l.majewski@samsung.com>
      Tested-by: NHeiko Schocher <hs@denx.de>
      Acked-by: NHeiko Schocher <hs@denx.de>
      9ac71f11
    • P
      cmd_nand: Verify writes to NAND · 6b94f118
      Peter Tyser 提交于
      Previously NAND writes were only verified when CONFIG_MTD_NAND_VERIFY_WRITE
      was defined.  On boards without this define writes could fail silently.
      Boards with CONFIG_MTD_NAND_VERIFY_WRITE could prematurely report
      failures which ECC could correct.
      
      Add a verification step after all "nand write[.x]" commands to ensure the
      writes were successful.  The verification uses ECC for for "normal"
      writes, but does not for raw and yaffs writes.  Some test cases which
      inject fake bad bits on a 2K page flash are below.
      
      Test cases with CONFIG_MTD_NAND_VERIFY_WRITE defined:
        Example of an ECC write which previously failed when
        CONFIG_MTD_NAND_VERIFY_WRITE was defined, but now succeeds because ECC
        is used during verification:
            nand erase 0 0x10000
            dhcp /somefile
            mw.b 0x10000 0xff 0x2000
            mw.b 0x10020 0xfe 1
            nand write.raw 0x10000 0x800 1
            mw.b 0x1000020 0x01 1
            nand write 0x1000000 0x800 0x1800
      
      Test cases without CONFIG_MTD_NAND_VERIFY_WRITE defined:
        Example of an ECC write which previously silently failed:
            nand erase 0 0x10000
            dhcp /somefile
            mw.b 0x10000 0xff 0x2000
            mw.b 0x10020 0x00 1
            nand write.raw 0x10000 0x800 1
            mw.b 0x1000020 0xff 1
            nand write 0x1000000 0x800 0x1800
      
        Example of a raw write which previously failed silently due to stuck
        data bit, but now errors out:
            nand erase 0 0x10000
            dhcp /somefile
            mw.b 0x10000 0xff 0x2000
            mw.b 0x10020 0xfe 1
            nand write.raw 0x10000 0x800 1
            mw.b 0x1000020 0x01 1
            nand write.raw 0x1000000 0x800 3
      
        Example of a raw write which previously failed silently due to stuck OOB
        bit, but now errors out:
            nand erase 0 0x10000
            dhcp /somefile
            mw.b 0x10000 0xff 0x2000
            mw.b 0x10810 0xfe 1
            nand write.raw 0x10000 0x800 1
            mw.b 0x1000810 0x01 1
            nand write.raw 0x1000000 0x800 3
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      Tested-by: NHeiko Schocher <hs@denx.de>
      Acked-by: NHeiko Schocher <hs@denx.de>
      6b94f118
    • P
      nand: Add verification functions · 59b5a2ad
      Peter Tyser 提交于
      Add nand_verify() and nand_verify_page_oob().  nand_verify() verifies
      NAND contents against an arbitrarily sized buffer using ECC while
      nand_verify_page_oob() verifies a NAND page's contents and OOB.
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      Tested-by: NHeiko Schocher <hs@denx.de>
      Acked-by: NHeiko Schocher <hs@denx.de>
      59b5a2ad
    • P
      nand: Remove unused read/write structures · 800772a1
      Peter Tyser 提交于
      The use of the nand_write_options and nand_read_options structures were
      removed in commit dfbf617f.  Remove the
      now-unused structures too.
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      800772a1