1. 12 Dec, 2014 1 commit
    • Jernej Škrabec's avatar
      Add support for Spansion S25FL127S · e814a9b6
      Jernej Škrabec authored
      
      This flash chip can be configured (one time) to use 64 KiB or 256 KiB sectors.
      Additionally, in the 64 KiB mode it supports 16 4 KiB sub-sectors that can be
      (one time) programmed to be on the top or bottom of the device. The sub-sectors
      can be erased with the 0x20 opcode but because this opcode does not work
      with the remaining sectors and flashrom can not cope with that the 0x20
      opcode is not supported yet.
      
      This patch adds two definitions, one for the 64 KiB and 256 KiB configuration
      respectively. The device also shares the RDID with the various S25FL128
      devices so we have to increase the maximum number of successfully probed
      chips to 8.
      
      The 64 KiB mode was tested on real hardware.
      
      Corresponding to flashrom svn r1858.
      Signed-off-by: default avatarJernej Škrabec <jernej.skrabec@planet.si>
      Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      e814a9b6
  2. 30 Aug, 2014 1 commit
    • Stefan Tauner's avatar
      Refine physical address mapping of flash chips · 4e32ec19
      Stefan Tauner authored
      
       - Create distinct functions for mapping and unmapping for flash chips.
       - Map only when needed: map before probing and unmap immediately
         after it. Map again when a single chip was probed successfully before
         taking any actual actions and clean up afterwards.
       - Map special function chip registers centrally together with flash space
         instead of within (some) probing methods after successful probes.
       - Save the used base addresses of the mappings in struct flashctx as well.
       - Do not try to (un)map the zero-sized chip definitions that are merely hacks.
         This also fixes the printing of wrong warnings for these chip definitions
         introduced in r1765.
      
      Corresponding to flashrom svn r1847.
      Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      Acked-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      4e32ec19
  3. 15 Aug, 2014 1 commit
  4. 08 Aug, 2014 1 commit
  5. 06 Aug, 2014 1 commit
    • Stefan Tauner's avatar
      Add support for S25FL128P, S25FL129P and refine it for S25FL128S chips · 88b19257
      Stefan Tauner authored
      
      Additionally to the existing S25FL128S......0 definition this patch
      adds S25FL128P......0, S25FL128P......1 and S25FL128S......1, as well as
      S25FL129P......0 and S25FL129P......1 definitions.
      S25FL12xP seem to be the predecessor families of S25FL128S. All
      associated chips can not be distinguished with RDID alone.
      
      Besides the new chips, this patch also fixes the name of the  previously
      supported S25FL128S model with uniform 256 kB sectors
      (S25FL128P......1 not 0) and adds the hybrid sector version (0) as well.
      
      Due to the shared IDs the user has to select the right chip manually
      with the -c parameter. To make this even possible, this patch enlarges
      the respective array for results to 6.
      Tested-by: default avatarAntonio Ospite <ao2@ao2.it>
      with a S25FL129P......0.
      
      Corresponding to flashrom svn r1838.
      Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      88b19257
  6. 19 Jul, 2014 1 commit
  7. 02 Jun, 2014 1 commit
  8. 07 May, 2014 1 commit
  9. 23 Sep, 2013 1 commit
  10. 15 Sep, 2013 1 commit
  11. 12 Aug, 2013 1 commit
    • Stefan Tauner's avatar
      Fix verification operation · c4f44df5
      Stefan Tauner authored
      
      I broke this in r1702 where I enabled avoidance of the verification step if
      we did not modify anything in the erase/write step. The problem is that
      all_skipped is initialized to true and hence it would only ever verify if
      there have been changes noted in the erase/write step. This obviously
      breaks the verification operation (-v/--verify) because there we never
      enter the erase/write loop.
      
      The better alternative would be to enable (the implicit) verification
      in the write loop and not in cli_classic.c. This would require a bigger
      change due to the existance of dont_verify_it. Eventually this is the
      right thing to do but not so shortly before a release.
      
      Corresponding to flashrom svn r1707.
      Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      Acked-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      c4f44df5
  12. 25 Jul, 2013 1 commit
  13. 30 Dec, 2012 1 commit
  14. 26 Dec, 2012 1 commit
  15. 24 Nov, 2012 1 commit
  16. 23 Oct, 2012 1 commit
  17. 25 Sep, 2012 1 commit
  18. 25 Aug, 2012 1 commit
  19. 22 Jul, 2012 1 commit
  20. 06 Jun, 2012 1 commit
  21. 14 May, 2012 1 commit
  22. 16 Feb, 2012 1 commit
    • Carl-Daniel Hailfinger's avatar
      Reenable forced read · b428e97c
      Carl-Daniel Hailfinger authored
      
      Forced read functionality was disabled when programmer registration was
      merged in r1475.
      
      We now support registering more than one controller at once for each bus
      type. This can happen e.g. if one SPI controller has an attached flash
      chip and one controller doesn't. In such a case we rely on the probe
      mechanism to find exactly one chip, and the probe mechanism will
      remember which controller/bus the flash chip is attached to. A forced
      read does not have the luxury of knowing which compatible controller to
      use, so this case is handled by always picking the first one. That may
      or may not be the correct one, but there is no way (yet) to specify
      which controller a flash chip is attached to.
      
      Corresponding to flashrom svn r1496.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      b428e97c
  23. 11 Jan, 2012 1 commit
  24. 04 Jan, 2012 1 commit
  25. 25 Dec, 2011 1 commit
  26. 22 Dec, 2011 1 commit
  27. 20 Dec, 2011 1 commit
    • Carl-Daniel Hailfinger's avatar
      Have all programmer init functions register bus masters/programmers · c40cff7b
      Carl-Daniel Hailfinger authored
      All programmer types (Parallel, SPI, Opaque) now register themselves
      into a generic programmer list and probing is now programmer-centric
      instead of chip-centric.
      Registering multiple SPI/... masters at the same time is now possible
      without any problems. Handling multiple flash chips is still unchanged,
      but now we have the infrastructure to deal with "dual BIOS" and "one
      flash behind southbridge and one flash behind EC" sanely.
      
      A nice side effect is that this patch kills quite a few global variables
      and improves the situation for libflashrom.
      
      Hint for developers:
      struct {spi,par,opaque}_programmer now have a void *data pointer to
      store any additional programmer-specific data, e.g. hardware
      configuration info.
      
      Note:
      flashrom -f -c FOO -r forced_read.bin
      does not work anymore. We have to find an architecturally clean way to
      solve this.
      
      Corresponding to flashrom svn r1475.
      
      Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006...
      c40cff7b
  28. 14 Dec, 2011 1 commit
    • Carl-Daniel Hailfinger's avatar
      Use struct flashctx instead of struct flashchip for flash chip access · 63fd9026
      Carl-Daniel Hailfinger authored
      
      Struct flashchip is used only for the flashchips array and for
      operations which do not access hardware, e.g. printing a list of
      supported flash chips.
      
      struct flashctx (flash context) contains all data available in
      struct flashchip, but it also contains runtime information like
      mapping addresses. struct flashctx is expected to grow additional
      members over time, a prime candidate being programmer info.
      struct flashctx contains all of struct flashchip with identical
      member layout, but struct flashctx has additional members at the end.
      
      The separation between struct flashchip/flashctx shrinks the memory
      requirement of the big flashchips array and allows future extension
      of flashctx without having to worry about bloat.
      
      Corresponding to flashrom svn r1473.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarMichael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
      63fd9026
  29. 09 Nov, 2011 1 commit
  30. 11 Sep, 2011 1 commit
  31. 08 Sep, 2011 1 commit
  32. 20 Aug, 2011 1 commit
  33. 15 Aug, 2011 1 commit
  34. 28 Jul, 2011 1 commit
  35. 25 Jul, 2011 1 commit
  36. 19 Jul, 2011 1 commit
  37. 15 Jul, 2011 1 commit
  38. 14 Jun, 2011 1 commit
    • David Hendricks's avatar
      Use shutdown callback mechanism to shutdown programmers · 8bb2021d
      David Hendricks authored
      
      This patch attempts to resolve some programmer shutdown ordering issues
      by having the programmer init functions register shutdown callbacks explicitly
      wherever it makes most sense. Before, assumptions were made that could lead to
      the internal programmer's state changing before the external programmer could be
      shut down properly. Now, each programmer cleans up after itself and (hopefully)
      performs each operation in the correct order.
      
      As a side-effect, this patch gives us a better usage model for reverse
      operations such as rpci_* and rmmio_*. In the long-run, this should make
      reversing the initialization process easier to understand, less tedious, and
      less error-prone.
      
      In short, this patch does the following:
      - Registers a shutdown callback during initialization for each programmer.
      - Kills the .shutdown function pointer from programmer_entry struct. Also,
        make most shutdown functions static.
      - Adds a few minor clean-ups and corrections (e.g. missing physunmap() calls).
      
      TODO: Remove forward declaration of serprog_shutdown() (added to simplify diff)
      
      Corresponding to flashrom svn r1338.
      Signed-off-by: default avatarDavid Hendricks <dhendrix@google.com>
      Acked-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      8bb2021d
  39. 07 May, 2011 1 commit
  40. 04 May, 2011 1 commit