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>
This commit is contained in:
parent
f8c0da8525
commit
bc62080529
1 changed files with 17 additions and 8 deletions
|
@ -1,17 +1,16 @@
|
||||||
--- a/cmd/bootm.c
|
--- a/cmd/bootm.c
|
||||||
+++ b/cmd/bootm.c
|
+++ b/cmd/bootm.c
|
||||||
@@ -260,6 +260,67 @@ U_BOOT_CMD(
|
@@ -260,6 +260,76 @@ U_BOOT_CMD(
|
||||||
/* iminfo - print header info for a requested image */
|
/* iminfo - print header info for a requested image */
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
#if defined(CONFIG_CMD_IMI)
|
#if defined(CONFIG_CMD_IMI)
|
||||||
+#if defined(CONFIG_FIT)
|
|
||||||
+#define SECTOR_SHIFT 9
|
+#define SECTOR_SHIFT 9
|
||||||
+static int image_totalsize(struct cmd_tbl *cmdtp, int flag, int argc,
|
+static int image_totalsize(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
+ char *const argv[], short int in_blocks)
|
+ char *const argv[], short int in_blocks)
|
||||||
+{
|
+{
|
||||||
+ ulong addr;
|
+ ulong addr;
|
||||||
+ void *fit;
|
+ void *hdr;
|
||||||
+ int bsize, tsize;
|
+ uint32_t bsize, tsize = 0;
|
||||||
+ char buf[16];
|
+ char buf[16];
|
||||||
+
|
+
|
||||||
+ if (argc >= 2)
|
+ if (argc >= 2)
|
||||||
|
@ -19,9 +18,20 @@
|
||||||
+ else
|
+ else
|
||||||
+ addr = image_load_addr;
|
+ addr = image_load_addr;
|
||||||
+
|
+
|
||||||
+ fit = (void *)map_sysmem(addr, 0);
|
+ hdr = (void *)map_sysmem(addr, 0);
|
||||||
+ tsize = fit_get_totalsize(fit);
|
+
|
||||||
+ unmap_sysmem(fit);
|
+ switch (genimg_get_format(hdr)) {
|
||||||
|
+ case IMAGE_FORMAT_LEGACY:
|
||||||
|
+ if(CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT))
|
||||||
|
+ tsize = image_get_image_size(hdr);
|
||||||
|
+ break;
|
||||||
|
+ case IMAGE_FORMAT_FIT:
|
||||||
|
+ if(CONFIG_IS_ENABLED(FIT))
|
||||||
|
+ tsize = fit_get_totalsize(hdr);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ unmap_sysmem(hdr);
|
||||||
+ if (tsize == 0)
|
+ if (tsize == 0)
|
||||||
+ return 1;
|
+ return 1;
|
||||||
+
|
+
|
||||||
|
@ -64,7 +74,6 @@
|
||||||
+ "addr [maxhdrlen] [varname]\n"
|
+ "addr [maxhdrlen] [varname]\n"
|
||||||
+);
|
+);
|
||||||
+
|
+
|
||||||
+#endif
|
|
||||||
static int do_iminfo(struct cmd_tbl *cmdtp, int flag, int argc,
|
static int do_iminfo(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
char *const argv[])
|
char *const argv[])
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue