summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/image.h3
-rw-r--r--tools/imximage.c9
2 files changed, 11 insertions, 1 deletions
diff --git a/include/image.h b/include/image.h
index f54d983306..3a472c9b7c 100644
--- a/include/image.h
+++ b/include/image.h
@@ -179,6 +179,9 @@
#define IH_MAGIC 0x27051956 /* Image Magic Number */
#define IH_NMLEN 32 /* Image Name Length */
+/* Reused from common.h */
+#define ROUND(a, b) (((a) + (b) - 1) & ~((b) - 1))
+
/*
* Legacy format image header,
* all data in network byte order (aka natural aka bigendian).
diff --git a/tools/imximage.c b/tools/imximage.c
index 63f88b6c42..a93d7eb543 100644
--- a/tools/imximage.c
+++ b/tools/imximage.c
@@ -515,7 +515,14 @@ static void imximage_set_header(void *ptr, struct stat *sbuf, int ifd,
/* Set the imx header */
(*set_imx_hdr)(imxhdr, dcd_len, params->ep, imxhdr->flash_offset);
- *header_size_ptr = sbuf->st_size + imxhdr->flash_offset;
+
+ /*
+ * ROM bug alert
+ * mx53 only loads 512 byte multiples.
+ * The remaining fraction of a block bytes would
+ * not be loaded.
+ */
+ *header_size_ptr = ROUND(sbuf->st_size + imxhdr->flash_offset, 512);
}
int imximage_check_params(struct mkimage_params *params)