[flashrom] [PATCH 5/6] improve output in case run_opcode fails
Stefan Tauner
stefan.tauner at student.tuwien.ac.at
Fri Apr 1 14:33:19 CEST 2011
Signed-off-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
---
ichspi.c | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/ichspi.c b/ichspi.c
index b24b6a0..0ad4f20 100644
--- a/ichspi.c
+++ b/ichspi.c
@@ -796,8 +796,7 @@ static int ich9_run_opcode(OPCODE op, uint32_t offset,
/* FIXME make sure we do not needlessly cause transaction errors. */
temp32 = REGREAD32(ICH9_REG_SSFS);
if (temp32 & SSFS_FCERR) {
- msg_perr("Transaction error for opcode 0x%02x!\n",
- op.opcode);
+ msg_perr("Transaction error!\n");
prettyprint_ich9_reg_ssfs(temp32);
prettyprint_ich9_reg_ssfc(temp32);
/* keep reserved bits */
@@ -974,7 +973,19 @@ int ich_spi_send_command(unsigned int writecnt, unsigned int readcnt,
result = run_opcode(*opcode, addr, count, data);
if (result) {
- msg_pdbg("run OPCODE 0x%02x failed\n", opcode->opcode);
+ msg_pdbg("run OPCODE 0x%02x failed at address 0x%06x.\n",
+ opcode->opcode, addr);
+ /* Print out the data array if it contains data to write.
+ * Errors are detected before the received data is read back into
+ * the array so it won't make sense to print it then. */
+ if (((opcode->spi_type == SPI_OPCODE_TYPE_WRITE_WITH_ADDRESS) ||
+ (opcode->spi_type == SPI_OPCODE_TYPE_WRITE_NO_ADDRESS))) {
+ msg_pspew("The data was:\n");
+ uint8_t i;
+ for(i=0; i<count; i++){
+ msg_pspew("%3d: 0x%02x\n", i, data[i]);
+ }
+ }
}
return result;
--
1.7.1
More information about the flashrom
mailing list