[flashrom] [PATCH] ichspi reprogram_opcode_on_the_fly return code fix

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Sat May 5 01:22:12 CEST 2012


Fix ICH SPI reprogram_opcode_on_the_fly return code.
Helpful for SFDP debugging.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Index: flashrom-sfdp_read_dummy_reduce_param_chunksize/ichspi.c
===================================================================
--- flashrom-ichspi_invalid_length_consistent/ichspi.c	(Revision 1528)
+++ flashrom-ichspi_invalid_length_consistent/ichspi.c	(Arbeitskopie)
@@ -416,7 +416,10 @@
 		msg_pdbg ("on-the-fly OPCODE (0x%02X) re-programmed, op-pos=%d\n", opcode, oppos);
 		return oppos;
 	}
-	return -1;
+	/* This case only happens if the writecnt/readcnt combination is
+	 * impossible to achieve on ICH SPI.
+	 */
+	return SPI_INVALID_LENGTH;
 }
 
 static int find_opcode(OPCODES *op, uint8_t opcode)
@@ -1001,7 +1004,11 @@
 	if (opcode_index == -1) {
 		if (!ichspi_lock)
 			opcode_index = reprogram_opcode_on_the_fly(cmd, writecnt, readcnt);
-		if (opcode_index == -1) {
+		if (opcode_index == SPI_INVALID_LENGTH) {
+			msg_pdbg("OPCODE 0x%02x has unsupported length, will "
+				 "not execute.\n", cmd);
+			return SPI_INVALID_LENGTH;
+		} else if (opcode_index == -1) {
 			msg_pdbg("Invalid OPCODE 0x%02x, will not execute.\n",
 				 cmd);
 			return SPI_INVALID_OPCODE;


-- 
http://www.hailfinger.org/





More information about the flashrom mailing list