9
0
Fork 0

scripts: kwbimage: fix imagebuild on 32bit host system

We have to use strtoul to run the tool working on 32bit systems.
Otherwise it will generate signed numbers for strings representing
values with the 32nd bit set.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Michael Grzeschik 2014-01-26 18:12:21 +01:00 committed by Sascha Hauer
parent 42193d5b66
commit c54cb78978
1 changed files with 8 additions and 8 deletions

View File

@ -1024,20 +1024,20 @@ static int image_create_config_parse_oneline(char *line,
} else if (!strcmp(keyword, "DESTADDR")) {
char *value = strtok_r(NULL, " ", &saveptr);
el->type = IMAGE_CFG_DEST_ADDR;
el->dstaddr = strtol(value, NULL, 16);
el->dstaddr = strtoul(value, NULL, 16);
} else if (!strcmp(keyword, "EXECADDR")) {
char *value = strtok_r(NULL, " ", &saveptr);
el->type = IMAGE_CFG_EXEC_ADDR;
el->execaddr = strtol(value, NULL, 16);
el->execaddr = strtoul(value, NULL, 16);
} else if (!strcmp(keyword, "NAND_BLKSZ")) {
char *value = strtok_r(NULL, " ", &saveptr);
el->type = IMAGE_CFG_NAND_BLKSZ;
el->nandblksz = strtol(value, NULL, 16);
el->nandblksz = strtoul(value, NULL, 16);
} else if (!strcmp(keyword, "NAND_BADBLK_LOCATION")) {
char *value = strtok_r(NULL, " ", &saveptr);
el->type = IMAGE_CFG_NAND_BADBLK_LOCATION;
el->nandbadblklocation =
strtol(value, NULL, 16);
strtoul(value, NULL, 16);
} else if (!strcmp(keyword, "NAND_ECCMODE")) {
char *value = strtok_r(NULL, " ", &saveptr);
el->type = IMAGE_CFG_NAND_ECC_MODE;
@ -1050,7 +1050,7 @@ static int image_create_config_parse_oneline(char *line,
} else if (!strcmp(keyword, "NAND_PAGESZ")) {
char *value = strtok_r(NULL, " ", &saveptr);
el->type = IMAGE_CFG_NAND_PAGESZ;
el->nandpagesz = strtol(value, NULL, 16);
el->nandpagesz = strtoul(value, NULL, 16);
} else if (!strcmp(keyword, "BINARY")) {
char *value = strtok_r(NULL, " ", &saveptr);
int argi = 0;
@ -1061,7 +1061,7 @@ static int image_create_config_parse_oneline(char *line,
value = strtok_r(NULL, " ", &saveptr);
if (!value)
break;
el->binary.args[argi] = strtol(value, NULL, 16);
el->binary.args[argi] = strtoul(value, NULL, 16);
argi++;
if (argi >= BINARY_MAX_ARGS) {
fprintf(stderr,
@ -1080,8 +1080,8 @@ static int image_create_config_parse_oneline(char *line,
}
el->type = IMAGE_CFG_DATA;
el->regdata.raddr = strtol(value1, NULL, 16);
el->regdata.rdata = strtol(value2, NULL, 16);
el->regdata.raddr = strtoul(value1, NULL, 16);
el->regdata.rdata = strtoul(value2, NULL, 16);
} else if (!strcmp(keyword, "PAYLOAD")) {
char *value = strtok_r(NULL, " ", &saveptr);
el->type = IMAGE_CFG_PAYLOAD;