summaryrefslogtreecommitdiffstats
path: root/util/cbfstool/fit.h
diff options
context:
space:
mode:
authorSol Boucher <solb@chromium.org>2015-05-06 14:44:40 -0700
committerStefan Reinauer <stefan.reinauer@coreboot.org>2015-05-26 02:30:21 +0200
commit32532ac92dd83d08e5d10de2d3a41fe3c9092e2c (patch)
tree140f1fad91503353b1292951789a2909c3124ee4 /util/cbfstool/fit.h
parent83070504125a8023a24cb87c3f3184d3ad9b1d20 (diff)
downloadcoreboot-32532ac92dd83d08e5d10de2d3a41fe3c9092e2c.tar.gz
coreboot-32532ac92dd83d08e5d10de2d3a41fe3c9092e2c.tar.bz2
coreboot-32532ac92dd83d08e5d10de2d3a41fe3c9092e2c.zip
cbfstool: Make update-fit action work on new-style images
Because new images place the bootblock in a separate region from the primary CBFS, performing an update-fit operation requires reading an additional section and choosing a different destination for the write based on the image type. Since other actions are not affected by these requirements, the logic for the optional read and all writing is implemented in the cbfs_update_fit() function itself, rather than relying on the main() function for writing as the other actions do. Change-Id: I2024c59715120ecc3b9b158e007ebce75acff023 Signed-off-by: Sol Boucher <solb@chromium.org> Reviewed-on: http://review.coreboot.org/10137 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'util/cbfstool/fit.h')
-rw-r--r--util/cbfstool/fit.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/util/cbfstool/fit.h b/util/cbfstool/fit.h
index 3f3185c75835..51e3c0fecad5 100644
--- a/util/cbfstool/fit.h
+++ b/util/cbfstool/fit.h
@@ -20,6 +20,19 @@
#ifndef __CBFSTOOL_FIT_H
#define __CBFSTOOL_FIT_H
-int fit_update_table(struct cbfs_image *image,
- int empty_entries, const char *microcode_blob_name);
+#include "cbfs_image.h"
+#include "common.h"
+
+/*
+ * Converts between offsets from the start of the specified image region and
+ * "top-aligned" offsets from the top of the entire flash image. Should work in
+ * both directions: accepts either type of offset and produces the other type.
+ * The implementation must have some notion of the flash image's total size.
+ */
+typedef unsigned (*fit_offset_converter_t)(const struct buffer *region,
+ unsigned offset);
+
+int fit_update_table(struct buffer *bootblock, struct cbfs_image *image,
+ const char *microcode_blob_name, int empty_entries,
+ fit_offset_converter_t offset_fn);
#endif