Changeset 32616


Ignore:
Timestamp:
2012-07-05T18:25:29+02:00 (6 years ago)
Author:
juhosg
Message:

firmware-utils/mktplinkfw: allow to specify firmware version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/firmware-utils/src/mktplinkfw.c

    r31609 r32616  
    8080        uint32_t        boot_ofs;       /* bootloader data offset */ 
    8181        uint32_t        boot_len;       /* bootloader data length */ 
    82         uint8_t         pad[360]; 
     82        uint16_t        ver_hi; 
     83        uint16_t        ver_mid; 
     84        uint16_t        ver_lo; 
     85        uint8_t         pad[354]; 
    8386} __attribute__ ((packed)); 
    8487 
     
    105108static char *vendor = "TP-LINK Technologies"; 
    106109static char *version = "ver. 1.0"; 
     110static char *fw_ver = "0.0.0"; 
    107111 
    108112static char *board_id; 
     
    114118static char *opt_hw_rev; 
    115119static uint32_t hw_rev; 
     120static int fw_ver_lo; 
     121static int fw_ver_mid; 
     122static int fw_ver_hi; 
    116123static struct file_info kernel_info; 
    117124static uint32_t kernel_la = 0; 
     
    369376"  -N <vendor>     set image vendor to <vendor>\n" 
    370377"  -V <version>    set image version to <version>\n" 
     378"  -v <version>    set firmware version to <version>\n" 
    371379"  -i <file>       inspect given firmware file <file>\n" 
    372380"  -x              extract kernel and rootfs while inspecting (requires -i)\n" 
     
    546554        } 
    547555 
     556        ret = sscanf(fw_ver, "%d.%d.%d", &fw_ver_hi, &fw_ver_mid, &fw_ver_lo); 
     557        if (ret != 3) { 
     558                ERR("invalid firmware version '%s'", fw_ver); 
     559                return -1; 
     560        } 
     561 
    548562        return 0; 
    549563} 
     
    575589                hdr->rootfs_len = htonl(rootfs_info.file_size); 
    576590        } 
     591 
     592        hdr->ver_hi = htons(fw_ver_hi); 
     593        hdr->ver_mid = htons(fw_ver_mid); 
     594        hdr->ver_lo = htons(fw_ver_lo); 
    577595 
    578596        get_md5(buf, len, hdr->md5sum1); 
     
    927945                int c; 
    928946 
    929                 c = getopt(argc, argv, "a:B:H:E:F:L:V:N:W:ci:k:r:R:o:xhsj"); 
     947                c = getopt(argc, argv, "a:B:H:E:F:L:V:N:W:ci:k:r:R:o:xhsjv:"); 
    930948                if (c == -1) 
    931949                        break; 
     
    955973                case 'V': 
    956974                        version = optarg; 
     975                        break; 
     976                case 'v': 
     977                        fw_ver = optarg; 
    957978                        break; 
    958979                case 'N': 
Note: See TracChangeset for help on using the changeset viewer.