[coreboot] r3780 - trunk/util/flashrom

svn at coreboot.org svn at coreboot.org
Sat Nov 29 00:45:28 CET 2008


Author: hailfinger
Date: 2008-11-29 00:45:27 +0100 (Sat, 29 Nov 2008)
New Revision: 3780

Modified:
   trunk/util/flashrom/flash.h
   trunk/util/flashrom/flashrom.c
Log:
If a chip has any TEST_BAD_* flag set, we don't even list the
unsupported functions, giving the user the impression that the
unsupported functions are tested.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Acked-by: Peter Stuge <peter at stuge.se>


Modified: trunk/util/flashrom/flash.h
===================================================================
--- trunk/util/flashrom/flash.h	2008-11-28 21:36:51 UTC (rev 3779)
+++ trunk/util/flashrom/flash.h	2008-11-28 23:45:27 UTC (rev 3780)
@@ -95,6 +95,7 @@
 #define TEST_BAD_READ	(1<<5)
 #define TEST_BAD_ERASE	(1<<6)
 #define TEST_BAD_WRITE	(1<<7)
+#define TEST_BAD_PREW	(TEST_BAD_PROBE|TEST_BAD_READ|TEST_BAD_ERASE|TEST_BAD_WRITE)
 #define TEST_BAD_MASK	0xf0
 
 extern struct flashchip flashchips[];
@@ -106,7 +107,7 @@
  *
  * All LPC/FWH parts (parallel flash) have 8-bit device IDs if there is no
  * continuation code.
- * All SPI parts have 16-bit device IDs.
+ * SPI parts have 16-bit device IDs if they support RDID.
  */
 
 #define GENERIC_DEVICE_ID	0xffff	/* Only match the vendor ID */

Modified: trunk/util/flashrom/flashrom.c
===================================================================
--- trunk/util/flashrom/flashrom.c	2008-11-28 21:36:51 UTC (rev 3779)
+++ trunk/util/flashrom/flashrom.c	2008-11-28 23:45:27 UTC (rev 3780)
@@ -499,15 +499,19 @@
 			if (flash->tested & TEST_BAD_WRITE)
 				printf(" WRITE");
 			printf("\n");
-		} else {
+		}
+		if ((!(flash->tested & TEST_BAD_PROBE) && !(flash->tested & TEST_OK_PROBE)) ||
+		    (!(flash->tested & TEST_BAD_READ) && !(flash->tested & TEST_OK_READ)) ||
+		    (!(flash->tested & TEST_BAD_ERASE) && !(flash->tested & TEST_OK_ERASE)) ||
+		    (!(flash->tested & TEST_BAD_WRITE) && !(flash->tested & TEST_OK_WRITE))) {
 			printf("This flash part has status UNTESTED for operations:");
-			if (!(flash->tested & TEST_OK_PROBE))
+			if (!(flash->tested & TEST_BAD_PROBE) && !(flash->tested & TEST_OK_PROBE))
 				printf(" PROBE");
-			if (!(flash->tested & TEST_OK_READ))
+			if (!(flash->tested & TEST_BAD_READ) && !(flash->tested & TEST_OK_READ))
 				printf(" READ");
-			if (!(flash->tested & TEST_OK_ERASE))
+			if (!(flash->tested & TEST_BAD_ERASE) && !(flash->tested & TEST_OK_ERASE))
 				printf(" ERASE");
-			if (!(flash->tested & TEST_OK_WRITE))
+			if (!(flash->tested & TEST_BAD_WRITE) && !(flash->tested & TEST_OK_WRITE))
 				printf(" WRITE");
 			printf("\n");
 		}





More information about the coreboot mailing list