firmware-utils: allow mkfwimage2 to use - in partition names
[openwrt/staging/mkresin.git] / tools / firmware-utils / src / mkcsysimg.c
index 3d5f00b9be714490140988c617698f7949fbf45b..77fbbaa57fa93e9c0ef492597ced6c92a8138b39 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org>
+ *  Copyright (C) 2007-2009 Gabor Juhos <juhosg@openwrt.org>
  *
  *  This program was based on the code found in various Linux
  *  source tarballs released by Edimax for it's devices.
@@ -160,6 +160,7 @@ static struct board_info boards[] = {
        BOARD_ADM("BR-6114WG", "Edimax BR-6114WG", 2, SIG_BR6114WG),
        BOARD_ADM("BR-6524K", "Edimax BR-6524K", 2, SIG_BR6524K),
        BOARD_ADM("BR-6524KP", "Edimax BR-6524KP", 2, SIG_BR6524KP),
+       BOARD_ADM("BR-6524N", "Edimax BR-6524N", 2, SIG_BR6524N),
        BOARD_ADM("BR-6524WG", "Edimax BR-6524WG", 4, SIG_BR6524WG),
        BOARD_ADM("BR-6524WP", "Edimax BR-6524WP", 4, SIG_BR6524WP),
        BOARD_ADM("BR-6541K", "Edimax BR-6541K", 2, SIG_BR6541K),
@@ -181,6 +182,9 @@ static struct board_info boards[] = {
        /* Conceptronic products */
        BOARD_ADM("C54BSR4", "Conceptronic C54BSR4", 2, SIG_C54BSR4),
 
+       /* OSBRiDGE products */
+       BOARD_ADM("5GXi", "OSBDRiDGE 5GXi", 2, SIG_5GXI),
+
        {.model = NULL}
 };
 
@@ -195,7 +199,7 @@ static struct board_info boards[] = {
 #define ERRS(fmt, ...) do { \
        int save = errno; \
        fflush(0); \
-       fprintf(stderr, "[%s] *** error: " fmt "\n", progname, ## __VA_ARGS__ \
+       fprintf(stderr, "[%s] *** error: " fmt ": %s\n", progname, ## __VA_ARGS__ \
                , strerror(save)); \
 } while (0)
 
@@ -574,7 +578,7 @@ block_writeout_hdr(FILE *outfile, struct csys_block *block)
        /* setup header fields */
        memcpy(hdr.sig, block->sig, 4);
        hdr.addr = HOST_TO_LE32(block->addr);
-       hdr.size = HOST_TO_LE32(block->align-block->size_hdr);
+       hdr.size = HOST_TO_LE32(block->size - block->size_hdr - block->size_csum);
 
        DBG(1,"writing header for block");
        res = write_out_data(outfile, (uint8_t *)&hdr, sizeof(hdr),NULL);
@@ -643,7 +647,7 @@ block_writeout_data(FILE *outfile, struct csys_block *block)
 
        /* write padding data if neccesary */
        padlen = block->size_avail - block->file_size;
-       DBG(1,"padding block, length=%d", padlen);
+       DBG(1,"padding block, length=%zu", padlen);
        res = write_out_padding(outfile, padlen, block->padc, block->css);
 
        return res;
@@ -1118,11 +1122,11 @@ main(int argc, char *argv[])
                        res = ERR_FATAL;
 
                if (keep_invalid_images == 0) {
-                       WARN("generation of invalid images disabled", ofname);
+                       WARN("generation of invalid images \"%s\" disabled", ofname);
                        goto out;
                }
 
-               WARN("generating invalid image", ofname);
+               WARN("generating invalid image: \"%s\"", ofname);
        }
 
        outfile = fopen(ofname, "w");