1. 27 Apr, 2012 1 commit
  2. 01 Mar, 2012 1 commit
  3. 13 Feb, 2012 1 commit
  4. 04 Jan, 2012 1 commit
  5. 24 Dec, 2011 1 commit
    • Stefan Tauner's avatar
      Add ich_descriptor_tool to decode all flash descriptors stored in a flash dump file · b3850964
      Stefan Tauner authored
      
      This patch adds an external utility that shares most of the existing descriptor
      decoding source code. Additionally to what is available via FDOC/FDOD this
      allows to access:
       - the softstraps which are used to configure the chipset by flash content
         without the need for BIOS routines. on ICH8 it is possible to read those
         with FDOC/FDOC too, but this was removed in later chipsets.
       - the ME VSCC (Vendor Specific Component Capabilities) table. simply put,
         this is an SPI chip database used to figure out the flash's capabilities.
       - the MAC address stored in the GbE image.
      
      Intel thinks this information should be confidential for ICH9 and up, but
      references some tidbits in their public documentation.
      This patch includes the human-readable information for ICH8, Ibex Peak
      (5 series) and Cougar Point (6 series); the latter two were obtained from
      leaked "SPI Flash Programming Guides" found by google. Data regarding ICH9
      and 10 is unknown to us yet. It can probably found in:
      "Intel® ICH7, ICH8, ICH9 and ICH10 — SPI Family Flash Programming Guide"
      Information regarding the upcoming Panther Point chipset is also not included.
      
      Corresponding to flashrom svn r1480.
      Signed-off-by: default avatarStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
      Acked-by: default avatarMatthias Wenzel <bios@mazzoo.de>
      b3850964
  6. 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: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      Acked-by: default avatarMichael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
      c40cff7b
  7. 18 Dec, 2011 1 commit
  8. 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
  9. 23 Nov, 2011 1 commit
  10. 09 Nov, 2011 1 commit
  11. 06 Nov, 2011 1 commit
    • Stefan Tauner's avatar
      ichspi: use a variable to distinguish ich generations instead of spi_programmer->type · a8d838d9
      Stefan Tauner authored
      
      The type member is enough most of the time to derive the wanted
      information, but
       - not always (e.g. ich_set_bbar),
       - only available after registration, which we want to delay till the
         end of init, and
       - we really want to distinguish between chipset version-grained
         attributes which are not reflected by the registered programmer.
      
      Hence this patch introduces a new static variable which is set up
      early by the init functions and allows us to get rid of all "switch
      (spi_programmer->type)" in ichspi.c. We reuse the enum introduced
      for descriptor mode for the type of the new variable.
      
      Previously magic numbers were passed by chipset_enable wrappers. Now
      they use the enumeration items too. To get this working the enum
      definition had to be moved to programmer.h.
      
      Another noteworthy detail: previously we have checked for a valid
      programmer/ich generation all over the place. I have removed those
      checks and added one single check in the init method. Calling any
      function of a programmer without executing the init method first, is
      undefined behavior.
      
      Corresponding to flashrom svn r1460.
      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>
      a8d838d9
  12. 04 Nov, 2011 1 commit
  13. 22 Oct, 2011 1 commit
  14. 18 Sep, 2011 2 commits
  15. 15 Sep, 2011 1 commit
  16. 08 Sep, 2011 1 commit
  17. 03 Sep, 2011 2 commits
  18. 31 Aug, 2011 1 commit
  19. 13 Jul, 2011 1 commit
  20. 26 Jun, 2011 1 commit
  21. 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
  22. 09 Jun, 2011 1 commit
  23. 26 May, 2011 1 commit
  24. 11 May, 2011 2 commits
  25. 08 May, 2011 1 commit
  26. 05 May, 2011 1 commit
    • Carl-Daniel Hailfinger's avatar
      Revamp board-specific quirk handling, allow for laptop support · 580d29a9
      Carl-Daniel Hailfinger authored
      
      Handle board-specific quirks in three phases:
      1. Before Super I/O probing (e.g. blacklisting of some Super I/O probes,
      or unhiding the Super I/O)
      2. Before the laptop enforcement decision (e.g. whitelisting a laptop
      for flashing)
      3. After chipset enabling (all current board enables)
      
      Implementation note: All entries in board_pciid_enables get an
      additional phase parameter. Alternative variants (3 tables instead of 1)
      also have their downsides, and I chose table bloat over table
      multiplication).
      
      With this patch, it should be possible to whitelist supported laptops
      with a matching entry (phase P2) in board_pciid_enables which points to
      a function setting laptop_ok=1. (In case DMI is broken, matching might
      be a little bit more difficult, but it is still doable.)
      
      Corresponding to flashrom svn r1294.
      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>
      580d29a9
  27. 04 May, 2011 1 commit
  28. 03 May, 2011 1 commit
  29. 27 Apr, 2011 1 commit
  30. 08 Mar, 2011 2 commits
  31. 07 Mar, 2011 1 commit
  32. 28 Feb, 2011 1 commit
  33. 15 Feb, 2011 1 commit
  34. 04 Feb, 2011 1 commit
  35. 26 Dec, 2010 1 commit
  36. 03 Dec, 2010 1 commit
    • Mark Marshall's avatar
      Add support for the Open Graphics Project development card, OGD1, as a SPI flash programmer · 90021f28
      Mark Marshall authored
      The project is in the the process of designing and making a complete,
      open source, graphics card. More info at http://wiki.opengraphics.org
      
      .
      
      The first development card is a PCI add in card containing a couple of
      FPGAs and a couple of serial flash chips (amongst other things). The
      FPGAs are called XP10 and S3 (their part numbers). The XP10 contains its
      own flash and does not need to be programmed by flashrom - it ensures
      that the device can enumerate on the PCI bus without needing further
      configuration.
      
      The larger FPGA is the S3. This is configured from a large SPI flash
      (2 MBytes). The second SPI flash is used to store the VGA BIOS. It is
      smaller (128 KBytes). This patch adds support for programming either of
      the two SPI flash chips.
      
      The programmer device takes one configuration option which selects which
      of the two flash chips is accessed. This must be set to either "cprom"
      or "bprom". (The project refers to the two chips as "cprom" / "bprom",
      "s3" and "bios" are more readable alternatives).
      
      Add support for SST SST25VF010 (REMS). Mark SST SST25VF016B as tested
      for write.
      
      Corresponding to flashrom svn r1241.
      Signed-off-by: default avatarMark Marshall <mark.marshall@csr.com>
      Acked-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
      90021f28