diff options
-rw-r--r-- | util/flashrom/Makefile | 6 | ||||
-rw-r--r-- | util/flashrom/flashrom.8 | 8 | ||||
-rw-r--r-- | util/flashrom/flashrom.c | 15 |
3 files changed, 23 insertions, 6 deletions
diff --git a/util/flashrom/Makefile b/util/flashrom/Makefile index 4b2fbbd161..708c077459 100644 --- a/util/flashrom/Makefile +++ b/util/flashrom/Makefile @@ -28,6 +28,12 @@ OBJS = chipset_enable.o board_enable.o udelay.o jedec.o sst28sf040.o \ all: pciutils dep $(PROGRAM) +# Set the flashrom version string from the highest revision number +# of the checked out flashrom files. +SVNDEF := -D'FLASHROM_VERSION="$(shell svnversion -cn . \ + | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/")"' +CFLAGS += $(SVNDEF) + $(PROGRAM): $(OBJS) $(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS) $(STRIP) $(STRIP_ARGS) $(PROGRAM) diff --git a/util/flashrom/flashrom.8 b/util/flashrom/flashrom.8 index 007cd9e837..3251738607 100644 --- a/util/flashrom/flashrom.8 +++ b/util/flashrom/flashrom.8 @@ -2,7 +2,7 @@ .SH NAME flashrom \- a universal BIOS/ROM/flash programming utility .SH SYNOPSIS -.B flashrom \fR[\fB\-rwvEVfh\fR] [\fB\-c\fR chipname] [\fB\-s\fR exclude_start] [\fB\-e\fR exclude_end] +.B flashrom \fR[\fB\-rwvEVfhR\fR] [\fB\-c\fR chipname] [\fB\-s\fR exclude_start] [\fB\-e\fR exclude_end] [\fB-m\fR vendor:part] [\fB-l\fR file.layout] [\fB-i\fR image_name] [file] .SH DESCRIPTION .B flashrom @@ -63,9 +63,9 @@ from flash layout. .TP .B "\-h, \-\-help" Show a help text and exit. -.\".TP -.\".B "\-\-version" -.\"Show version information and exit. +.TP +.B "\-R, \-\-version" +Show version information and exit. .SH BUGS Please report any bugs at .BR http://tracker.coreboot.org/trac/coreboot/newticket "," diff --git a/util/flashrom/flashrom.c b/util/flashrom/flashrom.c index 9fde57d9ef..5446fc5fc7 100644 --- a/util/flashrom/flashrom.c +++ b/util/flashrom/flashrom.c @@ -191,7 +191,7 @@ int verify_flash(struct flashchip *flash, uint8_t *buf) void usage(const char *name) { - printf("usage: %s [-rwvEVfh] [-c chipname] [-s exclude_start]\n", name); + printf("usage: %s [-rwvEVfhR] [-c chipname] [-s exclude_start]\n", name); printf(" [-e exclude_end] [-m vendor:part] [-l file.layout] [-i imagename] [file]\n"); printf (" -r | --read: read flash and save into file\n" @@ -206,11 +206,17 @@ void usage(const char *name) " -f | --force: force write without checking image\n" " -l | --layout <file.layout>: read rom layout from file\n" " -i | --image <name>: only flash image name from flash layout\n" + " -R | --version: print the version (release)\n" "\n" " If no file is specified, then all that happens" " is that flash info is dumped.\n\n"); exit(1); } +void print_version(void) +{ + printf("flashrom r%s\n", FLASHROM_VERSION); +} + int main(int argc, char *argv[]) { uint8_t *buf; @@ -236,6 +242,7 @@ int main(int argc, char *argv[]) {"layout", 1, 0, 'l'}, {"image", 1, 0, 'i'}, {"help", 0, 0, 'h'}, + {"version", 0, 0, 'R'}, {0, 0, 0, 0} }; @@ -253,7 +260,7 @@ int main(int argc, char *argv[]) } setbuf(stdout, NULL); - while ((opt = getopt_long(argc, argv, "rwvVEfc:s:e:m:l:i:h", + while ((opt = getopt_long(argc, argv, "rRwvVEfc:s:e:m:l:i:h", long_options, &option_index)) != EOF) { switch (opt) { case 'r': @@ -306,6 +313,10 @@ int main(int argc, char *argv[]) tempstr = strdup(optarg); find_romentry(tempstr); break; + case 'R': + print_version(); + exit(0); + break; case 'h': default: usage(argv[0]); |