1. 24 7月, 2008 1 次提交
  2. 22 7月, 2008 1 次提交
  3. 07 6月, 2008 1 次提交
  4. 02 5月, 2008 1 次提交
  5. 27 4月, 2008 1 次提交
  6. 23 4月, 2008 1 次提交
  7. 22 4月, 2008 3 次提交
  8. 07 2月, 2008 1 次提交
    • R
      [MTD] Add mtd panic_write function pointer · 388bbb09
      Richard Purdie 提交于
      MTDs are well suited for logging critical data and the mtdoops driver
      allows kernel panics/oops to be written to flash in a blackbox flight
      recorder fashion allowing better debugging and analysis of crashes.
      
      Any kernel oops in user context can be easily handled since the kernel
      continues as normal and any queued mtd writes are scheduled. Any kernel
      oops in interrupt context results in a panic and the delayed writes will
      not be scheduled however. The existing mtd->write function cannot be
      called in interrupt context so these messages can never be written to
      flash.
      
      This patch adds a panic_write function pointer that drivers can
      optionally implement which can be called in interrupt context. It is
      only intended to be called when its known the kernel is about to panic
      and we need to write to succeed. Since the kernel is not going to be
      running for much longer, this function can break locks and delay to
      ensure the write succeeds (but not sleep).
      Signed-off-by: NRichard Purdie <rpurdie@rpsys.net>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      388bbb09
  9. 03 2月, 2008 1 次提交
  10. 29 1月, 2008 1 次提交
  11. 25 1月, 2008 1 次提交
  12. 11 1月, 2008 1 次提交
  13. 27 12月, 2007 1 次提交
    • A
      UBI: add ubi_leb_map interface · 393852ec
      Artem Bityutskiy 提交于
      The idea of this interface belongs to Adrian Hunter. The
      interface is extremely useful when one has to have a guarantee
      that an LEB will contain all 0xFFs even in case of an unclean
      reboot. UBI does have an 'ubi_leb_erase()' call which may do
      this, but it is stupid and ineffecient, because it flushes whole
      queue. I should be re-worked to just be a pair of unmap,
      map calls.
      
      The user of the interfaci is UBIFS at the moment.
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      393852ec
  14. 06 11月, 2007 1 次提交
  15. 13 10月, 2007 1 次提交
  16. 21 9月, 2007 1 次提交
  17. 06 9月, 2007 1 次提交
    • D
      [MTD] Fix CFI build error when no map width or interleave supported · 241651d0
      David Woodhouse 提交于
      When building NOR flash support, you have compile-time options for the
      bus width and the number of individual chips which are interleaved
      together onto that bus. The code to deal with arbitrary geometry is a
      bit convoluted, and people want to just configure it for the specific
      hardware they have, to avoid the runtime overhead.
      
      Selecting _none_ of the available options doesn't make any sense. You
      should have at least one. This makes it build though, since people
      persist in trying.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      241651d0
  18. 23 7月, 2007 1 次提交
  19. 30 6月, 2007 1 次提交
    • K
      [MTD] [OneNAND] 2X program support · ee9745fc
      Kyungmin Park 提交于
      The 2X Program is an extension of Program Operation.
      
      Since the device is equipped with two DataRAMs, and two-plane NAND Flash 
      memory array, these two component enables simultaneous program of 4KiB.
      Plane1 has only even blocks such as block0, block2, block4 while Plane2 
      has only odd blocks such as block1, block3, block5.
      So MTD regards it as 4KiB page size and 256KiB block size
      
      Now the following chips support it. (KFXXX16Q2M)
      Demux: KFG2G16Q2M, KFH4G16Q2M, KFW8G16Q2M,
      Mux:   KFM2G16Q2M, KFN4G16Q2M,
      
      And more recent chips
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      ee9745fc
  20. 11 5月, 2007 1 次提交
  21. 09 5月, 2007 2 次提交
  22. 08 5月, 2007 1 次提交
  23. 27 4月, 2007 1 次提交
    • A
      UBI: Unsorted Block Images · 801c135c
      Artem B. Bityutskiy 提交于
      UBI (Latin: "where?") manages multiple logical volumes on a single
      flash device, specifically supporting NAND flash devices. UBI provides
      a flexible partitioning concept which still allows for wear-levelling
      across the whole flash device.
      
      In a sense, UBI may be compared to the Logical Volume Manager
      (LVM). Whereas LVM maps logical sector numbers to physical HDD sector
      numbers, UBI maps logical eraseblocks to physical eraseblocks.
      
      More information may be found at
      http://www.linux-mtd.infradead.org/doc/ubi.html
      
      Partitioning/Re-partitioning
      
        An UBI volume occupies a certain number of erase blocks. This is
        limited by a configured maximum volume size, which could also be
        viewed as the partition size. Each individual UBI volume's size can
        be changed independently of the other UBI volumes, provided that the
        sum of all volume sizes doesn't exceed a certain limit.
      
        UBI supports dynamic volumes and static volumes. Static volumes are
        read-only and their contents are protected by CRC check sums.
      
      Bad eraseblocks handling
      
        UBI transparently handles bad eraseblocks. When a physical
        eraseblock becomes bad, it is substituted by a good physical
        eraseblock, and the user does not even notice this.
      
      Scrubbing
      
        On a NAND flash bit flips can occur on any write operation,
        sometimes also on read. If bit flips persist on the device, at first
        they can still be corrected by ECC, but once they accumulate,
        correction will become impossible. Thus it is best to actively scrub
        the affected eraseblock, by first copying it to a free eraseblock
        and then erasing the original. The UBI layer performs this type of
        scrubbing under the covers, transparently to the UBI volume users.
      
      Erase Counts
      
        UBI maintains an erase count header per eraseblock. This frees
        higher-level layers (like file systems) from doing this and allows
        for centralized erase count management instead. The erase counts are
        used by the wear-levelling algorithm in the UBI layer. The algorithm
        itself is exchangeable.
      
      Booting from NAND
      
        For booting directly from NAND flash the hardware must at least be
        capable of fetching and executing a small portion of the NAND
        flash. Some NAND flash controllers have this kind of support. They
        usually limit the window to a few kilobytes in erase block 0. This
        "initial program loader" (IPL) must then contain sufficient logic to
        load and execute the next boot phase.
      
        Due to bad eraseblocks, which may be randomly scattered over the
        flash device, it is problematic to store the "secondary program
        loader" (SPL) statically. Also, due to bit-flips it may become
        corrupted over time. UBI allows to solve this problem gracefully by
        storing the SPL in a small static UBI volume.
      
      UBI volumes vs. static partitions
      
        UBI volumes are still very similar to static MTD partitions:
      
          * both consist of eraseblocks (logical eraseblocks in case of UBI
            volumes, and physical eraseblocks in case of static partitions;
          * both support three basic operations - read, write, erase.
      
        But UBI volumes have the following advantages over traditional
        static MTD partitions:
      
          * there are no eraseblock wear-leveling constraints in case of UBI
            volumes, so the user should not care about this;
          * there are no bit-flips and bad eraseblocks in case of UBI volumes.
      
        So, UBI volumes may be considered as flash devices with relaxed
        restrictions.
      
      Where can it be found?
      
        Documentation, kernel code and applications can be found in the MTD
        gits.
      
      What are the applications for?
      
        The applications help to create binary flash images for two purposes: pfi
        files (partial flash images) for in-system update of UBI volumes, and plain
        binary images, with or without OOB data in case of NAND, for a manufacturing
        step. Furthermore some tools are/and will be created that allow flash content
        analysis after a system has crashed..
      
      Who did UBI?
      
        The original ideas, where UBI is based on, were developed by Andreas
        Arnez, Frank Haverkamp and Thomas Gleixner. Josh W. Boyer and some others
        were involved too. The implementation of the kernel layer was done by Artem
        B. Bityutskiy. The user-space applications and tools were written by Oliver
        Lohmann with contributions from Frank Haverkamp, Andreas Arnez, and Artem.
        Joern Engel contributed a patch which modifies JFFS2 so that it can be run on
        a UBI volume. Thomas Gleixner did modifications to the NAND layer. Alexander
        Schmidt made some testing work as well as core functionality improvements.
      Signed-off-by: NArtem B. Bityutskiy <dedekind@linutronix.de>
      Signed-off-by: NFrank Haverkamp <haver@vnet.ibm.com>
      801c135c
  24. 18 4月, 2007 1 次提交
  25. 03 4月, 2007 1 次提交
  26. 23 3月, 2007 1 次提交
  27. 09 3月, 2007 1 次提交
  28. 08 3月, 2007 1 次提交
    • V
      [MTD] [NAND] make oobavail public · 1f92267c
      Vitaly Wool 提交于
      During the MTD rework the oobavail parameter of mtd_info structure has become
      private. This is not quite correct in terms of integrity and logic. If we have
      means to write to OOB area, then we'd like to know upfront how many bytes out
      of OOB are spare per page to be able to adapt to specific cases.
      The patch inlined adds the public oobavail parameter.
      Signed-off-by: NVitaly Wool <vwool@ru.mvista.com>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      1f92267c
  29. 09 2月, 2007 6 次提交
  30. 07 2月, 2007 1 次提交
  31. 02 2月, 2007 1 次提交
  32. 31 1月, 2007 1 次提交