1. 18 Dec, 2011 1 commit
  2. 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
  3. 23 Nov, 2011 1 commit
  4. 09 Nov, 2011 1 commit
  5. 18 Sep, 2011 2 commits
  6. 28 Jul, 2011 1 commit
  7. 27 Jul, 2011 1 commit
  8. 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
  9. 11 May, 2011 2 commits
  10. 04 Feb, 2011 1 commit
  11. 09 Nov, 2010 1 commit
  12. 01 Nov, 2010 1 commit
    • Carl-Daniel Hailfinger's avatar
      Add SPI flash emulation capability to the dummy programmer · f68aa8ac
      Carl-Daniel Hailfinger authored
      
      You have to choose between
      - no emulation
      - ST M25P10.RES SPI flash chip (RES, page write)
      - SST SST25VF040.REMS SPI flash chip (REMS, byte write)
      - SST SST25VF032B SPI flash chip (RDID, AAI write)
      Example usage: flashrom -p dummy:emulate=SST25VF032B
      
      Flash image persistence is available as well.
      Example usage: flashrom -p dummy:image=dummy_simulator.rom
      
      Allow setting the max chunksize for page write with the dummy
      programmer.
      Example usage: flashrom -p dummy:spi_write_256_chunksize=5
      
      Flash emulation is compiled in by default. 
      
      This code helped me find and fix various bugs in the SPI write code
      as well as in the testsuite.
      
      Corresponding to flashrom svn r1220.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarDavid Hendricks <dhendrix@google.com>
      f68aa8ac
  13. 06 Oct, 2010 1 commit
  14. 27 Jul, 2010 1 commit
    • Carl-Daniel Hailfinger's avatar
      Split off programmer.h from flash.h · 5b997c3e
      Carl-Daniel Hailfinger authored
      
      Programmer specific functions are of absolutely no interest to any file
      except those dealing with programmer specific actions (special SPI
      commands and the generic core).
      
      The new header structure is as follows (and yes, improvements are
      possible):
      flashchips.h  flash chip IDs
      chipdrivers.h  chip-specific read/write/... functions
      flash.h  common header for all stuff that doesn't fit elsewhere
      hwaccess.h hardware access functions
      programmer.h  programmer specific functions
      coreboot_tables.h  header from coreboot, internal programmer only
      spi.h SPI command definitions
      
      Corresponding to flashrom svn r1112.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarUwe Hermann <uwe@hermann-uwe.de>
      5b997c3e
  15. 14 Jul, 2010 2 commits
  16. 08 Jul, 2010 1 commit
  17. 06 Jul, 2010 1 commit
  18. 20 Jun, 2010 1 commit
  19. 16 Feb, 2010 1 commit
  20. 09 Jan, 2010 1 commit
  21. 12 Aug, 2009 1 commit
  22. 09 Aug, 2009 1 commit
  23. 10 Jul, 2009 1 commit
    • Carl-Daniel Hailfinger's avatar
      Add SPI multicommand infrastructure · d0478299
      Carl-Daniel Hailfinger authored
      
      Some SPI opcodes need to be sent in direct succession after each other
      without any chip deselect happening in between. A prominent example is
      WREN (Write Enable) directly before PP (Page Program). Intel calls the
      first opcode in such a row "preopcode".
      
      Right now, we ignore the direct succession requirement completely and it
      works pretty well because most onboard SPI masters have a timing or
      heuristics which make the problem disappear.
      The FT2232 SPI flasher is different. Since it is an external flasher,
      timing is very different to what we can expect from onboard flashers and
      this leads to failure at slow speeds.
      
      This patch allows any function to submit multiple SPI commands in a
      stream to any flasher. Support in the individual flashers isn't
      implemented yet, so there is one generic function which passes the each
      command in the stream one-by-one to the command functions of the
      selected SPI flash driver.
      Tested-by: default avatarJakob Bornecrantz <wallbraker@gmail.com>
      
      Corresponding to flashrom svn r645.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarJakob Bornecrantz <wallbraker@gmail.com>
      d0478299
  24. 05 Jun, 2009 2 commits
  25. 02 Jun, 2009 1 commit
  26. 01 Jun, 2009 1 commit
  27. 31 May, 2009 1 commit
    • Carl-Daniel Hailfinger's avatar
      Add bus type annotation to struct flashchips · 1dfe0ff1
      Carl-Daniel Hailfinger authored
      
      Right now, the annotation only differentiates between SPI and non-SPI.
      Anyone who knows more about a specific flash chip should feel free to
      update it.
      
      The existing flashbus variable was abused to denote the SPI controller
      type. Use an aptly named variable for that purpose.
      
      Once this patch is merged, the chipset/programmer init functions can set
      supported flash chip types and flashrom can automatically select only
      matching probe/read/erase/write functions. A side benefit of that will
      be the elimination of the Winbond W29EE011 vs. AMIC A49LF040A conflict.
      
      Corresponding to flashrom svn r556.
      Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarUwe Hermann <uwe@hermann-uwe.de>
      1dfe0ff1
  28. 16 May, 2009 2 commits
  29. 14 May, 2009 1 commit
  30. 11 May, 2009 2 commits
  31. 09 May, 2009 1 commit