Skip to content

Commit bc62080

Browse files
DragonBluepdangowrt
authored andcommitted
uboot-mediatek: support getting legacy uImage size
Most ramips target devices use the legacy uImage format. This patch extends the imsz/imszb commands to support detecting the image size of legacy uImage. Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
1 parent f8c0da8 commit bc62080

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,37 @@
11
--- a/cmd/bootm.c
22
+++ b/cmd/bootm.c
3-
@@ -260,6 +260,67 @@ U_BOOT_CMD(
3+
@@ -260,6 +260,76 @@ U_BOOT_CMD(
44
/* iminfo - print header info for a requested image */
55
/*******************************************************************/
66
#if defined(CONFIG_CMD_IMI)
7-
+#if defined(CONFIG_FIT)
87
+#define SECTOR_SHIFT 9
98
+static int image_totalsize(struct cmd_tbl *cmdtp, int flag, int argc,
109
+ char *const argv[], short int in_blocks)
1110
+{
1211
+ ulong addr;
13-
+ void *fit;
14-
+ int bsize, tsize;
12+
+ void *hdr;
13+
+ uint32_t bsize, tsize = 0;
1514
+ char buf[16];
1615
+
1716
+ if (argc >= 2)
1817
+ addr = simple_strtoul(argv[1], NULL, 16);
1918
+ else
2019
+ addr = image_load_addr;
2120
+
22-
+ fit = (void *)map_sysmem(addr, 0);
23-
+ tsize = fit_get_totalsize(fit);
24-
+ unmap_sysmem(fit);
21+
+ hdr = (void *)map_sysmem(addr, 0);
22+
+
23+
+ switch (genimg_get_format(hdr)) {
24+
+ case IMAGE_FORMAT_LEGACY:
25+
+ if(CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT))
26+
+ tsize = image_get_image_size(hdr);
27+
+ break;
28+
+ case IMAGE_FORMAT_FIT:
29+
+ if(CONFIG_IS_ENABLED(FIT))
30+
+ tsize = fit_get_totalsize(hdr);
31+
+ break;
32+
+ }
33+
+
34+
+ unmap_sysmem(hdr);
2535
+ if (tsize == 0)
2636
+ return 1;
2737
+
@@ -64,7 +74,6 @@
6474
+ "addr [maxhdrlen] [varname]\n"
6575
+);
6676
+
67-
+#endif
6877
static int do_iminfo(struct cmd_tbl *cmdtp, int flag, int argc,
6978
char *const argv[])
7079
{

0 commit comments

Comments
 (0)