diff options
author | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2008-11-28 23:45:27 +0000 |
---|---|---|
committer | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2008-11-28 23:45:27 +0000 |
commit | f86f1fe961f661a0c892bdd6de94007cc1466c01 (patch) | |
tree | f77250f688951ed90576078f9fd67f86f1dba07c /util | |
parent | f22ce41840ae966a6f465e90c8f05aed9ae5ef6b (diff) | |
download | coreboot-f86f1fe961f661a0c892bdd6de94007cc1466c01.tar.xz |
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@gmx.net>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3780 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util')
-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"); } |