summaryrefslogtreecommitdiff
path: root/tools/kwbimage.c
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2015-01-19 11:33:44 +0100
committerLuka Perkov <luka.perkov@sartura.hr>2015-02-06 17:24:51 +0100
commit5632e580c652eb600f3ff48dd79a71394c03dbe5 (patch)
treefbfca814d063034a29d41bbdfaa842b94e547adc /tools/kwbimage.c
parenta90ffb5632ad7eaba514500c1a2593af96378c1e (diff)
tools: kwbimage: Support u-boot.img padding to CONFIG_SYS_SPI_U_BOOT_OFFS
This is used on the AXP boards, to pad u-boot.img to the desired offset in SPI flash (only this boot target supported right now). This offset is used by the SPL then to load u-boot.img into SDRAM and execute it there. Signed-off-by: Stefan Roese <sr@denx.de> Reviewed-by: Luka Perkov <luka.perkov@sartura.hr>
Diffstat (limited to 'tools/kwbimage.c')
-rw-r--r--tools/kwbimage.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index 66f459ad6b..28ce1e4f08 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -16,6 +16,7 @@
#include <image.h>
#include <stdint.h>
#include "kwbimage.h"
+#include <config.h>
#define ALIGN_SUP(x, a) (((x) + (a - 1)) & ~(a - 1))
@@ -868,6 +869,16 @@ 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);