Warn if we skipped all blocks while writing
Quick hack to print a warning if we skip all blocks in a write
process because they are already equal to the requested image. We
want something like this to make users aware... and some developers
who regularly fall for this too *coughcough*. There might be more
elegant solutions for this... patches welcome.
This does not work for erasing because we do that unconditionally.
Corresponding to flashrom svn r1680.
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Idwer Vollering <vidwer@gmail.com>
diff --git a/flash.h b/flash.h
index 1857cc0..7e50ae5 100644
--- a/flash.h
+++ b/flash.h
@@ -27,6 +27,7 @@
#include <inttypes.h>
#include <stdint.h>
#include <stddef.h>
+#include <stdbool.h>
#ifdef _WIN32
#include <windows.h>
#undef min
diff --git a/flashrom.c b/flashrom.c
index c11f723..6ab72a0 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -1310,6 +1310,7 @@
return ret;
}
+static bool all_skipped = true;
static int erase_and_write_block_helper(struct flashctx *flash,
unsigned int start, unsigned int len,
uint8_t *curcontents,
@@ -1357,6 +1358,8 @@
}
if (skip)
msg_cdbg("S");
+ else
+ all_skipped = false;
return ret;
}
@@ -1483,6 +1486,8 @@
if (ret) {
msg_cerr("FAILED!\n");
} else {
+ if (all_skipped)
+ msg_cinfo("\nWarning: Chip content is identical to the requested image.\n");
msg_cinfo("Erase/write done.\n");
}
return ret;