|
@@ -206,7 +206,23 @@ static int bootm_find_os(cmd_tbl_t *cmdtp, int flag, int argc,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int bootm_find_ramdisk(int flag, int argc, char * const argv[])
|
|
|
+/**
|
|
|
+ * bootm_find_images - wrapper to find and locate various images
|
|
|
+ * @flag: Ignored Argument
|
|
|
+ * @argc: command argument count
|
|
|
+ * @argv: command argument list
|
|
|
+ *
|
|
|
+ * boot_find_images() will attempt to load an available ramdisk,
|
|
|
+ * flattened device tree, as well as specifically marked
|
|
|
+ * "loadable" images (loadables are FIT only)
|
|
|
+ *
|
|
|
+ * Note: bootm_find_images will skip an image if it is not found
|
|
|
+ *
|
|
|
+ * @return:
|
|
|
+ * 0, if all existing images were loaded correctly
|
|
|
+ * 1, if an image is found but corrupted, or invalid
|
|
|
+ */
|
|
|
+int bootm_find_images(int flag, int argc, char * const argv[])
|
|
|
{
|
|
|
int ret;
|
|
|
|
|
@@ -218,14 +234,7 @@ static int bootm_find_ramdisk(int flag, int argc, char * const argv[])
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
#if defined(CONFIG_OF_LIBFDT)
|
|
|
-static int bootm_find_fdt(int flag, int argc, char * const argv[])
|
|
|
-{
|
|
|
- int ret;
|
|
|
-
|
|
|
/* find flattened device tree */
|
|
|
ret = boot_get_fdt(flag, argc, argv, IH_ARCH_DEFAULT, &images,
|
|
|
&images.ft_addr, &images.ft_len);
|
|
@@ -233,18 +242,10 @@ static int bootm_find_fdt(int flag, int argc, char * const argv[])
|
|
|
puts("Could not find a valid device tree\n");
|
|
|
return 1;
|
|
|
}
|
|
|
-
|
|
|
set_working_fdt_addr((ulong)images.ft_addr);
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
#endif
|
|
|
|
|
|
#if defined(CONFIG_FIT)
|
|
|
-static int bootm_find_loadables(int flag, int argc, char * const argv[])
|
|
|
-{
|
|
|
- int ret;
|
|
|
-
|
|
|
/* find all of the loadables */
|
|
|
ret = boot_get_loadable(argc, argv, &images, IH_ARCH_DEFAULT,
|
|
|
NULL, NULL);
|
|
@@ -252,24 +253,6 @@ static int bootm_find_loadables(int flag, int argc, char * const argv[])
|
|
|
printf("Loadable(s) is corrupt or invalid\n");
|
|
|
return 1;
|
|
|
}
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
-int bootm_find_ramdisk_fdt(int flag, int argc, char * const argv[])
|
|
|
-{
|
|
|
- if (bootm_find_ramdisk(flag, argc, argv))
|
|
|
- return 1;
|
|
|
-
|
|
|
-#if defined(CONFIG_OF_LIBFDT)
|
|
|
- if (bootm_find_fdt(flag, argc, argv))
|
|
|
- return 1;
|
|
|
-#endif
|
|
|
-
|
|
|
-#if defined(CONFIG_FIT)
|
|
|
- if (bootm_find_loadables(flag, argc, argv))
|
|
|
- return 1;
|
|
|
#endif
|
|
|
|
|
|
return 0;
|
|
@@ -283,7 +266,7 @@ static int bootm_find_other(cmd_tbl_t *cmdtp, int flag, int argc,
|
|
|
(images.os.type == IH_TYPE_MULTI)) &&
|
|
|
(images.os.os == IH_OS_LINUX ||
|
|
|
images.os.os == IH_OS_VXWORKS))
|
|
|
- return bootm_find_ramdisk_fdt(flag, argc, argv);
|
|
|
+ return bootm_find_images(flag, argc, argv);
|
|
|
|
|
|
return 0;
|
|
|
}
|