summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2016-01-26 12:18:26 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2016-02-04 08:28:01 +0100
commit271c93f99fa91574229be7a39db05ae7ffd3ccb5 (patch)
tree66a864100d57164d004d65eaeb6ba8172e0b94e0 /scripts
parent6fafba44e7541a2acc9c0357154482cfc3572183 (diff)
downloadbarebox-271c93f99fa91574229be7a39db05ae7ffd3ccb5.tar.gz
barebox-271c93f99fa91574229be7a39db05ae7ffd3ccb5.tar.xz
scripts: imx-image: move more variables to context data
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/imx/imx-image.c21
-rw-r--r--scripts/imx/imx.h3
2 files changed, 13 insertions, 11 deletions
diff --git a/scripts/imx/imx-image.c b/scripts/imx/imx-image.c
index 090d5c40ea..f9d0640c40 100644
--- a/scripts/imx/imx-image.c
+++ b/scripts/imx/imx-image.c
@@ -314,9 +314,8 @@ int main(int argc, char *argv[])
int opt, ret;
char *configfile = NULL;
char *imagename = NULL;
- char *outfile = NULL;
void *buf;
- size_t image_size = 0, load_size, insize;
+ size_t insize;
void *infile;
struct stat s;
int infd, outfd;
@@ -337,7 +336,7 @@ int main(int argc, char *argv[])
imagename = optarg;
break;
case 'o':
- outfile = optarg;
+ data.outfile = optarg;
break;
case 'b':
add_barebox_header = 1;
@@ -365,7 +364,7 @@ int main(int argc, char *argv[])
exit(1);
}
- if (!outfile) {
+ if (!data.outfile) {
fprintf(stderr, "output file not given\n");
exit(1);
}
@@ -377,7 +376,7 @@ int main(int argc, char *argv[])
exit(1);
}
- image_size = s.st_size;
+ data.image_size = s.st_size;
}
ret = parse_config(&data, configfile);
@@ -403,7 +402,7 @@ int main(int argc, char *argv[])
check_last_dcd(0);
if (dcd_only) {
- ret = write_dcd(outfile);
+ ret = write_dcd(data.outfile);
if (ret)
exit(1);
exit (0);
@@ -417,17 +416,17 @@ int main(int argc, char *argv[])
* - i.MX6 SPI NOR boot corrupts the last few bytes of an image loaded
* in ver funy ways when the image size is not 4 byte aligned
*/
- load_size = roundup(image_size + HEADER_LEN, 0x1000);
+ data.load_size = roundup(data.image_size + HEADER_LEN, 0x1000);
if (data.cpu_type == 35)
- load_size += HEADER_LEN;
+ data.load_size += HEADER_LEN;
switch (data.header_version) {
case 1:
- add_header_v1(buf, data.image_dcd_offset, data.image_load_addr, load_size);
+ add_header_v1(buf, data.image_dcd_offset, data.image_load_addr, data.load_size);
break;
case 2:
- add_header_v2(buf, data.image_dcd_offset, data.image_load_addr, load_size);
+ add_header_v2(buf, data.image_dcd_offset, data.image_load_addr, data.load_size);
break;
default:
fprintf(stderr, "Congratulations! You're welcome to implement header version %d\n",
@@ -453,7 +452,7 @@ int main(int argc, char *argv[])
xread(infd, infile, insize);
close(infd);
- outfd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
+ outfd = open(data.outfile, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
if (outfd < 0) {
perror("open");
exit(1);
diff --git a/scripts/imx/imx.h b/scripts/imx/imx.h
index bb4fdf7d02..6e2f43b3ed 100644
--- a/scripts/imx/imx.h
+++ b/scripts/imx/imx.h
@@ -54,6 +54,9 @@ struct imx_flash_header_v2 {
struct config_data {
uint32_t image_load_addr;
uint32_t image_dcd_offset;
+ uint32_t image_size;
+ uint32_t load_size;
+ char *outfile;
int header_version;
int cpu_type;
int (*check)(struct config_data *data, uint32_t cmd, uint32_t addr, uint32_t mask);