diff options
author | Sol Boucher <solb@chromium.org> | 2015-05-06 14:44:40 -0700 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2015-05-26 02:30:21 +0200 |
commit | 32532ac92dd83d08e5d10de2d3a41fe3c9092e2c (patch) | |
tree | 140f1fad91503353b1292951789a2909c3124ee4 /util/cbfstool/fit.h | |
parent | 83070504125a8023a24cb87c3f3184d3ad9b1d20 (diff) |
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.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/util/cbfstool/fit.h b/util/cbfstool/fit.h index 3f3185c758..51e3c0feca 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 |