diff mbox series

[05/18] treewide: bootm: Drop command-line args to boot_os_fn

Message ID 20231203172622.5.Id5671bc2d663f968a6f9da1c7d248525a794a4ba@changeid
State Superseded
Delegated to: Tom Rini
Headers show
Series Complete decoupling of bootm logic from commands | expand

Commit Message

Simon Glass Dec. 4, 2023, 12:26 a.m. UTC
These arguments are not used now. They cannot be provided when there is
no bootm command invoked to provide arguments. Drop the argc and argv
parameters.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 arch/arc/lib/bootm.c        |  2 +-
 arch/arm/lib/bootm.c        |  3 +--
 arch/m68k/lib/bootm.c       |  3 +--
 arch/microblaze/lib/bootm.c |  3 +--
 arch/mips/lib/bootm.c       |  3 +--
 arch/nios2/lib/bootm.c      |  3 +--
 arch/powerpc/lib/bootm.c    |  3 +--
 arch/riscv/lib/bootm.c      |  5 ++--
 arch/sandbox/lib/bootm.c    |  2 +-
 arch/sh/lib/bootm.c         |  3 +--
 arch/x86/lib/bootm.c        |  3 +--
 arch/xtensa/lib/bootm.c     |  2 +-
 boot/bootm.c                |  6 ++---
 boot/bootm_os.c             | 46 ++++++++++++++-----------------------
 include/bootm.h             |  7 +-----
 15 files changed, 34 insertions(+), 60 deletions(-)

Comments

Angelo Dureghello Dec. 4, 2023, 7 p.m. UTC | #1
Hi Simon,

looks like i cannot apply this patch:

     ~/dev-k/u-boot-coldfire  on   master *2  git am 
Complete-decoupling-of-bootm-logic-from-commands.patch
Applying: bootm: netbds: Drop passing of arguments
Applying: bootm: plan: Drop passing of arguments
Applying: bootm: qnxelf: Drop passing of arguments
Applying: nios2: Drop separate parsing of bootm args
Applying: treewide: bootm: Drop command-line args to boot_os_fn
error: patch failed: boot/bootm_os.c:441
error: boot/bootm_os.c: patch does not apply
Patch failed at 0005 treewide: bootm: Drop command-line args to boot_os_fn
hint: Use 'git am --show-current-patch=diff' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".


And getting similar issues for the "pxe: Allow extlinux booting without 
CMDLINE enabled"

Am i doing something wrong ?

Thanks,

Regards
angelo

On 04/12/23 1:26 AM, Simon Glass wrote:
> These arguments are not used now. They cannot be provided when there is
> no bootm command invoked to provide arguments. Drop the argc and argv
> parameters.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>   arch/arc/lib/bootm.c        |  2 +-
>   arch/arm/lib/bootm.c        |  3 +--
>   arch/m68k/lib/bootm.c       |  3 +--
>   arch/microblaze/lib/bootm.c |  3 +--
>   arch/mips/lib/bootm.c       |  3 +--
>   arch/nios2/lib/bootm.c      |  3 +--
>   arch/powerpc/lib/bootm.c    |  3 +--
>   arch/riscv/lib/bootm.c      |  5 ++--
>   arch/sandbox/lib/bootm.c    |  2 +-
>   arch/sh/lib/bootm.c         |  3 +--
>   arch/x86/lib/bootm.c        |  3 +--
>   arch/xtensa/lib/bootm.c     |  2 +-
>   boot/bootm.c                |  6 ++---
>   boot/bootm_os.c             | 46 ++++++++++++++-----------------------
>   include/bootm.h             |  7 +-----
>   15 files changed, 34 insertions(+), 60 deletions(-)
> 
> diff --git a/arch/arc/lib/bootm.c b/arch/arc/lib/bootm.c
> index 44ec5864a1c6..0ae7a21b24b6 100644
> --- a/arch/arc/lib/bootm.c
> +++ b/arch/arc/lib/bootm.c
> @@ -78,7 +78,7 @@ static void boot_jump_linux(struct bootm_headers *images, int flag)
>   		board_jump_and_run(kernel_entry, r0, 0, r2);
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on ARC */
>   	if ((flag & BOOTM_STATE_OS_BD_T) || (flag & BOOTM_STATE_OS_CMDLINE))
> diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
> index c56285738a26..ebaac029e094 100644
> --- a/arch/arm/lib/bootm.c
> +++ b/arch/arm/lib/bootm.c
> @@ -378,8 +378,7 @@ static void boot_jump_linux(struct bootm_headers *images, int flag)
>    * DIFFERENCE: Instead of calling prep and go at the end
>    * they are called if subcommand is equal 0.
>    */
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on ARM */
>   	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
> diff --git a/arch/m68k/lib/bootm.c b/arch/m68k/lib/bootm.c
> index 79d8b34c0d56..0720861ae9cc 100644
> --- a/arch/m68k/lib/bootm.c
> +++ b/arch/m68k/lib/bootm.c
> @@ -34,8 +34,7 @@ void arch_lmb_reserve(struct lmb *lmb)
>   	arch_lmb_reserve_generic(lmb, get_sp(), gd->ram_top, 1024);
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	int ret;
>   	struct bd_info  *kbd;
> diff --git a/arch/microblaze/lib/bootm.c b/arch/microblaze/lib/bootm.c
> index f3ec4b741b88..93cdf62e18cf 100644
> --- a/arch/microblaze/lib/bootm.c
> +++ b/arch/microblaze/lib/bootm.c
> @@ -81,8 +81,7 @@ static void boot_prep_linux(struct bootm_headers *images)
>   	}
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	images->cmdline_start = (ulong)env_get("bootargs");
>   
> diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c
> index d6d2f7d9d031..05dbe6131728 100644
> --- a/arch/mips/lib/bootm.c
> +++ b/arch/mips/lib/bootm.c
> @@ -300,8 +300,7 @@ static void boot_jump_linux(struct bootm_headers *images)
>   			linux_extra);
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on MIPS */
>   	if (flag & BOOTM_STATE_OS_BD_T)
> diff --git a/arch/nios2/lib/bootm.c b/arch/nios2/lib/bootm.c
> index 823d524c9a2d..040a806bc75e 100644
> --- a/arch/nios2/lib/bootm.c
> +++ b/arch/nios2/lib/bootm.c
> @@ -16,8 +16,7 @@ DECLARE_GLOBAL_DATA_PTR;
>   
>   #define NIOS_MAGIC 0x534f494e /* enable command line and initrd passing */
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	void (*kernel)(int, int, int, char *) = (void *)images->ep;
>   	char *commandline = env_get("bootargs");
> diff --git a/arch/powerpc/lib/bootm.c b/arch/powerpc/lib/bootm.c
> index 910121ec9c85..4d248cb13b5f 100644
> --- a/arch/powerpc/lib/bootm.c
> +++ b/arch/powerpc/lib/bootm.c
> @@ -223,8 +223,7 @@ static int boot_body_linux(struct bootm_headers *images)
>   	return 0;
>   }
>   
> -noinline int do_bootm_linux(int flag, int argc, char *const argv[],
> -			    struct bootm_headers *images)
> +noinline int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	int	ret;
>   
> diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c
> index f9e1e18ae026..d90f26091530 100644
> --- a/arch/riscv/lib/bootm.c
> +++ b/arch/riscv/lib/bootm.c
> @@ -105,8 +105,7 @@ static void boot_jump_linux(struct bootm_headers *images, int flag)
>   	}
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on RISC-V */
>   	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
> @@ -130,7 +129,7 @@ int do_bootm_linux(int flag, int argc, char *const argv[],
>   int do_bootm_vxworks(int flag, int argc, char *const argv[],
>   		     struct bootm_headers *images)
>   {
> -	return do_bootm_linux(flag, argc, argv, images);
> +	return do_bootm_linux(flag, images);
>   }
>   
>   static ulong get_sp(void)
> diff --git a/arch/sandbox/lib/bootm.c b/arch/sandbox/lib/bootm.c
> index dc8b8e46cb41..d2b514d3f0ca 100644
> --- a/arch/sandbox/lib/bootm.c
> +++ b/arch/sandbox/lib/bootm.c
> @@ -64,7 +64,7 @@ static int boot_prep_linux(struct bootm_headers *images)
>   	return 0;
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	if (flag & BOOTM_STATE_OS_PREP)
>   		return boot_prep_linux(images);
> diff --git a/arch/sh/lib/bootm.c b/arch/sh/lib/bootm.c
> index b205e5e3db1b..d0284582ae0e 100644
> --- a/arch/sh/lib/bootm.c
> +++ b/arch/sh/lib/bootm.c
> @@ -39,8 +39,7 @@ static unsigned long sh_check_cmd_arg(char *cmdline, char *key, int base)
>   	return val;
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* Linux kernel load address */
>   	void (*kernel) (void) = (void (*)(void))images->ep;
> diff --git a/arch/x86/lib/bootm.c b/arch/x86/lib/bootm.c
> index 3196f9ddc2c8..34d5c585a55a 100644
> --- a/arch/x86/lib/bootm.c
> +++ b/arch/x86/lib/bootm.c
> @@ -237,8 +237,7 @@ static int boot_jump_linux(struct bootm_headers *images)
>   				 images->os.arch == IH_ARCH_X86_64);
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on x86 */
>   	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
> diff --git a/arch/xtensa/lib/bootm.c b/arch/xtensa/lib/bootm.c
> index fee339281502..5e8e14021ab3 100644
> --- a/arch/xtensa/lib/bootm.c
> +++ b/arch/xtensa/lib/bootm.c
> @@ -134,7 +134,7 @@ static struct bp_tag *setup_fdt_tag(struct bp_tag *params, void *fdt_start)
>    * Boot Linux.
>    */
>   
> -int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	struct bp_tag *params, *params_start;
>   	ulong initrd_start, initrd_end;
> diff --git a/boot/bootm.c b/boot/bootm.c
> index 301cfded05cb..c343f313e80a 100644
> --- a/boot/bootm.c
> +++ b/boot/bootm.c
> @@ -1099,9 +1099,9 @@ int do_bootm_states(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   	/* Call various other states that are not generally used */
>   	if (!ret && (states & BOOTM_STATE_OS_CMDLINE))
> -		ret = boot_fn(BOOTM_STATE_OS_CMDLINE, argc, argv, images);
> +		ret = boot_fn(BOOTM_STATE_OS_CMDLINE, images);
>   	if (!ret && (states & BOOTM_STATE_OS_BD_T))
> -		ret = boot_fn(BOOTM_STATE_OS_BD_T, argc, argv, images);
> +		ret = boot_fn(BOOTM_STATE_OS_BD_T, images);
>   	if (!ret && (states & BOOTM_STATE_OS_PREP)) {
>   		ret = bootm_process_cmdline_env(images->os.os == IH_OS_LINUX);
>   		if (ret) {
> @@ -1109,7 +1109,7 @@ int do_bootm_states(struct cmd_tbl *cmdtp, int flag, int argc,
>   			ret = CMD_RET_FAILURE;
>   			goto err;
>   		}
> -		ret = boot_fn(BOOTM_STATE_OS_PREP, argc, argv, images);
> +		ret = boot_fn(BOOTM_STATE_OS_PREP, images);
>   	}
>   
>   #ifdef CONFIG_TRACE
> diff --git a/boot/bootm_os.c b/boot/bootm_os.c
> index 598671e576c6..df1aab4b3e4d 100644
> --- a/boot/bootm_os.c
> +++ b/boot/bootm_os.c
> @@ -23,8 +23,7 @@
>   
>   DECLARE_GLOBAL_DATA_PTR;
>   
> -static int do_bootm_standalone(int flag, int argc, char *const argv[],
> -			       struct bootm_headers *images)
> +static int do_bootm_standalone(int flag, struct bootm_headers *images)
>   {
>   	int (*appl)(int, char *const[]);
>   
> @@ -33,7 +32,7 @@ static int do_bootm_standalone(int flag, int argc, char *const argv[],
>   		return 0;
>   	}
>   	appl = (int (*)(int, char * const []))images->ep;
> -	appl(argc, argv);
> +	appl(0, NULL);
>   	return 0;
>   }
>   
> @@ -50,8 +49,7 @@ static void __maybe_unused fit_unsupported_reset(const char *msg)
>   }
>   
>   #ifdef CONFIG_BOOTM_NETBSD
> -static int do_bootm_netbsd(int flag, int argc, char *const argv[],
> -			   struct bootm_headers *images)
> +static int do_bootm_netbsd(int flag, struct bootm_headers *images)
>   {
>   	void (*loader)(struct bd_info *bd, struct legacy_img_hdr *hdr,
>   		       char *console, char *cmdline);
> @@ -113,8 +111,7 @@ static int do_bootm_netbsd(int flag, int argc, char *const argv[],
>   #endif /* CONFIG_BOOTM_NETBSD*/
>   
>   #ifdef CONFIG_BOOTM_RTEMS
> -static int do_bootm_rtems(int flag, int argc, char *const argv[],
> -			  struct bootm_headers *images)
> +static int do_bootm_rtems(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(struct bd_info *);
>   
> @@ -146,8 +143,7 @@ static int do_bootm_rtems(int flag, int argc, char *const argv[],
>   #endif /* CONFIG_BOOTM_RTEMS */
>   
>   #if defined(CONFIG_BOOTM_OSE)
> -static int do_bootm_ose(int flag, int argc, char *const argv[],
> -			struct bootm_headers *images)
> +static int do_bootm_ose(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(void);
>   
> @@ -179,8 +175,7 @@ static int do_bootm_ose(int flag, int argc, char *const argv[],
>   #endif /* CONFIG_BOOTM_OSE */
>   
>   #if defined(CONFIG_BOOTM_PLAN9)
> -static int do_bootm_plan9(int flag, int argc, char *const argv[],
> -			  struct bootm_headers *images)
> +static int do_bootm_plan9(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(void);
>   	char *s;
> @@ -283,8 +278,7 @@ static void do_bootvx_fdt(struct bootm_headers *images)
>   	puts("## vxWorks terminated\n");
>   }
>   
> -static int do_bootm_vxworks_legacy(int flag, int argc, char *const argv[],
> -				   struct bootm_headers *images)
> +static int do_bootm_vxworks_legacy(int flag, struct bootm_headers *images)
>   {
>   	if (flag != BOOTM_STATE_OS_GO)
>   		return 0;
> @@ -294,8 +288,7 @@ static int do_bootm_vxworks_legacy(int flag, int argc, char *const argv[],
>   	return 1;
>   }
>   
> -int do_bootm_vxworks(int flag, int argc, char *const argv[],
> -		     struct bootm_headers *images)
> +int do_bootm_vxworks(int flag, struct bootm_headers *images)
>   {
>   	char *bootargs;
>   	int pos;
> @@ -320,18 +313,17 @@ int do_bootm_vxworks(int flag, int argc, char *const argv[],
>   	if (std_dtb) {
>   		if (flag & BOOTM_STATE_OS_PREP)
>   			printf("   Using standard DTB\n");
> -		return do_bootm_linux(flag, argc, argv, images);
> +		return do_bootm_linux(flag, images);
>   	} else {
>   		if (flag & BOOTM_STATE_OS_PREP)
>   			printf("   !!! WARNING !!! Using legacy DTB\n");
> -		return do_bootm_vxworks_legacy(flag, argc, argv, images);
> +		return do_bootm_vxworks_legacy(flag, images);
>   	}
>   }
>   #endif
>   
>   #if defined(CONFIG_CMD_ELF)
> -static int do_bootm_qnxelf(int flag, int argc, char *const argv[],
> -			   struct bootm_headers *images)
> +static int do_bootm_qnxelf(int flag, struct bootm_headers *images)
>   {
>   	char *local_args[3];
>   	char str[16];
> @@ -369,8 +361,7 @@ static int do_bootm_qnxelf(int flag, int argc, char *const argv[],
>   #endif
>   
>   #ifdef CONFIG_INTEGRITY
> -static int do_bootm_integrity(int flag, int argc, char *const argv[],
> -			      struct bootm_headers *images)
> +static int do_bootm_integrity(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(void);
>   
> @@ -402,8 +393,7 @@ static int do_bootm_integrity(int flag, int argc, char *const argv[],
>   #endif
>   
>   #ifdef CONFIG_BOOTM_OPENRTOS
> -static int do_bootm_openrtos(int flag, int argc, char *const argv[],
> -			     struct bootm_headers *images)
> +static int do_bootm_openrtos(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(void);
>   
> @@ -428,8 +418,7 @@ static int do_bootm_openrtos(int flag, int argc, char *const argv[],
>   #endif
>   
>   #ifdef CONFIG_BOOTM_OPTEE
> -static int do_bootm_tee(int flag, int argc, char *const argv[],
> -			struct bootm_headers *images)
> +static int do_bootm_tee(int flag, struct bootm_headers *images)
>   {
>   	int ret;
>   
> @@ -441,13 +430,12 @@ static int do_bootm_tee(int flag, int argc, char *const argv[],
>   		return ret;
>   
>   	/* From here we can run the regular linux boot path */
> -	return do_bootm_linux(flag, argc, argv, images);
> +	return do_bootm_linux(flag, images);
>   }
>   #endif
>   
>   #ifdef CONFIG_BOOTM_EFI
> -static int do_bootm_efi(int flag, int argc, char *const argv[],
> -			struct bootm_headers *images)
> +static int do_bootm_efi(int flag, struct bootm_headers *images)
>   {
>   	efi_status_t efi_ret;
>   	void *image_buf;
> @@ -544,7 +532,7 @@ int boot_selected_os(int argc, char *const argv[], int state,
>   {
>   	arch_preboot_os();
>   	board_preboot_os();
> -	boot_fn(state, argc, argv, images);
> +	boot_fn(state, images);
>   
>   	/* Stand-alone may return when 'autostart' is 'no' */
>   	if (images->os.type == IH_TYPE_STANDALONE ||
> diff --git a/include/bootm.h b/include/bootm.h
> index f5229ea90b33..0e4662485006 100644
> --- a/include/bootm.h
> +++ b/include/bootm.h
> @@ -25,16 +25,11 @@ struct cmd_tbl;
>    *  - disabled interrupts.
>    *
>    * @flag: Flags indicating what to do (BOOTM_STATE_...)
> - * @argc: Number of arguments. Note that the arguments are shifted down
> - *	 so that 0 is the first argument not processed by U-Boot, and
> - *	 argc is adjusted accordingly. This avoids confusion as to how
> - *	 many arguments are available for the OS.
>    * @images: Pointers to os/initrd/fdt
>    * Return: 1 on error. On success the OS boots so this function does
>    * not return.
>    */
> -typedef int boot_os_fn(int flag, int argc, char *const argv[],
> -			struct bootm_headers *images);
> +typedef int boot_os_fn(int flag, struct bootm_headers *images);
>   
>   extern boot_os_fn do_bootm_linux;
>   extern boot_os_fn do_bootm_vxworks;
Simon Glass Dec. 5, 2023, 12:52 a.m. UTC | #2
Hi Angelo,

On Tue, 5 Dec 2023 at 08:01, Angelo Dureghello <angelo@kernel-space.org> wrote:
>
> Hi Simon,
>
> looks like i cannot apply this patch:
>
>      ~/dev-k/u-boot-coldfire  on   master *2  git am
> Complete-decoupling-of-bootm-logic-from-commands.patch
> Applying: bootm: netbds: Drop passing of arguments
> Applying: bootm: plan: Drop passing of arguments
> Applying: bootm: qnxelf: Drop passing of arguments
> Applying: nios2: Drop separate parsing of bootm args
> Applying: treewide: bootm: Drop command-line args to boot_os_fn
> error: patch failed: boot/bootm_os.c:441
> error: boot/bootm_os.c: patch does not apply
> Patch failed at 0005 treewide: bootm: Drop command-line args to boot_os_fn
> hint: Use 'git am --show-current-patch=diff' to see the failed patch
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --abort".
>
>
> And getting similar issues for the "pxe: Allow extlinux booting without
> CMDLINE enabled"
>
> Am i doing something wrong ?

Could you please check the cover letter? There are several series here
and I put the -dm tree links in as well.

I was keeping these to send in sequence, but it would likely take
several releases that way, so I elected to send everything at once and
get feedback.

Regards,
SmIon
Angelo Dureghello Dec. 10, 2023, 7:54 p.m. UTC | #3
Hi Simon,


Acked-by: Angelo Dureghello <angelo@kernel-space.org>

On 04/12/23 1:26 AM, Simon Glass wrote:
> These arguments are not used now. They cannot be provided when there is
> no bootm command invoked to provide arguments. Drop the argc and argv
> parameters.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>   arch/arc/lib/bootm.c        |  2 +-
>   arch/arm/lib/bootm.c        |  3 +--
>   arch/m68k/lib/bootm.c       |  3 +--
>   arch/microblaze/lib/bootm.c |  3 +--
>   arch/mips/lib/bootm.c       |  3 +--
>   arch/nios2/lib/bootm.c      |  3 +--
>   arch/powerpc/lib/bootm.c    |  3 +--
>   arch/riscv/lib/bootm.c      |  5 ++--
>   arch/sandbox/lib/bootm.c    |  2 +-
>   arch/sh/lib/bootm.c         |  3 +--
>   arch/x86/lib/bootm.c        |  3 +--
>   arch/xtensa/lib/bootm.c     |  2 +-
>   boot/bootm.c                |  6 ++---
>   boot/bootm_os.c             | 46 ++++++++++++++-----------------------
>   include/bootm.h             |  7 +-----
>   15 files changed, 34 insertions(+), 60 deletions(-)
> 
> diff --git a/arch/arc/lib/bootm.c b/arch/arc/lib/bootm.c
> index 44ec5864a1c6..0ae7a21b24b6 100644
> --- a/arch/arc/lib/bootm.c
> +++ b/arch/arc/lib/bootm.c
> @@ -78,7 +78,7 @@ static void boot_jump_linux(struct bootm_headers *images, int flag)
>   		board_jump_and_run(kernel_entry, r0, 0, r2);
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on ARC */
>   	if ((flag & BOOTM_STATE_OS_BD_T) || (flag & BOOTM_STATE_OS_CMDLINE))
> diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
> index c56285738a26..ebaac029e094 100644
> --- a/arch/arm/lib/bootm.c
> +++ b/arch/arm/lib/bootm.c
> @@ -378,8 +378,7 @@ static void boot_jump_linux(struct bootm_headers *images, int flag)
>    * DIFFERENCE: Instead of calling prep and go at the end
>    * they are called if subcommand is equal 0.
>    */
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on ARM */
>   	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
> diff --git a/arch/m68k/lib/bootm.c b/arch/m68k/lib/bootm.c
> index 79d8b34c0d56..0720861ae9cc 100644
> --- a/arch/m68k/lib/bootm.c
> +++ b/arch/m68k/lib/bootm.c
> @@ -34,8 +34,7 @@ void arch_lmb_reserve(struct lmb *lmb)
>   	arch_lmb_reserve_generic(lmb, get_sp(), gd->ram_top, 1024);
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	int ret;
>   	struct bd_info  *kbd;
> diff --git a/arch/microblaze/lib/bootm.c b/arch/microblaze/lib/bootm.c
> index f3ec4b741b88..93cdf62e18cf 100644
> --- a/arch/microblaze/lib/bootm.c
> +++ b/arch/microblaze/lib/bootm.c
> @@ -81,8 +81,7 @@ static void boot_prep_linux(struct bootm_headers *images)
>   	}
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	images->cmdline_start = (ulong)env_get("bootargs");
>   
> diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c
> index d6d2f7d9d031..05dbe6131728 100644
> --- a/arch/mips/lib/bootm.c
> +++ b/arch/mips/lib/bootm.c
> @@ -300,8 +300,7 @@ static void boot_jump_linux(struct bootm_headers *images)
>   			linux_extra);
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on MIPS */
>   	if (flag & BOOTM_STATE_OS_BD_T)
> diff --git a/arch/nios2/lib/bootm.c b/arch/nios2/lib/bootm.c
> index 823d524c9a2d..040a806bc75e 100644
> --- a/arch/nios2/lib/bootm.c
> +++ b/arch/nios2/lib/bootm.c
> @@ -16,8 +16,7 @@ DECLARE_GLOBAL_DATA_PTR;
>   
>   #define NIOS_MAGIC 0x534f494e /* enable command line and initrd passing */
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	void (*kernel)(int, int, int, char *) = (void *)images->ep;
>   	char *commandline = env_get("bootargs");
> diff --git a/arch/powerpc/lib/bootm.c b/arch/powerpc/lib/bootm.c
> index 910121ec9c85..4d248cb13b5f 100644
> --- a/arch/powerpc/lib/bootm.c
> +++ b/arch/powerpc/lib/bootm.c
> @@ -223,8 +223,7 @@ static int boot_body_linux(struct bootm_headers *images)
>   	return 0;
>   }
>   
> -noinline int do_bootm_linux(int flag, int argc, char *const argv[],
> -			    struct bootm_headers *images)
> +noinline int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	int	ret;
>   
> diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c
> index f9e1e18ae026..d90f26091530 100644
> --- a/arch/riscv/lib/bootm.c
> +++ b/arch/riscv/lib/bootm.c
> @@ -105,8 +105,7 @@ static void boot_jump_linux(struct bootm_headers *images, int flag)
>   	}
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on RISC-V */
>   	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
> @@ -130,7 +129,7 @@ int do_bootm_linux(int flag, int argc, char *const argv[],
>   int do_bootm_vxworks(int flag, int argc, char *const argv[],
>   		     struct bootm_headers *images)
>   {
> -	return do_bootm_linux(flag, argc, argv, images);
> +	return do_bootm_linux(flag, images);
>   }
>   
>   static ulong get_sp(void)
> diff --git a/arch/sandbox/lib/bootm.c b/arch/sandbox/lib/bootm.c
> index dc8b8e46cb41..d2b514d3f0ca 100644
> --- a/arch/sandbox/lib/bootm.c
> +++ b/arch/sandbox/lib/bootm.c
> @@ -64,7 +64,7 @@ static int boot_prep_linux(struct bootm_headers *images)
>   	return 0;
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	if (flag & BOOTM_STATE_OS_PREP)
>   		return boot_prep_linux(images);
> diff --git a/arch/sh/lib/bootm.c b/arch/sh/lib/bootm.c
> index b205e5e3db1b..d0284582ae0e 100644
> --- a/arch/sh/lib/bootm.c
> +++ b/arch/sh/lib/bootm.c
> @@ -39,8 +39,7 @@ static unsigned long sh_check_cmd_arg(char *cmdline, char *key, int base)
>   	return val;
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* Linux kernel load address */
>   	void (*kernel) (void) = (void (*)(void))images->ep;
> diff --git a/arch/x86/lib/bootm.c b/arch/x86/lib/bootm.c
> index 3196f9ddc2c8..34d5c585a55a 100644
> --- a/arch/x86/lib/bootm.c
> +++ b/arch/x86/lib/bootm.c
> @@ -237,8 +237,7 @@ static int boot_jump_linux(struct bootm_headers *images)
>   				 images->os.arch == IH_ARCH_X86_64);
>   }
>   
> -int do_bootm_linux(int flag, int argc, char *const argv[],
> -		   struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	/* No need for those on x86 */
>   	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
> diff --git a/arch/xtensa/lib/bootm.c b/arch/xtensa/lib/bootm.c
> index fee339281502..5e8e14021ab3 100644
> --- a/arch/xtensa/lib/bootm.c
> +++ b/arch/xtensa/lib/bootm.c
> @@ -134,7 +134,7 @@ static struct bp_tag *setup_fdt_tag(struct bp_tag *params, void *fdt_start)
>    * Boot Linux.
>    */
>   
> -int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
> +int do_bootm_linux(int flag, struct bootm_headers *images)
>   {
>   	struct bp_tag *params, *params_start;
>   	ulong initrd_start, initrd_end;
> diff --git a/boot/bootm.c b/boot/bootm.c
> index 301cfded05cb..c343f313e80a 100644
> --- a/boot/bootm.c
> +++ b/boot/bootm.c
> @@ -1099,9 +1099,9 @@ int do_bootm_states(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   	/* Call various other states that are not generally used */
>   	if (!ret && (states & BOOTM_STATE_OS_CMDLINE))
> -		ret = boot_fn(BOOTM_STATE_OS_CMDLINE, argc, argv, images);
> +		ret = boot_fn(BOOTM_STATE_OS_CMDLINE, images);
>   	if (!ret && (states & BOOTM_STATE_OS_BD_T))
> -		ret = boot_fn(BOOTM_STATE_OS_BD_T, argc, argv, images);
> +		ret = boot_fn(BOOTM_STATE_OS_BD_T, images);
>   	if (!ret && (states & BOOTM_STATE_OS_PREP)) {
>   		ret = bootm_process_cmdline_env(images->os.os == IH_OS_LINUX);
>   		if (ret) {
> @@ -1109,7 +1109,7 @@ int do_bootm_states(struct cmd_tbl *cmdtp, int flag, int argc,
>   			ret = CMD_RET_FAILURE;
>   			goto err;
>   		}
> -		ret = boot_fn(BOOTM_STATE_OS_PREP, argc, argv, images);
> +		ret = boot_fn(BOOTM_STATE_OS_PREP, images);
>   	}
>   
>   #ifdef CONFIG_TRACE
> diff --git a/boot/bootm_os.c b/boot/bootm_os.c
> index 598671e576c6..df1aab4b3e4d 100644
> --- a/boot/bootm_os.c
> +++ b/boot/bootm_os.c
> @@ -23,8 +23,7 @@
>   
>   DECLARE_GLOBAL_DATA_PTR;
>   
> -static int do_bootm_standalone(int flag, int argc, char *const argv[],
> -			       struct bootm_headers *images)
> +static int do_bootm_standalone(int flag, struct bootm_headers *images)
>   {
>   	int (*appl)(int, char *const[]);
>   
> @@ -33,7 +32,7 @@ static int do_bootm_standalone(int flag, int argc, char *const argv[],
>   		return 0;
>   	}
>   	appl = (int (*)(int, char * const []))images->ep;
> -	appl(argc, argv);
> +	appl(0, NULL);
>   	return 0;
>   }
>   
> @@ -50,8 +49,7 @@ static void __maybe_unused fit_unsupported_reset(const char *msg)
>   }
>   
>   #ifdef CONFIG_BOOTM_NETBSD
> -static int do_bootm_netbsd(int flag, int argc, char *const argv[],
> -			   struct bootm_headers *images)
> +static int do_bootm_netbsd(int flag, struct bootm_headers *images)
>   {
>   	void (*loader)(struct bd_info *bd, struct legacy_img_hdr *hdr,
>   		       char *console, char *cmdline);
> @@ -113,8 +111,7 @@ static int do_bootm_netbsd(int flag, int argc, char *const argv[],
>   #endif /* CONFIG_BOOTM_NETBSD*/
>   
>   #ifdef CONFIG_BOOTM_RTEMS
> -static int do_bootm_rtems(int flag, int argc, char *const argv[],
> -			  struct bootm_headers *images)
> +static int do_bootm_rtems(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(struct bd_info *);
>   
> @@ -146,8 +143,7 @@ static int do_bootm_rtems(int flag, int argc, char *const argv[],
>   #endif /* CONFIG_BOOTM_RTEMS */
>   
>   #if defined(CONFIG_BOOTM_OSE)
> -static int do_bootm_ose(int flag, int argc, char *const argv[],
> -			struct bootm_headers *images)
> +static int do_bootm_ose(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(void);
>   
> @@ -179,8 +175,7 @@ static int do_bootm_ose(int flag, int argc, char *const argv[],
>   #endif /* CONFIG_BOOTM_OSE */
>   
>   #if defined(CONFIG_BOOTM_PLAN9)
> -static int do_bootm_plan9(int flag, int argc, char *const argv[],
> -			  struct bootm_headers *images)
> +static int do_bootm_plan9(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(void);
>   	char *s;
> @@ -283,8 +278,7 @@ static void do_bootvx_fdt(struct bootm_headers *images)
>   	puts("## vxWorks terminated\n");
>   }
>   
> -static int do_bootm_vxworks_legacy(int flag, int argc, char *const argv[],
> -				   struct bootm_headers *images)
> +static int do_bootm_vxworks_legacy(int flag, struct bootm_headers *images)
>   {
>   	if (flag != BOOTM_STATE_OS_GO)
>   		return 0;
> @@ -294,8 +288,7 @@ static int do_bootm_vxworks_legacy(int flag, int argc, char *const argv[],
>   	return 1;
>   }
>   
> -int do_bootm_vxworks(int flag, int argc, char *const argv[],
> -		     struct bootm_headers *images)
> +int do_bootm_vxworks(int flag, struct bootm_headers *images)
>   {
>   	char *bootargs;
>   	int pos;
> @@ -320,18 +313,17 @@ int do_bootm_vxworks(int flag, int argc, char *const argv[],
>   	if (std_dtb) {
>   		if (flag & BOOTM_STATE_OS_PREP)
>   			printf("   Using standard DTB\n");
> -		return do_bootm_linux(flag, argc, argv, images);
> +		return do_bootm_linux(flag, images);
>   	} else {
>   		if (flag & BOOTM_STATE_OS_PREP)
>   			printf("   !!! WARNING !!! Using legacy DTB\n");
> -		return do_bootm_vxworks_legacy(flag, argc, argv, images);
> +		return do_bootm_vxworks_legacy(flag, images);
>   	}
>   }
>   #endif
>   
>   #if defined(CONFIG_CMD_ELF)
> -static int do_bootm_qnxelf(int flag, int argc, char *const argv[],
> -			   struct bootm_headers *images)
> +static int do_bootm_qnxelf(int flag, struct bootm_headers *images)
>   {
>   	char *local_args[3];
>   	char str[16];
> @@ -369,8 +361,7 @@ static int do_bootm_qnxelf(int flag, int argc, char *const argv[],
>   #endif
>   
>   #ifdef CONFIG_INTEGRITY
> -static int do_bootm_integrity(int flag, int argc, char *const argv[],
> -			      struct bootm_headers *images)
> +static int do_bootm_integrity(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(void);
>   
> @@ -402,8 +393,7 @@ static int do_bootm_integrity(int flag, int argc, char *const argv[],
>   #endif
>   
>   #ifdef CONFIG_BOOTM_OPENRTOS
> -static int do_bootm_openrtos(int flag, int argc, char *const argv[],
> -			     struct bootm_headers *images)
> +static int do_bootm_openrtos(int flag, struct bootm_headers *images)
>   {
>   	void (*entry_point)(void);
>   
> @@ -428,8 +418,7 @@ static int do_bootm_openrtos(int flag, int argc, char *const argv[],
>   #endif
>   
>   #ifdef CONFIG_BOOTM_OPTEE
> -static int do_bootm_tee(int flag, int argc, char *const argv[],
> -			struct bootm_headers *images)
> +static int do_bootm_tee(int flag, struct bootm_headers *images)
>   {
>   	int ret;
>   
> @@ -441,13 +430,12 @@ static int do_bootm_tee(int flag, int argc, char *const argv[],
>   		return ret;
>   
>   	/* From here we can run the regular linux boot path */
> -	return do_bootm_linux(flag, argc, argv, images);
> +	return do_bootm_linux(flag, images);
>   }
>   #endif
>   
>   #ifdef CONFIG_BOOTM_EFI
> -static int do_bootm_efi(int flag, int argc, char *const argv[],
> -			struct bootm_headers *images)
> +static int do_bootm_efi(int flag, struct bootm_headers *images)
>   {
>   	efi_status_t efi_ret;
>   	void *image_buf;
> @@ -544,7 +532,7 @@ int boot_selected_os(int argc, char *const argv[], int state,
>   {
>   	arch_preboot_os();
>   	board_preboot_os();
> -	boot_fn(state, argc, argv, images);
> +	boot_fn(state, images);
>   
>   	/* Stand-alone may return when 'autostart' is 'no' */
>   	if (images->os.type == IH_TYPE_STANDALONE ||
> diff --git a/include/bootm.h b/include/bootm.h
> index f5229ea90b33..0e4662485006 100644
> --- a/include/bootm.h
> +++ b/include/bootm.h
> @@ -25,16 +25,11 @@ struct cmd_tbl;
>    *  - disabled interrupts.
>    *
>    * @flag: Flags indicating what to do (BOOTM_STATE_...)
> - * @argc: Number of arguments. Note that the arguments are shifted down
> - *	 so that 0 is the first argument not processed by U-Boot, and
> - *	 argc is adjusted accordingly. This avoids confusion as to how
> - *	 many arguments are available for the OS.
>    * @images: Pointers to os/initrd/fdt
>    * Return: 1 on error. On success the OS boots so this function does
>    * not return.
>    */
> -typedef int boot_os_fn(int flag, int argc, char *const argv[],
> -			struct bootm_headers *images);
> +typedef int boot_os_fn(int flag, struct bootm_headers *images);
>   
>   extern boot_os_fn do_bootm_linux;
>   extern boot_os_fn do_bootm_vxworks;
diff mbox series

Patch

diff --git a/arch/arc/lib/bootm.c b/arch/arc/lib/bootm.c
index 44ec5864a1c6..0ae7a21b24b6 100644
--- a/arch/arc/lib/bootm.c
+++ b/arch/arc/lib/bootm.c
@@ -78,7 +78,7 @@  static void boot_jump_linux(struct bootm_headers *images, int flag)
 		board_jump_and_run(kernel_entry, r0, 0, r2);
 }
 
-int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	/* No need for those on ARC */
 	if ((flag & BOOTM_STATE_OS_BD_T) || (flag & BOOTM_STATE_OS_CMDLINE))
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index c56285738a26..ebaac029e094 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -378,8 +378,7 @@  static void boot_jump_linux(struct bootm_headers *images, int flag)
  * DIFFERENCE: Instead of calling prep and go at the end
  * they are called if subcommand is equal 0.
  */
-int do_bootm_linux(int flag, int argc, char *const argv[],
-		   struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	/* No need for those on ARM */
 	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
diff --git a/arch/m68k/lib/bootm.c b/arch/m68k/lib/bootm.c
index 79d8b34c0d56..0720861ae9cc 100644
--- a/arch/m68k/lib/bootm.c
+++ b/arch/m68k/lib/bootm.c
@@ -34,8 +34,7 @@  void arch_lmb_reserve(struct lmb *lmb)
 	arch_lmb_reserve_generic(lmb, get_sp(), gd->ram_top, 1024);
 }
 
-int do_bootm_linux(int flag, int argc, char *const argv[],
-		   struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	int ret;
 	struct bd_info  *kbd;
diff --git a/arch/microblaze/lib/bootm.c b/arch/microblaze/lib/bootm.c
index f3ec4b741b88..93cdf62e18cf 100644
--- a/arch/microblaze/lib/bootm.c
+++ b/arch/microblaze/lib/bootm.c
@@ -81,8 +81,7 @@  static void boot_prep_linux(struct bootm_headers *images)
 	}
 }
 
-int do_bootm_linux(int flag, int argc, char *const argv[],
-		   struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	images->cmdline_start = (ulong)env_get("bootargs");
 
diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c
index d6d2f7d9d031..05dbe6131728 100644
--- a/arch/mips/lib/bootm.c
+++ b/arch/mips/lib/bootm.c
@@ -300,8 +300,7 @@  static void boot_jump_linux(struct bootm_headers *images)
 			linux_extra);
 }
 
-int do_bootm_linux(int flag, int argc, char *const argv[],
-		   struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	/* No need for those on MIPS */
 	if (flag & BOOTM_STATE_OS_BD_T)
diff --git a/arch/nios2/lib/bootm.c b/arch/nios2/lib/bootm.c
index 823d524c9a2d..040a806bc75e 100644
--- a/arch/nios2/lib/bootm.c
+++ b/arch/nios2/lib/bootm.c
@@ -16,8 +16,7 @@  DECLARE_GLOBAL_DATA_PTR;
 
 #define NIOS_MAGIC 0x534f494e /* enable command line and initrd passing */
 
-int do_bootm_linux(int flag, int argc, char *const argv[],
-		   struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	void (*kernel)(int, int, int, char *) = (void *)images->ep;
 	char *commandline = env_get("bootargs");
diff --git a/arch/powerpc/lib/bootm.c b/arch/powerpc/lib/bootm.c
index 910121ec9c85..4d248cb13b5f 100644
--- a/arch/powerpc/lib/bootm.c
+++ b/arch/powerpc/lib/bootm.c
@@ -223,8 +223,7 @@  static int boot_body_linux(struct bootm_headers *images)
 	return 0;
 }
 
-noinline int do_bootm_linux(int flag, int argc, char *const argv[],
-			    struct bootm_headers *images)
+noinline int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	int	ret;
 
diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c
index f9e1e18ae026..d90f26091530 100644
--- a/arch/riscv/lib/bootm.c
+++ b/arch/riscv/lib/bootm.c
@@ -105,8 +105,7 @@  static void boot_jump_linux(struct bootm_headers *images, int flag)
 	}
 }
 
-int do_bootm_linux(int flag, int argc, char *const argv[],
-		   struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	/* No need for those on RISC-V */
 	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
@@ -130,7 +129,7 @@  int do_bootm_linux(int flag, int argc, char *const argv[],
 int do_bootm_vxworks(int flag, int argc, char *const argv[],
 		     struct bootm_headers *images)
 {
-	return do_bootm_linux(flag, argc, argv, images);
+	return do_bootm_linux(flag, images);
 }
 
 static ulong get_sp(void)
diff --git a/arch/sandbox/lib/bootm.c b/arch/sandbox/lib/bootm.c
index dc8b8e46cb41..d2b514d3f0ca 100644
--- a/arch/sandbox/lib/bootm.c
+++ b/arch/sandbox/lib/bootm.c
@@ -64,7 +64,7 @@  static int boot_prep_linux(struct bootm_headers *images)
 	return 0;
 }
 
-int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	if (flag & BOOTM_STATE_OS_PREP)
 		return boot_prep_linux(images);
diff --git a/arch/sh/lib/bootm.c b/arch/sh/lib/bootm.c
index b205e5e3db1b..d0284582ae0e 100644
--- a/arch/sh/lib/bootm.c
+++ b/arch/sh/lib/bootm.c
@@ -39,8 +39,7 @@  static unsigned long sh_check_cmd_arg(char *cmdline, char *key, int base)
 	return val;
 }
 
-int do_bootm_linux(int flag, int argc, char *const argv[],
-		   struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	/* Linux kernel load address */
 	void (*kernel) (void) = (void (*)(void))images->ep;
diff --git a/arch/x86/lib/bootm.c b/arch/x86/lib/bootm.c
index 3196f9ddc2c8..34d5c585a55a 100644
--- a/arch/x86/lib/bootm.c
+++ b/arch/x86/lib/bootm.c
@@ -237,8 +237,7 @@  static int boot_jump_linux(struct bootm_headers *images)
 				 images->os.arch == IH_ARCH_X86_64);
 }
 
-int do_bootm_linux(int flag, int argc, char *const argv[],
-		   struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	/* No need for those on x86 */
 	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
diff --git a/arch/xtensa/lib/bootm.c b/arch/xtensa/lib/bootm.c
index fee339281502..5e8e14021ab3 100644
--- a/arch/xtensa/lib/bootm.c
+++ b/arch/xtensa/lib/bootm.c
@@ -134,7 +134,7 @@  static struct bp_tag *setup_fdt_tag(struct bp_tag *params, void *fdt_start)
  * Boot Linux.
  */
 
-int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
+int do_bootm_linux(int flag, struct bootm_headers *images)
 {
 	struct bp_tag *params, *params_start;
 	ulong initrd_start, initrd_end;
diff --git a/boot/bootm.c b/boot/bootm.c
index 301cfded05cb..c343f313e80a 100644
--- a/boot/bootm.c
+++ b/boot/bootm.c
@@ -1099,9 +1099,9 @@  int do_bootm_states(struct cmd_tbl *cmdtp, int flag, int argc,
 
 	/* Call various other states that are not generally used */
 	if (!ret && (states & BOOTM_STATE_OS_CMDLINE))
-		ret = boot_fn(BOOTM_STATE_OS_CMDLINE, argc, argv, images);
+		ret = boot_fn(BOOTM_STATE_OS_CMDLINE, images);
 	if (!ret && (states & BOOTM_STATE_OS_BD_T))
-		ret = boot_fn(BOOTM_STATE_OS_BD_T, argc, argv, images);
+		ret = boot_fn(BOOTM_STATE_OS_BD_T, images);
 	if (!ret && (states & BOOTM_STATE_OS_PREP)) {
 		ret = bootm_process_cmdline_env(images->os.os == IH_OS_LINUX);
 		if (ret) {
@@ -1109,7 +1109,7 @@  int do_bootm_states(struct cmd_tbl *cmdtp, int flag, int argc,
 			ret = CMD_RET_FAILURE;
 			goto err;
 		}
-		ret = boot_fn(BOOTM_STATE_OS_PREP, argc, argv, images);
+		ret = boot_fn(BOOTM_STATE_OS_PREP, images);
 	}
 
 #ifdef CONFIG_TRACE
diff --git a/boot/bootm_os.c b/boot/bootm_os.c
index 598671e576c6..df1aab4b3e4d 100644
--- a/boot/bootm_os.c
+++ b/boot/bootm_os.c
@@ -23,8 +23,7 @@ 
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static int do_bootm_standalone(int flag, int argc, char *const argv[],
-			       struct bootm_headers *images)
+static int do_bootm_standalone(int flag, struct bootm_headers *images)
 {
 	int (*appl)(int, char *const[]);
 
@@ -33,7 +32,7 @@  static int do_bootm_standalone(int flag, int argc, char *const argv[],
 		return 0;
 	}
 	appl = (int (*)(int, char * const []))images->ep;
-	appl(argc, argv);
+	appl(0, NULL);
 	return 0;
 }
 
@@ -50,8 +49,7 @@  static void __maybe_unused fit_unsupported_reset(const char *msg)
 }
 
 #ifdef CONFIG_BOOTM_NETBSD
-static int do_bootm_netbsd(int flag, int argc, char *const argv[],
-			   struct bootm_headers *images)
+static int do_bootm_netbsd(int flag, struct bootm_headers *images)
 {
 	void (*loader)(struct bd_info *bd, struct legacy_img_hdr *hdr,
 		       char *console, char *cmdline);
@@ -113,8 +111,7 @@  static int do_bootm_netbsd(int flag, int argc, char *const argv[],
 #endif /* CONFIG_BOOTM_NETBSD*/
 
 #ifdef CONFIG_BOOTM_RTEMS
-static int do_bootm_rtems(int flag, int argc, char *const argv[],
-			  struct bootm_headers *images)
+static int do_bootm_rtems(int flag, struct bootm_headers *images)
 {
 	void (*entry_point)(struct bd_info *);
 
@@ -146,8 +143,7 @@  static int do_bootm_rtems(int flag, int argc, char *const argv[],
 #endif /* CONFIG_BOOTM_RTEMS */
 
 #if defined(CONFIG_BOOTM_OSE)
-static int do_bootm_ose(int flag, int argc, char *const argv[],
-			struct bootm_headers *images)
+static int do_bootm_ose(int flag, struct bootm_headers *images)
 {
 	void (*entry_point)(void);
 
@@ -179,8 +175,7 @@  static int do_bootm_ose(int flag, int argc, char *const argv[],
 #endif /* CONFIG_BOOTM_OSE */
 
 #if defined(CONFIG_BOOTM_PLAN9)
-static int do_bootm_plan9(int flag, int argc, char *const argv[],
-			  struct bootm_headers *images)
+static int do_bootm_plan9(int flag, struct bootm_headers *images)
 {
 	void (*entry_point)(void);
 	char *s;
@@ -283,8 +278,7 @@  static void do_bootvx_fdt(struct bootm_headers *images)
 	puts("## vxWorks terminated\n");
 }
 
-static int do_bootm_vxworks_legacy(int flag, int argc, char *const argv[],
-				   struct bootm_headers *images)
+static int do_bootm_vxworks_legacy(int flag, struct bootm_headers *images)
 {
 	if (flag != BOOTM_STATE_OS_GO)
 		return 0;
@@ -294,8 +288,7 @@  static int do_bootm_vxworks_legacy(int flag, int argc, char *const argv[],
 	return 1;
 }
 
-int do_bootm_vxworks(int flag, int argc, char *const argv[],
-		     struct bootm_headers *images)
+int do_bootm_vxworks(int flag, struct bootm_headers *images)
 {
 	char *bootargs;
 	int pos;
@@ -320,18 +313,17 @@  int do_bootm_vxworks(int flag, int argc, char *const argv[],
 	if (std_dtb) {
 		if (flag & BOOTM_STATE_OS_PREP)
 			printf("   Using standard DTB\n");
-		return do_bootm_linux(flag, argc, argv, images);
+		return do_bootm_linux(flag, images);
 	} else {
 		if (flag & BOOTM_STATE_OS_PREP)
 			printf("   !!! WARNING !!! Using legacy DTB\n");
-		return do_bootm_vxworks_legacy(flag, argc, argv, images);
+		return do_bootm_vxworks_legacy(flag, images);
 	}
 }
 #endif
 
 #if defined(CONFIG_CMD_ELF)
-static int do_bootm_qnxelf(int flag, int argc, char *const argv[],
-			   struct bootm_headers *images)
+static int do_bootm_qnxelf(int flag, struct bootm_headers *images)
 {
 	char *local_args[3];
 	char str[16];
@@ -369,8 +361,7 @@  static int do_bootm_qnxelf(int flag, int argc, char *const argv[],
 #endif
 
 #ifdef CONFIG_INTEGRITY
-static int do_bootm_integrity(int flag, int argc, char *const argv[],
-			      struct bootm_headers *images)
+static int do_bootm_integrity(int flag, struct bootm_headers *images)
 {
 	void (*entry_point)(void);
 
@@ -402,8 +393,7 @@  static int do_bootm_integrity(int flag, int argc, char *const argv[],
 #endif
 
 #ifdef CONFIG_BOOTM_OPENRTOS
-static int do_bootm_openrtos(int flag, int argc, char *const argv[],
-			     struct bootm_headers *images)
+static int do_bootm_openrtos(int flag, struct bootm_headers *images)
 {
 	void (*entry_point)(void);
 
@@ -428,8 +418,7 @@  static int do_bootm_openrtos(int flag, int argc, char *const argv[],
 #endif
 
 #ifdef CONFIG_BOOTM_OPTEE
-static int do_bootm_tee(int flag, int argc, char *const argv[],
-			struct bootm_headers *images)
+static int do_bootm_tee(int flag, struct bootm_headers *images)
 {
 	int ret;
 
@@ -441,13 +430,12 @@  static int do_bootm_tee(int flag, int argc, char *const argv[],
 		return ret;
 
 	/* From here we can run the regular linux boot path */
-	return do_bootm_linux(flag, argc, argv, images);
+	return do_bootm_linux(flag, images);
 }
 #endif
 
 #ifdef CONFIG_BOOTM_EFI
-static int do_bootm_efi(int flag, int argc, char *const argv[],
-			struct bootm_headers *images)
+static int do_bootm_efi(int flag, struct bootm_headers *images)
 {
 	efi_status_t efi_ret;
 	void *image_buf;
@@ -544,7 +532,7 @@  int boot_selected_os(int argc, char *const argv[], int state,
 {
 	arch_preboot_os();
 	board_preboot_os();
-	boot_fn(state, argc, argv, images);
+	boot_fn(state, images);
 
 	/* Stand-alone may return when 'autostart' is 'no' */
 	if (images->os.type == IH_TYPE_STANDALONE ||
diff --git a/include/bootm.h b/include/bootm.h
index f5229ea90b33..0e4662485006 100644
--- a/include/bootm.h
+++ b/include/bootm.h
@@ -25,16 +25,11 @@  struct cmd_tbl;
  *  - disabled interrupts.
  *
  * @flag: Flags indicating what to do (BOOTM_STATE_...)
- * @argc: Number of arguments. Note that the arguments are shifted down
- *	 so that 0 is the first argument not processed by U-Boot, and
- *	 argc is adjusted accordingly. This avoids confusion as to how
- *	 many arguments are available for the OS.
  * @images: Pointers to os/initrd/fdt
  * Return: 1 on error. On success the OS boots so this function does
  * not return.
  */
-typedef int boot_os_fn(int flag, int argc, char *const argv[],
-			struct bootm_headers *images);
+typedef int boot_os_fn(int flag, struct bootm_headers *images);
 
 extern boot_os_fn do_bootm_linux;
 extern boot_os_fn do_bootm_vxworks;