diff options
-rw-r--r-- | util/flashrom/flash.h | 3 | ||||
-rw-r--r-- | util/flashrom/flashrom.c | 14 |
2 files changed, 11 insertions, 6 deletions
diff --git a/util/flashrom/flash.h b/util/flashrom/flash.h index cbc2e48a87..70a390f2f3 100644 --- a/util/flashrom/flash.h +++ b/util/flashrom/flash.h @@ -95,6 +95,7 @@ struct flashchip { #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 @@ extern struct flashchip flashchips[]; * * 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 */ diff --git a/util/flashrom/flashrom.c b/util/flashrom/flashrom.c index 9357d0480e..5e84134d31 100644 --- a/util/flashrom/flashrom.c +++ b/util/flashrom/flashrom.c @@ -499,15 +499,19 @@ int main(int argc, char *argv[]) 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"); } |