diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2015-04-01 18:14:12 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-04-03 15:45:26 +0200 |
commit | 7cb4778e7f49480aeb6a1b97b26d79d80893e174 (patch) | |
tree | 08bc9afbabe65fba6b1bbc14c3edf24284335409 | |
parent | 4a50ffc746227a9d180e7454128d28e63fac0d82 (diff) | |
download | barebox-7cb4778e7f49480aeb6a1b97b26d79d80893e174.tar.gz barebox-7cb4778e7f49480aeb6a1b97b26d79d80893e174.tar.xz |
imx-image: pad generated image to 4k
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | scripts/imx/imx-image.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/scripts/imx/imx-image.c b/scripts/imx/imx-image.c index 1abbde202f..cff1997573 100644 --- a/scripts/imx/imx-image.c +++ b/scripts/imx/imx-image.c @@ -653,6 +653,7 @@ int main(int argc, char *argv[]) struct stat s; int infd, outfd; int dcd_only = 0; + int now = 0; while ((opt = getopt(argc, argv, "c:hf:o:bd")) != -1) { switch (opt) { @@ -785,7 +786,7 @@ int main(int argc, char *argv[]) } while (image_size) { - int now = image_size < 4096 ? image_size : 4096; + now = image_size < 4096 ? image_size : 4096; ret = xread(infd, buf, now); if (ret) { @@ -802,6 +803,18 @@ int main(int argc, char *argv[]) image_size -= now; } + /* pad until next 4k boundary */ + now = 4096 - now; + if (now) { + memset(buf, 0x5a, now); + + ret = xwrite(outfd, buf, now); + if (ret) { + perror("write"); + exit(1); + } + } + ret = close(outfd); if (ret) { perror("close"); |