]> git.sur5r.net Git - u-boot/blobdiff - tools/kwbimage.c
Merge branch 'master' of git://git.denx.de/u-boot
[u-boot] / tools / kwbimage.c
index 28ce1e4f08f24230191e66009f2e07a41c55d40d..1ff17cab269f961dd7796f93b9c7b6b0dac3cbb2 100644 (file)
@@ -16,7 +16,6 @@
 #include <image.h>
 #include <stdint.h>
 #include "kwbimage.h"
-#include <config.h>
 
 #define ALIGN_SUP(x, a) (((x) + (a - 1)) & ~(a - 1))
 
@@ -421,6 +420,18 @@ static size_t image_headersz_v1(struct image_tool_params *params,
                        *hasext = 1;
        }
 
+#if defined(CONFIG_SYS_SPI_U_BOOT_OFFS)
+       if (headersz > CONFIG_SYS_SPI_U_BOOT_OFFS) {
+               fprintf(stderr, "Error: Image header (incl. SPL image) too big!\n");
+               fprintf(stderr, "header=0x%x CONFIG_SYS_SPI_U_BOOT_OFFS=0x%x!\n",
+                       (int)headersz, CONFIG_SYS_SPI_U_BOOT_OFFS);
+               fprintf(stderr, "Increase CONFIG_SYS_SPI_U_BOOT_OFFS!\n");
+               return 0;
+       } else {
+               headersz = CONFIG_SYS_SPI_U_BOOT_OFFS;
+       }
+#endif
+
        /*
         * The payload should be aligned on some reasonable
         * boundary
@@ -499,6 +510,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
                binhdrsz = sizeof(struct opt_hdr_v1) +
                        (binarye->binary.nargs + 1) * sizeof(unsigned int) +
                        s.st_size;
+               binhdrsz = ALIGN_SUP(binhdrsz, 32);
                hdr->headersz_lsb = binhdrsz & 0xFFFF;
                hdr->headersz_msb = (binhdrsz & 0xFFFF0000) >> 16;
 
@@ -869,16 +881,6 @@ static int kwbimage_generate(struct image_tool_params *params,
                        sizeof(struct ext_hdr_v0);
        } else {
                alloc_len = image_headersz_v1(params, NULL);
-#if defined(CONFIG_SYS_SPI_U_BOOT_OFFS)
-               if (alloc_len > CONFIG_SYS_SPI_U_BOOT_OFFS) {
-                       fprintf(stderr, "Error: Image header (incl. SPL image) too big!\n");
-                       fprintf(stderr, "header=0x%x CONFIG_SYS_SPI_U_BOOT_OFFS=0x%x!\n",
-                               alloc_len, CONFIG_SYS_SPI_U_BOOT_OFFS);
-                       fprintf(stderr, "Increase CONFIG_SYS_SPI_U_BOOT_OFFS!\n");
-               } else {
-                       alloc_len = CONFIG_SYS_SPI_U_BOOT_OFFS;
-               }
-#endif
        }
 
        hdr = malloc(alloc_len);