util/ifittool: Fix clearing FIT when setting the pointer
When setting the FIT pointer, the FIT table is only known later in the
codeflow.
Change-Id: I658f4fffa997d1f7beaf6d6ae37d2885ae602e5c
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63035
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/util/cbfstool/ifittool.c b/util/cbfstool/ifittool.c
index c2a5221..88a973c 100644
--- a/util/cbfstool/ifittool.c
+++ b/util/cbfstool/ifittool.c
@@ -308,13 +308,12 @@
ERROR("FIT not found.\n");
return 1;
}
- }
-
- if (clear_table) {
- if (fit_clear_table(fit)) {
- partitioned_file_close(image_file);
- ERROR("Failed to clear table.\n");
- return 1;
+ if (clear_table) {
+ if (fit_clear_table(fit)) {
+ partitioned_file_close(image_file);
+ ERROR("Failed to clear table.\n");
+ return 1;
+ }
}
}
@@ -394,6 +393,15 @@
return 1;
}
fit = fit_get_table(&bootblock, convert_to_from_top_aligned, topswap_size);
+
+ if (clear_table) {
+ if (fit_clear_table(fit)) {
+ partitioned_file_close(image_file);
+ ERROR("Failed to clear table.\n");
+ return 1;
+ }
+ }
+
break;
}
case DEL_OP: