The omap spi utility requires the image size to be a multiple of four
bytes. This seems unnecessary, we can just pad with a few bytes to
get the required alignment.

Signed-off-by: Sascha Hauer <s.ha...@pengutronix.de>
---
 scripts/mk-am35xx-spi-image.c |    8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/scripts/mk-am35xx-spi-image.c b/scripts/mk-am35xx-spi-image.c
index ec311fd..1372fbd 100644
--- a/scripts/mk-am35xx-spi-image.c
+++ b/scripts/mk-am35xx-spi-image.c
@@ -95,10 +95,6 @@ int main(int argc, char *argv[])
                perror("ftello");
                exit(EXIT_FAILURE);
        }
-       if (pos % 4) {
-               printf("error: image size must be a multiple of 4 bytes\n");
-               exit(EXIT_FAILURE);
-       }
        if (pos > 0x100000) {
                printf("error: image should be smaller than 1 MiB\n");
                exit(EXIT_FAILURE);
@@ -109,6 +105,8 @@ int main(int argc, char *argv[])
                exit(EXIT_FAILURE);
        }
 
+       pos = (pos + 3) & ~3;
+
        /* image size */
        temp = htobe32((uint32_t)pos);
        fwrite(&temp, sizeof(uint32_t), 1, stdout);
@@ -121,7 +119,7 @@ int main(int argc, char *argv[])
                size = fread(&temp, 1, sizeof(uint32_t), input);
                if (!size)
                        break;
-               if (size != 4) {
+               if (size < 4 && !feof(input)) {
                        perror("fread");
                        exit(EXIT_FAILURE);
                }
-- 
1.7.10.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to