[U-Boot] [PATCH v2 4/4] Combine bootm_find_<thing> functions together

Karl Apsite Karl.Apsite at dornerworks.com
Fri May 15 23:13:14 CEST 2015


bootm_find_ramdisk_fdt() renamed to bootm_find_images() for readability.

The function bootm_find_ramdisk_fdt() appears to be a simple wrapper for
bootm_find_ramdisk(), bootm_find_fdt(), and now bootm_find_loadables().
I didn't see any other callers entering a bootm_find<thing>, so removing
the wrapper, and condensing these together hopefully makes the code a
little simpler.

Signed-off-by: Karl Apsite <Karl.Apsite at dornerworks.com>
---

 common/bootm.c     | 53 ++++++++++++++++++-----------------------------------
 common/cmd_bootm.c |  4 ++--
 include/bootm.h    |  2 +-
 3 files changed, 21 insertions(+), 38 deletions(-)

diff --git a/common/bootm.c b/common/bootm.c
index f42fb66..75705f3 100644
--- a/common/bootm.c
+++ b/common/bootm.c
@@ -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[])
 		printf("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;
 }
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 6b6aca6..48738ac 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -580,7 +580,7 @@ static int bootz_start(cmd_tbl_t *cmdtp, int flag, int argc,
 	 * Handle the BOOTM_STATE_FINDOTHER state ourselves as we do not
 	 * have a header that provide this informaiton.
 	 */
-	if (bootm_find_ramdisk_fdt(flag, argc, argv))
+	if (bootm_find_images(flag, argc, argv))
 		return 1;
 
 	return 0;
@@ -721,7 +721,7 @@ static int booti_start(cmd_tbl_t *cmdtp, int flag, int argc,
 	 * Handle the BOOTM_STATE_FINDOTHER state ourselves as we do not
 	 * have a header that provide this informaiton.
 	 */
-	if (bootm_find_ramdisk_fdt(flag, argc, argv))
+	if (bootm_find_images(flag, argc, argv))
 		return 1;
 
 	return 0;
diff --git a/include/bootm.h b/include/bootm.h
index 6181488..4981377 100644
--- a/include/bootm.h
+++ b/include/bootm.h
@@ -49,7 +49,7 @@ int boot_selected_os(int argc, char * const argv[], int state,
 ulong bootm_disable_interrupts(void);
 
 /* This is a special function used by booti/bootz */
-int bootm_find_ramdisk_fdt(int flag, int argc, char * const argv[]);
+int bootm_find_images(int flag, int argc, char * const argv[]);
 
 int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
 		    int states, bootm_headers_t *images, int boot_progress);
-- 
2.3.7



More information about the U-Boot mailing list