]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
x86: zboot: Separate logic functions from commands
authorSimon Glass <sjg@chromium.org>
Mon, 4 Dec 2023 00:29:36 +0000 (17:29 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 10 Apr 2024 19:49:16 +0000 (13:49 -0600)
Move zboot_start() and zboot_info() in with the other logic functions.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
arch/x86/include/asm/zimage.h
arch/x86/lib/zimage.c
cmd/x86/zboot.c

index ac6683ea9ef3e044d8e67d020277050819f6825a..8b5426051701c8266395afd9232eb1ff30d38304 100644 (file)
@@ -134,4 +134,29 @@ struct boot_params *load_zimage(char *image, unsigned long kernel_size,
 int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
                 ulong initrd_addr, ulong initrd_size, ulong cmdline_force);
 
+/**
+ * zboot_start() - Prepare to boot a zimage
+ *
+ * Record information about a zimage so it can be booted
+ *
+ * @bzimage_addr: Address of the bzImage to boot
+ * @bzimage_size: Size of the bzImage, or 0 to detect this
+ * @initrd_addr: Address of the initial ramdisk, or 0 if none
+ * @initrd_size: Size of the initial ramdisk, or 0 if none
+ * @base_addr: If non-zero, this indicates that the boot parameters have already
+ *     been loaded by the caller to this address, so the load_zimage() call
+ *     in zboot_load() will be skipped when booting
+ * @cmdline: Environment variable containing the 'override' command line, or
+ *     NULL to use the one in the setup block
+ */
+void zboot_start(ulong bzimage_addr, ulong bzimage_size, ulong initrd_addr,
+                ulong initrd_size, ulong base_addr, const char *cmdline);
+
+/**
+ * zboot_info() - Show simple info about a zimage
+ *
+ * Shows wherer the kernel was loaded and also the setup base
+ */
+void zboot_info(void);
+
 #endif
index e8a1849947e624222a6327547380da036057afb9..f2d4f3b501621d256b04200c20605ea6a61f7d43 100644 (file)
@@ -652,3 +652,26 @@ void zimage_dump(struct boot_params *base_ptr, bool show_cmdline)
        if (get_boot_protocol(hdr, false) >= 0x215)
                print_num("Kernel info offset", hdr->kernel_info_offset);
 }
+
+void zboot_start(ulong bzimage_addr, ulong bzimage_size, ulong initrd_addr,
+                ulong initrd_size, ulong base_addr, const char *cmdline)
+{
+       memset(&state, '\0', sizeof(state));
+
+       state.bzimage_size = bzimage_size;
+       state.initrd_addr = initrd_addr;
+       state.initrd_size = initrd_size;
+       if (base_addr) {
+               state.base_ptr = map_sysmem(base_addr, 0);
+               state.load_address = bzimage_addr;
+       } else {
+               state.bzimage_addr = bzimage_addr;
+       }
+       state.cmdline = cmdline;
+}
+
+void zboot_info(void)
+{
+       printf("Kernel loaded at %08lx, setup_base=%p\n",
+              state.load_address, state.base_ptr);
+}
index 572b58a5537d2f674e20bef158d883220837aa46..addf28cb4aae5477c19cbd0bc7688e5585cccda9 100644 (file)
 #include <vsprintf.h>
 #include <asm/zimage.h>
 
-static int zboot_start(ulong bzimage_addr, ulong bzimage_size,
-                      ulong initrd_addr, ulong initrd_size, ulong base_addr,
-                      const char *cmdline)
-{
-       memset(&state, '\0', sizeof(state));
-
-       state.bzimage_size = bzimage_size;
-       state.initrd_addr = initrd_addr;
-       state.initrd_size = initrd_size;
-       if (base_addr) {
-               state.base_ptr = map_sysmem(base_addr, 0);
-               state.load_address = bzimage_addr;
-       } else {
-               state.bzimage_addr = bzimage_addr;
-       }
-       state.cmdline = cmdline;
-
-       return 0;
-}
-
 static int do_zboot_start(struct cmd_tbl *cmdtp, int flag, int argc,
                          char *const argv[])
 {
@@ -47,8 +27,10 @@ static int do_zboot_start(struct cmd_tbl *cmdtp, int flag, int argc,
        base_addr = argc > 5 ? hextoul(argv[5], NULL) : 0;
        cmdline = argc > 6 ? env_get(argv[6]) : NULL;
 
-       return zboot_start(bzimage_addr, bzimage_size, initrd_addr, initrd_size,
-                          base_addr, cmdline);
+       zboot_start(bzimage_addr, bzimage_size, initrd_addr, initrd_size,
+                   base_addr, cmdline);
+
+       return 0;
 }
 
 static int do_zboot_load(struct cmd_tbl *cmdtp, int flag, int argc,
@@ -81,12 +63,6 @@ static int do_zboot_setup(struct cmd_tbl *cmdtp, int flag, int argc,
        return 0;
 }
 
-static void zboot_info(void)
-{
-       printf("Kernel loaded at %08lx, setup_base=%p\n",
-              state.load_address, state.base_ptr);
-}
-
 static int do_zboot_info(struct cmd_tbl *cmdtp, int flag, int argc,
                         char *const argv[])
 {