1. 15 Nov, 2012 2 commits
    • Brian Norris's avatar
      mtd: nand: fix Samsung SLC detection regression · 6924d99f
      Brian Norris authored
      This patch fixes errors seen in identifying old Samsung SLC, due to the
      following commits:
      
          commit e2d3a35e
          mtd: nand: detect Samsung K9GBG08U0A, K9GAG08U0F ID
      
          commit e3b88bd6
          mtd: nand: add generic READ ID length calculation functions
      
      Some Samsung NAND with "5-byte" ID really appear to have 6-byte IDs, with
      wraparound like:
      
        Samsung K9K8G08U0D
        ec d3 51 95 58 ec ec d3
      
        Samsung K9F1G08U0C
        ec f1 00 95 40 ec ec f1
      
        Samsung K9F2G08U0B
        ec da 10 95 44 00 ec da
      
      This bad wraparound makes it hard to reliably detect the difference
      between Samsung SLC with 5-byte ID and Samsung SLC with 6-byte ID.
      
      The fix is to, for now, only use the new Samsung table for MLC. We
      cannot support the new SLC (K9FAG08U0M) until Samsung gives better ID
      decode information.
      
      Note that this applies in addition to the previous regression fix:
      
          commit bc86cf7a
          mtd: nand: fix Samsung SLC NAND identification regression
      
      Together, these patches completely restore the previous detection
      behavior so that we cannot see any more regressions in Samsung SLC NAND
      (finger crossed). With luck, I can get a hold of a Samsung
      representative and stop having to cross my fingers eventually.
      Reported-by: default avatarSylwester Nawrocki <sylvester.nawrocki@gmail.com>
      Tested-by: default avatarSylwester Nawrocki <sylvester.nawrocki@gmail.com>
      Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
      Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      6924d99f
    • Brian Norris's avatar
      mtd: nand: fix Samsung SLC NAND identification regression · af451af4
      Brian Norris authored
      A combination of the following two commits caused a regression in 3.7-rc1
      when identifying some Samsung NAND, so that some previously working NAND
      were no longer detected properly:
      
          commit e3b88bd6
          mtd: nand: add generic READ ID length calculation functions
      
          commit e2d3a35e
          mtd: nand: detect Samsung K9GBG08U0A, K9GAG08U0F ID
      
      Particularly, a regression was seen on Samsung K9F2G08U0B, with the
      following full 8-byte READ ID string:
      
          ec da 10 95 44 00 ec da
      
      The basic problem is that Samsung manufactures both SLC and MLC NAND
      that use a non-standard decoding table for deriving information from
      their IDs. I have heuristically determined that all the chips that use
      the new table have ID strings which wrap around after the 6th byte.
      Unfortunately, I overlooked the fact that some older Samsung SLC (which
      use a different decoding table) have "5 byte ID strings" which also wrap
      around after the 6th byte.
      
      This patch re-introduces a distinction between these old and new Samsung
      NAND by checking that the 6th byte is non-zero, allowing both old and
      new Samsung NAND to be detected properly.
      Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
      Tested-by: default avatarBrian Norris <computersforpeace@gmail.com>
      Reported-by: default avatarMarek Vasut <marex@denx.de>
      Tested-by: default avatarMarek Vasut <marex@denx.de>
      Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      af451af4
  2. 09 Nov, 2012 3 commits
  3. 04 Nov, 2012 1 commit
  4. 03 Nov, 2012 15 commits
  5. 02 Nov, 2012 19 commits