]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
fastboot: Remove dependencies on CMDLINE
authorSimon Glass <sjg@chromium.org>
Fri, 15 Dec 2023 04:19:06 +0000 (21:19 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 10 Apr 2024 23:04:25 +0000 (17:04 -0600)
It is possible to boot a kernel without CMDLINE being enabled. Update
the implementation to handle this, and drop the condition from the
FASTBOOT config.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
drivers/fastboot/Kconfig
drivers/fastboot/fb_common.c

index 11fc0fe1c800a847ccaa8fc7c3830ffe079f5580..837c6f1180da6bb3a64ce0988572194b1f821456 100644 (file)
@@ -1,5 +1,4 @@
 menu "Fastboot support"
-       depends on CMDLINE
 
 config FASTBOOT
        bool
index 07f5946d9ed1856c23ed1a6bd08e12f3eb8b87d6..595954542a6e740af984492127da8e955b389e39 100644 (file)
@@ -11,6 +11,7 @@
  */
 
 #include <bcb.h>
+#include <bootm.h>
 #include <common.h>
 #include <command.h>
 #include <env.h>
@@ -142,22 +143,19 @@ void (*fastboot_get_progress_callback(void))(const char *)
  */
 void fastboot_boot(void)
 {
-       char *s;
-
-       s = env_get("fastboot_bootcmd");
-       if (s) {
-               run_command(s, CMD_FLAG_ENV);
-       } else if (IS_ENABLED(CONFIG_CMD_BOOTM)) {
-               static char boot_addr_start[20];
-               static char *const bootm_args[] = {
-                       "bootm", boot_addr_start, NULL
-               };
-
-               snprintf(boot_addr_start, sizeof(boot_addr_start) - 1,
-                        "%lx", fastboot_buf_addr);
-               printf("Booting kernel at %s...\n\n\n", boot_addr_start);
-
-               do_bootm(NULL, 0, 2, bootm_args);
+       char *s = NULL;
+
+       if (IS_ENABLED(CONFIG_CMDLINE)) {
+               s = env_get("fastboot_bootcmd");
+               if (s)
+                       run_command(s, CMD_FLAG_ENV);
+       }
+
+       if (!s && IS_ENABLED(CONFIG_BOOTM)) {
+               int ret;
+
+               printf("Booting kernel at %lx...\n\n\n", fastboot_buf_addr);
+               ret = bootm_boot_start(fastboot_buf_addr, NULL);
 
                /*
                 * This only happens if image is somehow faulty so we start