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>
This commit is contained in:
parent
3fcb11478f
commit
1762502929
|
@ -725,7 +725,7 @@ static int cbfs_stage_decompress(struct buffer *buff)
|
||||||
}
|
}
|
||||||
|
|
||||||
int cbfs_export_entry(struct cbfs_image *image, const char *entry_name,
|
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 cbfs_file *entry = cbfs_get_entry(image, entry_name);
|
||||||
struct buffer buffer;
|
struct buffer buffer;
|
||||||
|
|
|
@ -90,7 +90,7 @@ struct cbfs_file *cbfs_get_entry(struct cbfs_image *image, const char *name);
|
||||||
/* Exports an entry to external file.
|
/* Exports an entry to external file.
|
||||||
* Returns 0 on success, otherwise (ex, not found) non-zero. */
|
* Returns 0 on success, otherwise (ex, not found) non-zero. */
|
||||||
int cbfs_export_entry(struct cbfs_image *image, const char *entry_name,
|
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
|
/* 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.
|
* non-zero, try to align "content" (CBFS_SUBHEADER(p)) at content_offset.
|
||||||
|
|
|
@ -795,7 +795,8 @@ static int cbfs_extract(void)
|
||||||
param.headeroffset))
|
param.headeroffset))
|
||||||
return 1;
|
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)
|
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},
|
{"add-master-header", "H:r:vh?", cbfs_add_master_header, true, true},
|
||||||
{"copy", "H:D:s:h?", cbfs_copy, 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},
|
{"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},
|
{"layout", "wvh?", cbfs_layout, false, false},
|
||||||
{"print", "H:r:vh?", cbfs_print, true, false},
|
{"print", "H:r:vh?", cbfs_print, true, false},
|
||||||
{"read", "r:f:vh?", cbfs_read, 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"
|
"List mutable (or, with -w, readable) image regions\n"
|
||||||
" print [-r image,regions] "
|
" print [-r image,regions] "
|
||||||
"Show the contents of the ROM\n"
|
"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"
|
"Extracts a raw payload from ROM\n"
|
||||||
" write -r image,regions -f file [-u | -d] "
|
" write -r image,regions -f file [-u | -d] "
|
||||||
"Write file into same-size [or larger] raw region\n"
|
"Write file into same-size [or larger] raw region\n"
|
||||||
|
|
Loading…
Reference in New Issue