Author: stefanct
Date: Sat Jun 11 11:53:16 2011
New Revision: 1329
URL: http://flashrom.org/trac/flashrom/changeset/1329

Log:
ichspi.c: add pretty printing for SSFS+SSFC and the OPCODE struct

Signed-off-by: Stefan Tauner <[email protected]>
Acked-by: Carl-Daniel Hailfinger <[email protected]>

Modified:
   trunk/ichspi.c

Modified: trunk/ichspi.c
==============================================================================
--- trunk/ichspi.c      Sat Jun 11 11:53:09 2011        (r1328)
+++ trunk/ichspi.c      Sat Jun 11 11:53:16 2011        (r1329)
@@ -245,6 +245,50 @@
 
 static OPCODES O_EXISTING = {};
 
+/* pretty printing functions */
+static void pretty_print_opcodes(OPCODES *ops)
+{
+       if(ops == NULL)
+               return;
+
+       msg_pdbg("preop0=0x%02x, preop1=0x%02x\n", ops->preop[0],
+                ops->preop[1]);
+
+       OPCODE oc;
+       uint8_t i;
+       for (i = 0; i < 8; i++) {
+               oc = ops->opcode[i];
+               msg_pdbg("op[%d]=0x%02x, %d, %d\n",
+                        i,
+                        oc.opcode,
+                        oc.spi_type,
+                        oc.atomic);
+       }
+}
+
+#define pprint_reg(reg, bit, val, sep) msg_pdbg("%s=%d" sep, #bit, (val & 
reg##_##bit)>>reg##_##bit##_OFF)
+
+static void prettyprint_ich9_reg_ssfs(uint32_t reg_val)
+{
+       msg_pdbg("SSFS: ");
+       pprint_reg(SSFS, SCIP, reg_val, ", ");
+       pprint_reg(SSFS, FDONE, reg_val, ", ");
+       pprint_reg(SSFS, FCERR, reg_val, ", ");
+       pprint_reg(SSFS, AEL, reg_val, "\n");
+}
+
+static void prettyprint_ich9_reg_ssfc(uint32_t reg_val)
+{
+       msg_pdbg("SSFC: ");
+       pprint_reg(SSFC, SCGO, reg_val, ", ");
+       pprint_reg(SSFC, ACS, reg_val, ", ");
+       pprint_reg(SSFC, SPOP, reg_val, ", ");
+       pprint_reg(SSFC, COP, reg_val, ", ");
+       pprint_reg(SSFC, DBC, reg_val, ", ");
+       pprint_reg(SSFC, SME, reg_val, ", ");
+       pprint_reg(SSFC, SCF, reg_val, "\n");
+}
+
 static uint8_t lookup_spi_type(uint8_t opcode)
 {
        int a;
@@ -521,6 +565,8 @@
        } else {
                curopcodes = curopcodes_done;
                msg_pdbg("done\n");
+               pretty_print_opcodes(curopcodes);
+               msg_pdbg("\n");
                return 0;
        }
 }
@@ -796,6 +842,8 @@
        temp32 = REGREAD32(ICH9_REG_SSFS);
        if (temp32 & SSFS_FCERR) {
                msg_perr("Transaction error!\n");
+               prettyprint_ich9_reg_ssfs(temp32);
+               prettyprint_ich9_reg_ssfc(temp32);
                /* keep reserved bits */
                temp32 &= SSFS_RESERVED_MASK | SSFC_RESERVED_MASK;
                /* Clear the transaction error. */
@@ -1198,16 +1246,13 @@
 
                tmp = mmio_readl(ich_spibar + 0x90);
                msg_pdbg("0x90: 0x%02x (SSFS)\n", tmp & 0xff);
-               msg_pdbg("AEL %i, ", (tmp >> 4) & 1);
-               msg_pdbg("FCERR %i, ", (tmp >> 3) & 1);
-               msg_pdbg("FDONE %i, ", (tmp >> 2) & 1);
-               msg_pdbg("SCIP %i\n", (tmp >> 0) & 1);
+               prettyprint_ich9_reg_ssfs(tmp);
                if (tmp & (1 << 3)) {
                        msg_pdbg("Clearing SSFS.FCERR\n");
                        mmio_writeb(1 << 3, ich_spibar + 0x90);
                }
-               tmp >>= 8;
-               msg_pdbg("0x91: 0x%06x (SSFC)\n", tmp);
+               msg_pdbg("0x91: 0x%06x (SSFC)\n", tmp >> 8);
+               prettyprint_ich9_reg_ssfc(tmp);
 
                msg_pdbg("0x94: 0x%04x     (PREOP)\n",
                             mmio_readw(ich_spibar + 0x94));

_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to