diff options
author | Aaron Durbin <adurbin@chromium.org> | 2015-10-27 13:17:52 -0500 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2015-10-29 16:59:54 +0100 |
commit | 176250292920d119ca6d17181ef468714951b7e2 (patch) | |
tree | 54a2364a807bd5ffa757cd78c9de38d485259f30 | |
parent | 3fcb11478ff0a73b952069512ad0797749089e7d (diff) |
cbfstool: add optional -m ARCH to extract
In order to prepare allowing for one to extract a stage
into an ELF file provide an optional -m ARCH option. This
allows one to indicate to cbfstool what architecture type
the ELF file should be in.
Longer term each stage and payload will have an attribute
associated with it which indicates the attributes of
the executable.
Change-Id: Id190c9719908afa85d5a3b2404ff818009eabb4c
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/12217
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rw-r--r-- | util/cbfstool/cbfs_image.c | 2 | ||||
-rw-r--r-- | util/cbfstool/cbfs_image.h | 2 | ||||
-rw-r--r-- | util/cbfstool/cbfstool.c | 7 |
3 files changed, 6 insertions, 5 deletions
diff --git a/util/cbfstool/cbfs_image.c b/util/cbfstool/cbfs_image.c index 63151c9660..245230a7cb 100644 --- a/util/cbfstool/cbfs_image.c +++ b/util/cbfstool/cbfs_image.c @@ -725,7 +725,7 @@ static int cbfs_stage_decompress(struct buffer *buff) } int cbfs_export_entry(struct cbfs_image *image, const char *entry_name, - const char *filename) + const char *filename, unused uint32_t arch) { struct cbfs_file *entry = cbfs_get_entry(image, entry_name); struct buffer buffer; diff --git a/util/cbfstool/cbfs_image.h b/util/cbfstool/cbfs_image.h index f602976177..928475494f 100644 --- a/util/cbfstool/cbfs_image.h +++ b/util/cbfstool/cbfs_image.h @@ -90,7 +90,7 @@ struct cbfs_file *cbfs_get_entry(struct cbfs_image *image, const char *name); /* Exports an entry to external file. * Returns 0 on success, otherwise (ex, not found) non-zero. */ int cbfs_export_entry(struct cbfs_image *image, const char *entry_name, - const char *filename); + const char *filename, uint32_t arch); /* Adds an entry to CBFS image by given name and type. If content_offset is * non-zero, try to align "content" (CBFS_SUBHEADER(p)) at content_offset. diff --git a/util/cbfstool/cbfstool.c b/util/cbfstool/cbfstool.c index 58f801790e..08962fd55e 100644 --- a/util/cbfstool/cbfstool.c +++ b/util/cbfstool/cbfstool.c @@ -795,7 +795,8 @@ static int cbfs_extract(void) param.headeroffset)) return 1; - return cbfs_export_entry(&image, param.name, param.filename); + return cbfs_export_entry(&image, param.name, param.filename, + param.arch); } static int cbfs_write(void) @@ -945,7 +946,7 @@ static const struct command commands[] = { {"add-master-header", "H:r:vh?", cbfs_add_master_header, true, true}, {"copy", "H:D:s:h?", cbfs_copy, true, true}, {"create", "M:r:s:B:b:H:o:m:vh?", cbfs_create, true, true}, - {"extract", "H:r:n:f:vh?", cbfs_extract, true, false}, + {"extract", "H:r:m:n:f:vh?", cbfs_extract, true, false}, {"layout", "wvh?", cbfs_layout, false, false}, {"print", "H:r:vh?", cbfs_print, true, false}, {"read", "r:f:vh?", cbfs_read, true, false}, @@ -1088,7 +1089,7 @@ static void usage(char *name) "List mutable (or, with -w, readable) image regions\n" " print [-r image,regions] " "Show the contents of the ROM\n" - " extract [-r image,regions] -n NAME -f FILE " + " extract [-r image,regions] [-m ARCH] -n NAME -f FILE " "Extracts a raw payload from ROM\n" " write -r image,regions -f file [-u | -d] " "Write file into same-size [or larger] raw region\n" |