From 1159d5864acbb4721ca5a0b77bb38284420e1194 Mon Sep 17 00:00:00 2001 From: Peter Stuge Date: Sat, 3 May 2008 04:34:37 +0000 Subject: Add a tested bitmap field to the flash chip table Two bits indicate OK and BAD for each operation PROBE READ ERASE WRITE. 8 bits out of 32 are in use now. No bits set means nothing has been tested. For chips with at least one operation that is not tested or not working, the user is asked to email a report to a special email adress so that the table can be updated. All chips are TEST_UNTESTED for now. Corresponding to flashrom svn r221 and coreboot v2 svn r3277. Signed-off-by: Peter Stuge Acked-by: Carl-Daniel Hailfinger --- flashrom.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'flashrom.c') diff --git a/flashrom.c b/flashrom.c index c7d0bda..2f3d7c9 100644 --- a/flashrom.c +++ b/flashrom.c @@ -412,6 +412,36 @@ int main(int argc, char *argv[]) } printf("Flash part is %s (%d KB).\n", flash->name, flash->total_size); + if (TEST_OK_MASK != (flash->tested & TEST_OK_MASK)) { + printf("===\n"); + if (flash->tested & TEST_BAD_MASK) { + printf("This flash part has status NOT WORKING for operations:"); + if (flash->tested & TEST_BAD_PROBE) + printf(" PROBE"); + if (flash->tested & TEST_BAD_READ) + printf(" READ"); + if (flash->tested & TEST_BAD_ERASE) + printf(" ERASE"); + if (flash->tested & TEST_BAD_WRITE) + printf(" WRITE"); + printf("\n"); + } else { + printf("This flash part has status UNTESTED for operations:"); + if (!(flash->tested & TEST_OK_PROBE)) + printf(" PROBE"); + if (!(flash->tested & TEST_OK_READ)) + printf(" READ"); + if (!(flash->tested & TEST_OK_ERASE)) + printf(" ERASE"); + if (!(flash->tested & TEST_OK_WRITE)) + printf(" WRITE"); + printf("\n"); + } + printf("Please email a report to flashrom@coreboot.org if any of the above operations\n"); + printf("work correctly for you with this flash part. Please include the full output\n"); + printf("from the program, including chipset found. Thank you for your help!\n"); + printf("===\n"); + } if (!(read_it | write_it | verify_it | erase_it)) { printf("No operations were specified.\n"); -- cgit v1.1