add headers for the columns and some decoding into human readable format.

---
before:
[…]
Reading OPCODES... done
preop0=0x06, preop1=0x50
op[0]=0x02, 3, 0
op[1]=0x03, 2, 0
op[2]=0x20, 3, 0
op[3]=0x05, 0, 0
op[4]=0x9f, 0, 1
op[5]=0x20, 1, 2
op[6]=0x01, 1, 0
op[7]=0x06, 0, 0

SPI Read Configuration: prefetching disabled, caching enabled, OK.
This chipset supports the following protocols: FWH, SPI.
[…]

after:
[…]
Reading OPCODES... done
        OP        Type      Pre-OP
op[0]: 0x02, write w/  addr, none
op[1]: 0x03, read  w/  addr, none
op[2]: 0x20, write w/  addr, none
op[3]: 0x05, read  w/o addr, none
op[4]: 0x9f, read  w/o addr, none
op[5]: 0x20, write w/o addr,  1
op[6]: 0x01, write w/o addr,  2
op[7]: 0x06, read  w/o addr, none
Pre-OP 0: 0x06, Pre-OP 1: 0x50

SPI Read Configuration: prefetching disabled, caching enabled, OK.
This chipset supports the following protocols: FWH, SPI.
[…]

i could also print the preops directly in the preop column instead of
using that redirection. but i think as debug output it is better to
know the index of the two preops too.

side note: does it make sense to create an opcode -> string decoder
for flashrom-wide usage in user output (in spi25.c)?
an erase opcode -> function pointer decoder is used in sfdp, that could
also be generalized like that.

Signed-off-by: Stefan Tauner <[email protected]>
---
 ichspi.c |   34 +++++++++++++++++++++++-----------
 1 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/ichspi.c b/ichspi.c
index d51a6b2..2e25d34 100644
--- a/ichspi.c
+++ b/ichspi.c
@@ -294,22 +294,34 @@ static OPCODES O_EXISTING = {};
 /* pretty printing functions */
 static void prettyprint_opcodes(OPCODES *ops)
 {
-       if(ops == NULL)
-               return;
-
-       msg_pdbg("preop0=0x%02x, preop1=0x%02x\n", ops->preop[0],
-                ops->preop[1]);
-
        OPCODE oc;
+       const char *t;
+       const char *a;
        uint8_t i;
+       static const char *const spi_type[4] = {
+               "read  w/o addr",
+               "write w/o addr",
+               "read  w/  addr",
+               "write w/  addr"
+       };
+       static const char *const atomic_type[3] = {
+               "none",
+               " 0  ",
+               " 1  "
+       };
+
+       if (ops == NULL)
+               return;
+
+       msg_pdbg("        OP        Type      Pre-OP\n");
        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);
+               t = (oc.spi_type > 3) ? "invalid" : spi_type[oc.spi_type];
+               a = (oc.atomic > 2) ? "invalid" : atomic_type[oc.atomic];
+               msg_pdbg("op[%d]: 0x%02x, %s, %s\n", i, oc.opcode, t, a);
        }
+       msg_pdbg("Pre-OP 0: 0x%02x, Pre-OP 1: 0x%02x\n", ops->preop[0],
+                ops->preop[1]);
 }
 
 #define pprint_reg(reg, bit, val, sep) msg_pdbg("%s=%d" sep, #bit, (val & 
reg##_##bit)>>reg##_##bit##_OFF)
-- 
1.7.1


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

Reply via email to