Skip to contentSkip to conversation

tools/kwbimage.c: Correct header size for SPI boot

PATCH New Kevin Smith 3 participants 4 messages Mar 16, 2015 – May 7, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tools/kwbimage.c: Correct header size for SPI boot

If defined, the macro CONFIG_SYS_SPI_U_BOOT_OFFS allows a board to specify the offset of the payload image into the kwb image file. This value was being used to locate the image, but was not used in the "header size" field of the main header. Move the use of this macro into the function that returns the header size so that the same value is used in all places.

---
 tools/kwbimage.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)
tools/kwbimage.c +12 -10
index 9540e7e..1ff17ca 100644
@@ -420,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
@@ -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);
Signature · 1 line
2.3.2
#1 lore raw

PATCH 1/1 tools/kwbimage.c: Correct header size for SPI boot

Quoted 8 lines · Kevin Smith

If defined, the macro CONFIG_SYS_SPI_U_BOOT_OFFS allows a board to specify the offset of the payload image into the kwb image file. This value was being used to locate the image, but was not used in the "header size" field of the main header. Move the use of this macro into the function that returns the header size so that the same value is used in all places.

Works fine, so:

Thanks,
Stefan

#2 lore raw

PATCH 1/1 tools/kwbimage.c: Correct header size for SPI boot

Quoted 8 lines · Stefan Roese
Quoted 7 lines · Kevin Smith

If defined, the macro CONFIG_SYS_SPI_U_BOOT_OFFS allows a board to specify the offset of the payload image into the kwb image file. This value was being used to locate the image, but was not used in the "header size" field of the main header. Move the use of this macro into the function that returns the header size so that the same value is used in all places.

Quoted 5 lines
Quoted 1 line

Works fine, so:

Luka, you seem to have missed this patch. Please add it to your next pull request (if you don't have any objections of course).

Thanks,
Stefan

#3 lore raw

PATCH 1/1 tools/kwbimage.c: Correct header size for SPI boot

Hi Stefan,

Quoted 9 lines · Stefan Roese
Quoted 8 lines · Stefan Roese
Quoted 7 lines · Kevin Smith

If defined, the macro CONFIG_SYS_SPI_U_BOOT_OFFS allows a board to specify the offset of the payload image into the kwb image file. This value was being used to locate the image, but was not used in the "header size" field of the main header. Move the use of this macro into the function that returns the header size so that the same value is used in all places.

Quoted 8 lines
Quoted 5 lines
Quoted 1 line

Works fine, so:

Luka, you seem to have missed this patch. Please add it to your next pull request (if you don't have any objections of course).

I knew I missed something :) I've pushed it to marvell/master and will wait a bit before sending a pull request. Thank you for a reminder.

Luka