1. 02 8月, 2010 2 次提交
  2. 14 5月, 2010 2 次提交
    • K
      mtd: nand: support alternate BB marker locations on MLC · b60b08b0
      Kevin Cernekee 提交于
      This is a slightly modified version of a patch submitted last year by
      Reuben Dowle <reuben.dowle@navico.com>.  His original comments follow:
      
      This patch adds support for some MLC NAND flashes that place the BB
      marker in the LAST page of the bad block rather than the FIRST page used
      for SLC NAND and other types of MLC nand.
      
      Lifted from Samsung datasheet for K9LG8G08U0A (1Gbyte MLC NAND):
      "
      Identifying Initial Invalid Block(s)
      All device locations are erased(FFh) except locations where the initial
      invalid block(s) information is written prior to shipping. The initial
      invalid block(s) status is defined by the 1st byte in the spare area.
      Samsung makes sure that the last page of every initial invalid block has
      non-FFh data at the column address of 2,048.
      ...
      "
      
      As far as I can tell, this is the same for all Samsung MLC nand, and in
      fact the samsung bsp for the processor used in our project (s3c6410)
      actually contained a hack similar to this patch but less portable to
      enable use of their NAND parts. I discovered this problem when trying to
      use a Micron NAND which does not used this layout - I wish samsung would
      put their stuff in main-line to avoid this type of problem.
      
      Currently this patch causes all MLC nand with manufacturer codes from
      Samsung and ST(Numonyx) to use this alternative location, since these
      are the manufactures that I know of that use this layout.
      Signed-off-by: NKevin Cernekee <cernekee@gmail.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      b60b08b0
    • K
      mtd: nand: extend NAND flash detection to new MLC chips · 426c457a
      Kevin Cernekee 提交于
      Some of the newer MLC devices have a 6-byte ID sequence in which
      several field definitions differ from older chips in a manner that is
      not backward compatible.  For instance:
      
      Samsung K9GAG08U0M (5-byte sequence): ec d5 14 b6 74
      4th byte, bits 1:0 encode the page size: 0=1KiB, 1=2KiB, 2=4KiB, 3=8KiB
      4th byte, bits 5:4 encode the block size: 0=64KiB, 1=128KiB, ...
      4th byte, bit 6 encodes the OOB size: 0=8B/512B, 1=16B/512B
      
      Samsung K9GAG08U0D (6-byte sequence): ec d5 94 29 34 41
      4th byte, bits 1:0 encode the page size: 0=2KiB, 1=4KiB, 3=8KiB, 4=rsvd
      4th byte, bits 7;5:4 encode the block size: 0=128KiB, 1=256KiB, ...
      4th byte, bits 6;3:2 encode the OOB size: 1=128B/page, 2=218B/page
      
      This patch uses the new 6-byte scheme if the following conditions are
      all true:
      
      1) The ID code wraps around after exactly 6 bytes
      
      2) Manufacturer is Samsung
      
      3) 6th byte is zero
      
      The patch also extends the maximum OOB size from 128B to 256B.
      Signed-off-by: NKevin Cernekee <cernekee@gmail.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      426c457a
  3. 27 2月, 2010 7 次提交
  4. 26 2月, 2010 2 次提交
  5. 30 11月, 2009 3 次提交
  6. 24 9月, 2009 1 次提交
    • J
      mtd: nand: fix htmldocs warnings · 58475fb9
      Jaswinder Singh Rajput 提交于
      Fixed following htmldocs warnings:
      
        DOCPROC Documentation/DocBook/mtdnand.xml
        Warning(drivers/mtd/nand/nand_base.c:769): No description found for parameter 'page'
        Warning(drivers/mtd/nand/nand_base.c:785): No description found for parameter 'page'
        Warning(drivers/mtd/nand/nand_base.c:824): No description found for parameter 'page'
        Warning(drivers/mtd/nand/nand_base.c:947): No description found for parameter 'page'
        Warning(drivers/mtd/nand/nand_base.c:996): No description found for parameter 'page'
        Warning(drivers/mtd/nand/nand_base.c:1040): No description found for parameter 'page'
      Signed-off-by: NJaswinder Singh Rajput <jaswinderrajput@gmail.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      58475fb9
  7. 20 9月, 2009 2 次提交
  8. 04 9月, 2009 3 次提交
  9. 06 6月, 2009 1 次提交
  10. 06 4月, 2009 1 次提交
  11. 31 3月, 2009 1 次提交
    • R
      module: remove module_text_address() · a6e6abd5
      Rusty Russell 提交于
      Impact: Replace and remove risky (non-EXPORTed) API
      
      module_text_address() returns a pointer to the module, which given locking
      improvements in module.c, is useless except to test for NULL:
      
      1) If the module can't go away, use __module_text_address.
      2) Otherwise, just use is_module_text_address().
      
      Cc: linux-mtd@lists.infradead.org
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      a6e6abd5
  12. 20 3月, 2009 2 次提交
    • D
      [MTD] [NAND] fix broken debug messages · 374555ae
      David Brownell 提交于
      Fix incorrect debug messages (*write* not read); someone committed some
      cut'n'paste bugs.   There might be more, I only noticed these since I was
      looking for nand_read usage and landed in some very wrong functions.
      
      IMO all MTD debugging message framework is goofed, anyway.  It uses
      "DEBUG" in a way that's incompatible with usage most everywhere else in
      the kernel, and which prevents normal pr_dbg() and dev_dbg() calls from
      working right.
      
      [True. It predates those by a long way, and should probably be updated 
      to use them. dwmw2]
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      374555ae
    • D
      [MTD] [NAND] fix "raw" reads with ECC syndrome layouts · 52ff49df
      David Brownell 提交于
      The syndrome based page read/write routines store ECC, and possibly other
      "OOB" data, right after each chunk of ECC'd data.  With ECC chunk size of
      512 bytes and a large page (2KiB) NAND, the layout is:
      
        data-0 OOB-0 data-1 OOB-1 data-2 OOB-2 data-3 OOB-3 OOB-leftover
      
      Where OOBx is (prepad, ECC, postpad).  However, the current "raw" routines
      use a traditional layout -- data OOB, disregarding the prepad and postpad
      values -- so when they're used with that type of ECC hardware, those calls
      mix up the data and OOB.  Which means, in particular, that bad block
      tables won't be found on startup, with data corruption and related chaos
      ensuing.
      
      The current syndrome-based drivers in mainline all seem to use one chunk
      per page; presumably they haven't noticed such bugs.
      
      Fix this, by adding read/write page_raw_syndrome() routines as siblings of
      the existing non-raw routines; "raw" just means to bypass the ECC
      computations, not change data and OOB layout.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      52ff49df
  13. 11 12月, 2008 1 次提交
    • R
      [MTD] [NAND] remove excess kernel-doc notation · d3af0f04
      Randy Dunlap 提交于
      Delete extra kernel-doc notation for struct fields and function
      parameters that don't exist:
      
      Warning(include/linux/mtd/nand.h:428): Excess struct/union/enum/typedef member 'wq' description in 'nand_chip'
      Warning(include/linux/mtd/nand.h:428): Excess struct/union/enum/typedef member 'datbuf' description in 'nand_chip'
      Warning(include/linux/mtd/nand.h:428): Excess struct/union/enum/typedef member 'oobbuf' description in 'nand_chip'
      Warning(include/linux/mtd/nand.h:428): Excess struct/union/enum/typedef member 'oobdirty' description in 'nand_chip'
      Warning(include/linux/mtd/nand.h:428): Excess struct/union/enum/typedef member 'data_poi' description in 'nand_chip'
      Warning(drivers/mtd/nand/nand_base.c:2527): Excess function parameter 'maxchips' description in 'nand_scan_tail'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      d3af0f04
  14. 10 12月, 2008 1 次提交
    • A
      [MTD] update internal API to support 64-bit device size · 69423d99
      Adrian Hunter 提交于
      MTD internal API presently uses 32-bit values to represent
      device size.  This patch updates them to 64-bits but leaves
      the external API unchanged.  Extending the external API
      is a separate issue for several reasons.  First, no one
      needs it at the moment.  Secondly, whether the implementation
      is done with IOCTLs, sysfs or both is still debated.  Thirdly
      external API changes require the internal API to be accepted
      first.
      
      Note that although the MTD API will be able to support 64-bit
      device sizes, existing drivers do not and are not required
      to do so, although NAND base has been updated.
      
      In general, changing from 32-bit to 64-bit values cause little
      or no changes to the majority of the code with the following
      exceptions:
          	- printk message formats
          	- division and modulus of 64-bit values
          	- NAND base support
      	- 32-bit local variables used by mtdpart and mtdconcat
      	- naughtily assuming one structure maps to another
      	in MEMERASE ioctl
      Signed-off-by: NAdrian Hunter <ext-adrian.hunter@nokia.com>
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      69423d99
  15. 16 9月, 2008 1 次提交
  16. 21 8月, 2008 1 次提交
  17. 12 8月, 2008 1 次提交
  18. 25 7月, 2008 1 次提交
  19. 23 4月, 2008 1 次提交
  20. 03 2月, 2008 2 次提交
  21. 08 1月, 2008 1 次提交
  22. 21 10月, 2007 1 次提交
  23. 07 10月, 2007 1 次提交
  24. 03 8月, 2007 1 次提交