summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward O'Callaghan <quasisec@google.com>2022-02-17 11:16:25 +1100
committerCommit Bot <commit-bot@chromium.org>2022-03-03 12:33:52 +0000
commitd0e5d8bc0ba6a5ac0ddff70f38adf31bfc082e49 (patch)
treee36d65e7505765edae6b6dedf225ac66e190426e
parent160904567282fb18b9c42e5bff65e65a45d408e1 (diff)
downloadvboot-d0e5d8bc0ba6a5ac0ddff70f38adf31bfc082e49.tar.gz
vboot_ref/cgpt: Consolidate flashrom write cmd paths
Small refactor to make it easier to more towards libflashrom. BUG=b:207808292,b:220079643 BRANCH=none TEST=`make cgpt` Signed-off-by: Edward O'Callaghan <quasisec@google.com> Change-Id: Ie0c7f4faee3052300b10ba2d1adce7876d7b821c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/3469737 Tested-by: Edward O'Callaghan <quasisec@chromium.org> Auto-Submit: Edward O'Callaghan <quasisec@chromium.org> Reviewed-by: Sam McNally <sammc@chromium.org> Commit-Queue: Edward O'Callaghan <quasisec@chromium.org>
-rw-r--r--cgpt/cgpt_nor.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/cgpt/cgpt_nor.c b/cgpt/cgpt_nor.c
index 15302715..76fefe1e 100644
--- a/cgpt/cgpt_nor.c
+++ b/cgpt/cgpt_nor.c
@@ -248,6 +248,18 @@ out_free:
return ret;
}
+static int FlashromWriteRegion(const char *region)
+{
+ const char *const argv[] = {FLASHROM_PATH, "-i", region, "-w", "--noverify-all"};
+ // Redirect stdout to /dev/null so that flashrom does not muck up cgpt's
+ // output.
+ if (subprocess_run(argv, &subprocess_null, &subprocess_null, NULL) != 0) {
+ Warning("Cannot write '%s' back with flashrom.\n", region);
+ return 1;
+ }
+ return 0;
+}
+
// Write "rw_gpt" back to NOR flash. We write the file in two parts for safety.
// TODO(b:184812319): Replace this function with flashrom_write.
int WriteNorFlash(const char *dir) {
@@ -270,22 +282,11 @@ int WriteNorFlash(const char *dir) {
Error("Cannot change directory.\n");
goto out_free;
}
- const char *const argv1[] = {FLASHROM_PATH, "-i", FLASHROM_RW_GPT_PRI,
- "-w", "--noverify-all"};
- // Redirect stdout to /dev/null so that flashrom does not muck up cgpt's
- // output.
- if (subprocess_run(argv1, &subprocess_null, &subprocess_null, NULL) != 0) {
- Warning("Cannot write the 1st half of rw_gpt back with flashrom.\n");
+ if (FlashromWriteRegion(FLASHROM_RW_GPT_PRI))
nr_fails++;
- }
- const char *const argv2[] = {FLASHROM_PATH, "-i", FLASHROM_RW_GPT_SEC,
- "-w", "--noverify-all"};
- // Redirect stdout to /dev/null so that flashrom does not muck up cgpt's
- // output.
- if (subprocess_run(argv2, &subprocess_null, &subprocess_null, NULL) != 0) {
- Warning("Cannot write the 2nd half of rw_gpt back with flashrom.\n");
+ if (FlashromWriteRegion(FLASHROM_RW_GPT_SEC))
nr_fails++;
- }
+
if (chdir(cwd) < 0) {
Error("Cannot change directory back to original.\n");
goto out_free;