From 2110196958579fd26112ed358106edb2ef952b19 Mon Sep 17 00:00:00 2001 From: Pali Rohár Date: Sat, 23 Jun 2012 17:01:48 +0200 Subject: Fiasco image: Allow to specify device string without hw revision (then image is valid for all hw revisions). Generating images should be complete! --- src/fiasco.c | 31 ++++++++++++++++--------------- src/main.c | 8 ++++---- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/fiasco.c b/src/fiasco.c index 31b59df..c767407 100644 --- a/src/fiasco.c +++ b/src/fiasco.c @@ -459,22 +459,24 @@ int fiasco_add(int fd, const char *name, const char *file, const char *layout, c write(fd, device, len); for (i=0; i<16-len; ++i) write(fd, "\x00", 1); - ptr = hwrevs; - oldptr = hwrevs; - while ((ptr = strchr(ptr, ','))) { - len = ptr-oldptr; + if (hwrevs) { + ptr = hwrevs; + oldptr = hwrevs; + while ((ptr = strchr(ptr, ','))) { + len = ptr-oldptr; + if (len > 8) len = 8; + write(fd, oldptr, len); + for (i=0; i<8-len; ++i) + write(fd, "\x00", 1); + ++ptr; + oldptr = ptr; + } + len = strlen(oldptr); if (len > 8) len = 8; write(fd, oldptr, len); for (i=0; i<8-len; ++i) write(fd, "\x00", 1); - ++ptr; - oldptr = ptr; } - len = strlen(oldptr); - if (len > 8) len = 8; - write(fd, oldptr, len); - for (i=0; i<8-len; ++i) - write(fd, "\x00", 1); } /* append layout subsection */ @@ -554,7 +556,7 @@ int fiasco_pack(int optind, char *argv[]) if (strncmp(arg, "version:", strlen("version:"))==0) continue; -// format: [[[[dev:hw:]ver:]type:]file[%layout] +// format: [[[[dev:[hw:]]ver:]type:]file[%layout] ptr = strdup(arg); layout = strchr(ptr, '%'); if (layout) { @@ -576,10 +578,9 @@ int fiasco_pack(int optind, char *argv[]) if (version) { *(version++) = 0; hwrevs = strchr(ptr, ':'); - if (hwrevs) { + if (hwrevs) *(hwrevs++) = 0; - device = ptr; - } + device = ptr; } else { version = ptr; } diff --git a/src/main.c b/src/main.c index ae33d2e..b2196a6 100644 --- a/src/main.c +++ b/src/main.c @@ -112,9 +112,9 @@ void show_usage() printf ("Image specification:\n" " -p [arg] specify normal image\n" - " arg is [[[dev:hw:]ver:]type:]file[%%layout]\n" + " arg is [[[dev:[hw:]]ver:]type:]file[%%layout]\n" " hw is device HW revision\n" - " dev is device string\n" + " dev is device name string\n" " ver is image version string\n" " type is image type\n" " file is image file name\n" @@ -169,9 +169,9 @@ void show_usage() " -i show device information (let standby mode)\n" " -l list supported usb device ids\n" " -p format piece-of-firmware\n" - " piece format: [[[[dev:hw:]ver:]type:]file[%%layout]\n" + " piece format: [[[[dev:[hw:]]ver:]type:]file[%%layout]\n" " hw is device HW revision\n" - " dev is device string\n" + " dev is device name string\n" " ver is image version string\n" " type is image type\n" " file is image file name\n" -- cgit v1.2.3