summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2026-03-04 02:06:33 +0000
committerLeah Rowe <leah@libreboot.org>2026-03-04 02:06:33 +0000
commit947211fc3c13412e3f65d17fef240989fda39b23 (patch)
treeef506b2f5858d6aafb9ad57d39d1f2f6a72fcf26
parent2f782b8a0198444a5f13b7cfe95ce7421ec7bf0f (diff)
util/nvmutil: tidy up cmd_brick
Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--util/nvmutil/nvmutil.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c
index 9e4f4d01..dabf8e83 100644
--- a/util/nvmutil/nvmutil.c
+++ b/util/nvmutil/nvmutil.c
@@ -547,11 +547,20 @@ cmd_setchecksum(void)
static void
cmd_brick(void)
{
- if (!good_checksum(part))
- err(ECANCELED, "brick p%d, file '%s'", part, fname);
+ uint16_t checksum_word;
- set_word(NVM_CHECKSUM_WORD, part,
- ((word(NVM_CHECKSUM_WORD, part)) ^ 0xFF));
+ if (!good_checksum(part)) {
+ err(ECANCELED,
+ "Part %d checksum already invalid in file '%s'",
+ part, fname);
+ }
+
+ /*
+ * We know checksum_word is valid, so we need only
+ * flip one bit to invalidate it.
+ */
+ checksum_word = word(NVM_CHECKSUM_WORD, part);
+ set_word(NVM_CHECKSUM_WORD, part, checksum_word ^ 1);
}
static void