mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 23:22:37 +02:00
cli_classic: Add convenient '--flash-name' cli opt
We have this in the ChromiumOS fork of flashrom which we rely on to obtain the current flash chip in use. This ports it for upstream consumption. V.2: Constrain number_of_operations to one as per Nico's comment. V.3: Move two goto's outside inner if-else block. V.4: Add missing --help line. V.5: Add man page entry. v.6: Use printf() directly. Change-Id: I23d574a2f8eaf809a5c0524490db9e3a560ede56 Signed-off-by: Edward O'Callaghan <quasisec@chromium.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/35591 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
parent
ca598dabc3
commit
0cd11d8919
@ -51,6 +51,7 @@ static void cli_classic_usage(const char *name)
|
|||||||
" -n | --noverify don't auto-verify\n"
|
" -n | --noverify don't auto-verify\n"
|
||||||
" -N | --noverify-all verify included regions only (cf. -i)\n"
|
" -N | --noverify-all verify included regions only (cf. -i)\n"
|
||||||
" -l | --layout <layoutfile> read ROM layout from <layoutfile>\n"
|
" -l | --layout <layoutfile> read ROM layout from <layoutfile>\n"
|
||||||
|
" --flash-name read out the detected flash name\n"
|
||||||
" --fmap read ROM layout from fmap embedded in ROM\n"
|
" --fmap read ROM layout from fmap embedded in ROM\n"
|
||||||
" --fmap-file <fmapfile> read ROM layout from fmap in <fmapfile>\n"
|
" --fmap-file <fmapfile> read ROM layout from fmap in <fmapfile>\n"
|
||||||
" --ifd read layout from an Intel Firmware Descriptor\n"
|
" --ifd read layout from an Intel Firmware Descriptor\n"
|
||||||
@ -101,6 +102,7 @@ int main(int argc, char *argv[])
|
|||||||
#if CONFIG_PRINT_WIKI == 1
|
#if CONFIG_PRINT_WIKI == 1
|
||||||
int list_supported_wiki = 0;
|
int list_supported_wiki = 0;
|
||||||
#endif
|
#endif
|
||||||
|
int flash_name = 0;
|
||||||
int read_it = 0, write_it = 0, erase_it = 0, verify_it = 0;
|
int read_it = 0, write_it = 0, erase_it = 0, verify_it = 0;
|
||||||
int dont_verify_it = 0, dont_verify_all = 0, list_supported = 0, operation_specified = 0;
|
int dont_verify_it = 0, dont_verify_all = 0, list_supported = 0, operation_specified = 0;
|
||||||
struct flashrom_layout *layout = NULL;
|
struct flashrom_layout *layout = NULL;
|
||||||
@ -110,6 +112,7 @@ int main(int argc, char *argv[])
|
|||||||
OPTION_FMAP,
|
OPTION_FMAP,
|
||||||
OPTION_FMAP_FILE,
|
OPTION_FMAP_FILE,
|
||||||
OPTION_FLASH_CONTENTS,
|
OPTION_FLASH_CONTENTS,
|
||||||
|
OPTION_FLASH_NAME,
|
||||||
};
|
};
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
@ -130,6 +133,7 @@ int main(int argc, char *argv[])
|
|||||||
{"fmap-file", 1, NULL, OPTION_FMAP_FILE},
|
{"fmap-file", 1, NULL, OPTION_FMAP_FILE},
|
||||||
{"image", 1, NULL, 'i'},
|
{"image", 1, NULL, 'i'},
|
||||||
{"flash-contents", 1, NULL, OPTION_FLASH_CONTENTS},
|
{"flash-contents", 1, NULL, OPTION_FLASH_CONTENTS},
|
||||||
|
{"flash-name", 0, NULL, OPTION_FLASH_NAME},
|
||||||
{"list-supported", 0, NULL, 'L'},
|
{"list-supported", 0, NULL, 'L'},
|
||||||
{"list-supported-wiki", 0, NULL, 'z'},
|
{"list-supported-wiki", 0, NULL, 'z'},
|
||||||
{"programmer", 1, NULL, 'p'},
|
{"programmer", 1, NULL, 'p'},
|
||||||
@ -296,6 +300,14 @@ int main(int argc, char *argv[])
|
|||||||
case OPTION_FLASH_CONTENTS:
|
case OPTION_FLASH_CONTENTS:
|
||||||
referencefile = strdup(optarg);
|
referencefile = strdup(optarg);
|
||||||
break;
|
break;
|
||||||
|
case OPTION_FLASH_NAME:
|
||||||
|
if (++operation_specified > 1) {
|
||||||
|
fprintf(stderr, "More than one operation "
|
||||||
|
"specified. Aborting.\n");
|
||||||
|
cli_classic_abort_usage();
|
||||||
|
}
|
||||||
|
flash_name = 1;
|
||||||
|
break;
|
||||||
case 'L':
|
case 'L':
|
||||||
if (++operation_specified > 1) {
|
if (++operation_specified > 1) {
|
||||||
fprintf(stderr, "More than one operation "
|
fprintf(stderr, "More than one operation "
|
||||||
@ -602,11 +614,22 @@ int main(int argc, char *argv[])
|
|||||||
goto out_shutdown;
|
goto out_shutdown;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(read_it | write_it | verify_it | erase_it)) {
|
if (!(read_it | write_it | verify_it | erase_it | flash_name)) {
|
||||||
msg_ginfo("No operations were specified.\n");
|
msg_ginfo("No operations were specified.\n");
|
||||||
goto out_shutdown;
|
goto out_shutdown;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (flash_name) {
|
||||||
|
if (fill_flash->chip->vendor && fill_flash->chip->name) {
|
||||||
|
printf("vendor=\"%s\" name=\"%s\"\n",
|
||||||
|
fill_flash->chip->vendor,
|
||||||
|
fill_flash->chip->name);
|
||||||
|
} else {
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
goto out_shutdown;
|
||||||
|
}
|
||||||
|
|
||||||
if (layoutfile) {
|
if (layoutfile) {
|
||||||
layout = get_global_layout();
|
layout = get_global_layout();
|
||||||
} else if (ifd && (flashrom_layout_read_from_ifd(&layout, fill_flash, NULL, 0) ||
|
} else if (ifd && (flashrom_layout_read_from_ifd(&layout, fill_flash, NULL, 0) ||
|
||||||
|
@ -44,10 +44,12 @@
|
|||||||
.SH NAME
|
.SH NAME
|
||||||
flashrom \- detect, read, write, verify and erase flash chips
|
flashrom \- detect, read, write, verify and erase flash chips
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B flashrom \fR[\fB\-h\fR|\fB\-R\fR|\fB\-L\fR|\fB\-z\fR|\fB\-p\fR <programmername>[:<parameters>]
|
.B flashrom \fR[\fB\-h\fR|\fB\-R\fR|\fB\-L\fR|\fB\-z\fR|
|
||||||
[\fB\-E\fR|\fB\-r\fR <file>|\fB\-w\fR <file>|\fB\-v\fR <file>] [\fB\-c\fR <chipname>]
|
\fB\-p\fR <programmername>[:<parameters>] [\fB\-c\fR <chipname>]
|
||||||
[(\fB\-l\fR <file>|\fB\-\-ifd|\fB \-\-fmap\fR|\fB\-\-fmap-file\fR <file>) [\fB\-i\fR <image>]]
|
(\fB\-\-flash\-name\fR|
|
||||||
[\fB\-n\fR] [\fB\-N\fR] [\fB\-f\fR]]
|
[\fB\-E\fR|\fB\-r\fR <file>|\fB\-w\fR <file>|\fB\-v\fR <file>]
|
||||||
|
[(\fB\-l\fR <file>|\fB\-\-ifd|\fB \-\-fmap\fR|\fB\-\-fmap-file\fR <file>) [\fB\-i\fR <image>]]
|
||||||
|
[\fB\-n\fR] [\fB\-N\fR] [\fB\-f\fR])]
|
||||||
[\fB\-V\fR[\fBV\fR[\fBV\fR]]] [\fB-o\fR <logfile>]
|
[\fB\-V\fR[\fBV\fR[\fBV\fR]]] [\fB-o\fR <logfile>]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.B flashrom
|
.B flashrom
|
||||||
@ -242,6 +244,9 @@ Only flash region/image
|
|||||||
.B <imagename>
|
.B <imagename>
|
||||||
from flash layout.
|
from flash layout.
|
||||||
.TP
|
.TP
|
||||||
|
.B "\-\-flash\-name"
|
||||||
|
Prints out the detected flash chips name.
|
||||||
|
.TP
|
||||||
.B "\-L, \-\-list\-supported"
|
.B "\-L, \-\-list\-supported"
|
||||||
List the flash chips, chipsets, mainboards, and external programmers
|
List the flash chips, chipsets, mainboards, and external programmers
|
||||||
(including PCI, USB, parallel port, and serial port based devices)
|
(including PCI, USB, parallel port, and serial port based devices)
|
||||||
@ -1335,6 +1340,8 @@ David Hendricks
|
|||||||
.br
|
.br
|
||||||
Dominik Geyer
|
Dominik Geyer
|
||||||
.br
|
.br
|
||||||
|
Edward O'Callaghan
|
||||||
|
.br
|
||||||
Eric Biederman
|
Eric Biederman
|
||||||
.br
|
.br
|
||||||
Giampiero Giancipoli
|
Giampiero Giancipoli
|
||||||
|
Loading…
x
Reference in New Issue
Block a user