]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
bootm: Reduce arguments to boot_get_ramdisk()
authorSimon Glass <sjg@chromium.org>
Sat, 18 Nov 2023 21:05:06 +0000 (14:05 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 13 Dec 2023 16:51:24 +0000 (11:51 -0500)
This function normally only uses one argument so pass it in directly.
Move comments to the header file so could one day include these
functions in API docs. Fix up the u8 argument while here, since it
avoids the compiler having to mask the value on some machines.

The Android case here is bit strange, since it can use argv[0], so deal
with that in the caller.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
boot/bootm.c
boot/image-board.c
include/image.h

index 922989b9cfcfdf998d8e007fdbdb56ac119ae6b8..d5893e82d128d2363014da9540e0432984fb907a 100644 (file)
@@ -489,10 +489,23 @@ static int bootm_find_os(const char *cmd_name, const char *addr_fit)
 int bootm_find_images(int flag, int argc, char *const argv[], ulong start,
                      ulong size)
 {
+       const char *select = NULL;
        int ret;
 
+       if (IS_ENABLED(CONFIG_ANDROID_BOOT_IMAGE)) {
+               char *buf;
+
+               /* Look for an Android boot image */
+               buf = map_sysmem(images.os.start, 0);
+               if (buf && genimg_get_format(buf) == IMAGE_FORMAT_ANDROID)
+                       select = argc ? argv[0] : env_get("loadaddr");
+       }
+
+       if (argc >= 2)
+               select = argv[1];
+
        /* find ramdisk */
-       ret = boot_get_ramdisk(argc, argv, &images, IH_INITRD_ARCH,
+       ret = boot_get_ramdisk(select, &images, IH_INITRD_ARCH,
                               &images.rd_start, &images.rd_end);
        if (ret) {
                puts("Ramdisk image is corrupt or invalid\n");
index 062c76badeccff3f4a871f13a23bf2eeed896b18..60e514fc150ea0ce9135c580f31ce90075b9b8d8 100644 (file)
@@ -456,49 +456,14 @@ static int select_ramdisk(struct bootm_headers *images, const char *select, u8 a
        return 0;
 }
 
-/**
- * boot_get_ramdisk - main ramdisk handling routine
- * @argc: command argument count
- * @argv: command argument list
- * @images: pointer to the bootm images structure
- * @arch: expected ramdisk architecture
- * @rd_start: pointer to a ulong variable, will hold ramdisk start address
- * @rd_end: pointer to a ulong variable, will hold ramdisk end
- *
- * boot_get_ramdisk() is responsible for finding a valid ramdisk image.
- * Currently supported are the following ramdisk sources:
- *      - multicomponent kernel/ramdisk image,
- *      - commandline provided address of decicated ramdisk image.
- *
- * returns:
- *     0, if ramdisk image was found and valid, or skiped
- *     rd_start and rd_end are set to ramdisk start/end addresses if
- *     ramdisk image is found and valid
- *
- *     1, if ramdisk image is found but corrupted, or invalid
- *     rd_start and rd_end are set to 0 if no ramdisk exists
- */
-int boot_get_ramdisk(int argc, char *const argv[], struct bootm_headers *images,
-                    u8 arch, ulong *rd_start, ulong *rd_end)
+int boot_get_ramdisk(char const *select, struct bootm_headers *images,
+                    uint arch, ulong *rd_start, ulong *rd_end)
 {
        ulong rd_data, rd_len;
-       const char *select = NULL;
 
        *rd_start = 0;
        *rd_end = 0;
 
-       if (IS_ENABLED(CONFIG_ANDROID_BOOT_IMAGE)) {
-               char *buf;
-
-               /* Look for an Android boot image */
-               buf = map_sysmem(images->os.start, 0);
-               if (buf && genimg_get_format(buf) == IMAGE_FORMAT_ANDROID)
-                       select = (argc == 0) ? env_get("loadaddr") : argv[0];
-       }
-
-       if (argc >= 2)
-               select = argv[1];
-
        /*
         * Look for a '-' which indicates to ignore the
         * ramdisk argument
index d37e44721672eef485d85f5ea3267fb048de709e..3e48ad5b303e99077fcfbc8a4631bc7f5d933174 100644 (file)
@@ -644,8 +644,31 @@ int genimg_has_config(struct bootm_headers *images);
 
 int boot_get_fpga(int argc, char *const argv[], struct bootm_headers *images,
                  uint8_t arch, const ulong *ld_start, ulong * const ld_len);
-int boot_get_ramdisk(int argc, char *const argv[], struct bootm_headers *images,
-                    uint8_t arch, ulong *rd_start, ulong *rd_end);
+
+/**
+ * boot_get_ramdisk() - Locate the ramdisk
+ *
+ * @select: address or name of ramdisk to use, or NULL for default
+ * @images: pointer to the bootm images structure
+ * @arch: expected ramdisk architecture
+ * @rd_start: pointer to a ulong variable, will hold ramdisk start address
+ * @rd_end: pointer to a ulong variable, will hold ramdisk end
+ *
+ * boot_get_ramdisk() is responsible for finding a valid ramdisk image.
+ * Currently supported are the following ramdisk sources:
+ *      - multicomponent kernel/ramdisk image,
+ *      - commandline provided address of decicated ramdisk image.
+ *
+ * returns:
+ *     0, if ramdisk image was found and valid, or skiped
+ *     rd_start and rd_end are set to ramdisk start/end addresses if
+ *     ramdisk image is found and valid
+ *
+ *     1, if ramdisk image is found but corrupted, or invalid
+ *     rd_start and rd_end are set to 0 if no ramdisk exists
+ */
+int boot_get_ramdisk(char const *select, struct bootm_headers *images,
+                    uint arch, ulong *rd_start, ulong *rd_end);
 
 /**
  * boot_get_loadable - routine to load a list of binaries to memory