Skip to content
Snippets Groups Projects
  1. Aug 08, 2019
  2. Jun 24, 2018
  3. Apr 24, 2018
  4. Sep 03, 2017
  5. Aug 16, 2017
  6. Aug 13, 2017
  7. Jul 28, 2017
  8. Jun 14, 2017
  9. Jan 05, 2015
  10. Aug 20, 2014
  11. Jul 28, 2012
  12. Dec 24, 2011
    • 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
  13. Nov 06, 2011
    • 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
  14. Oct 20, 2011
  15. Sep 15, 2011
    • 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
Loading