summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2015-04-01 18:14:12 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2015-04-03 15:45:26 +0200
commit7cb4778e7f49480aeb6a1b97b26d79d80893e174 (patch)
tree08bc9afbabe65fba6b1bbc14c3edf24284335409
parent4a50ffc746227a9d180e7454128d28e63fac0d82 (diff)
downloadbarebox-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.c15
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");