1. 06 May, 2012 1 commit
  2. 16 Feb, 2012 2 commits
  3. 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
  4. 18 Dec, 2011 1 commit
  5. 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
  6. 23 Nov, 2011 1 commit
  7. 13 Nov, 2011 1 commit
  8. 09 Nov, 2011 1 commit
  9. 08 Nov, 2011 2 commits
  10. 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
  11. 20 Oct, 2011 1 commit
  12. 18 Sep, 2011 1 commit
  13. 17 Sep, 2011 4 commits
  14. 15 Sep, 2011 1 commit
    • Stefan Tauner's avatar
      ichspi: add ICH/PCH flash descriptor decoding via FDOC/FDOD · 1e14639f
      Stefan Tauner authored
      
      Based on the work of Matthias 'mazzoo' Wenzel this patch adds pretty
      printing of those ICH/PCH flash descriptor sections that are
      cached/mapped by the chipset (and which are therefore reachable via
      FDOC/FDOD registers).
      
      this includes the following:
      - content section:
          describes the image and some generic properties (number of
          sections, offset of sections, PCH/ICH and MCH/PROC strap
          offsets and lengths)
      - component section:
          identify the different SPI flash chips and their capabilities.
      - region section
          similarly to a partition table this describes the different regions.
          the content of FLREG* is derived from this section.
      - master section
          defines SPI master (host, ME, GbE) access rights of the
          individual regions. the content of PR* is derived from this section.
      
      this is only a part of the data included in the descriptor. other
      information can be retrieved from a complete binary dump of the
      descriptor region only.
      
      this patch also adds macros and pretty printing for "Vendor Specific
      Component Capabilities" registers: there are two of them: lower and
      upper. they describe the properties of the address space divided by
      FPBA (which allows to use multiple flash chips or partitions with
      different properties). the properties of all supported flash chips
      (together with their RDIDs) are stored in the same format in table
      in a descriptor section (which is used by the ME apparently). a
      later patch will use the macros outside of ichspi.c which is the
      reason why the prettyprinting function and the register bit macros
      are not defined in ichspi.c but ich_descriptors.h (else they would
      be moved in the follow-up patch).
      
      because this patch relies on (compiler) implementation-specific
      layouting of bit-fields, it checks for correct layout before taking
      any action on runtime.
      
      Corresponding to flashrom svn r1443.
      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>
      1e14639f
  15. 16 Aug, 2011 1 commit
  16. 09 Aug, 2011 1 commit
  17. 28 Jul, 2011 1 commit
  18. 27 Jul, 2011 1 commit
  19. 24 Jul, 2011 1 commit
  20. 07 Jul, 2011 1 commit
  21. 01 Jul, 2011 4 commits
  22. 12 Jun, 2011 1 commit
  23. 11 Jun, 2011 4 commits
  24. 28 May, 2011 1 commit
  25. 26 May, 2011 1 commit
  26. 19 May, 2011 1 commit
  27. 11 May, 2011 2 commits
  28. 03 May, 2011 1 commit