• 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
ich_descriptors.c 10.3 KB