Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed47e153 authored by Rabin Vincent's avatar Rabin Vincent Committed by Ralf Baechle
Browse files

MIPS: Add support for extending builtin cmdline



Allow the builtin command line to be extended by what the bootloader
passes in.  For example, the bootloader can pass specific arguments
depending on the boot mode, and these should override the defaults in
the builtin cmdline.

The default MIPS_CMDLINE_FROM_BOOTLOADER option prepends the
bootloader's cmdline to the builtin cmdline so is not suitable for this
purpose.

Signed-off-by: default avatarRabin Vincent <rabinv@axis.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/13181/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent e54ad8c5
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -2930,6 +2930,10 @@ choice


	config MIPS_CMDLINE_FROM_BOOTLOADER
	config MIPS_CMDLINE_FROM_BOOTLOADER
		bool "Bootloader kernel arguments if available"
		bool "Bootloader kernel arguments if available"

	config MIPS_CMDLINE_BUILTIN_EXTEND
		depends on CMDLINE_BOOL
		bool "Extend builtin kernel arguments with bootloader arguments"
endchoice
endchoice


endmenu
endmenu
+8 −0
Original line number Original line Diff line number Diff line
@@ -640,6 +640,8 @@ static void __init request_crashkernel(struct resource *res)
#define USE_PROM_CMDLINE	IS_ENABLED(CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER)
#define USE_PROM_CMDLINE	IS_ENABLED(CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER)
#define USE_DTB_CMDLINE		IS_ENABLED(CONFIG_MIPS_CMDLINE_FROM_DTB)
#define USE_DTB_CMDLINE		IS_ENABLED(CONFIG_MIPS_CMDLINE_FROM_DTB)
#define EXTEND_WITH_PROM	IS_ENABLED(CONFIG_MIPS_CMDLINE_DTB_EXTEND)
#define EXTEND_WITH_PROM	IS_ENABLED(CONFIG_MIPS_CMDLINE_DTB_EXTEND)
#define BUILTIN_EXTEND_WITH_PROM	\
	IS_ENABLED(CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND)


static void __init arch_mem_init(char **cmdline_p)
static void __init arch_mem_init(char **cmdline_p)
{
{
@@ -684,6 +686,12 @@ static void __init arch_mem_init(char **cmdline_p)
			strlcat(boot_command_line, " ", COMMAND_LINE_SIZE);
			strlcat(boot_command_line, " ", COMMAND_LINE_SIZE);
		strlcat(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
		strlcat(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
	}
	}

	if (BUILTIN_EXTEND_WITH_PROM && arcs_cmdline[0]) {
		if (boot_command_line[0])
			strlcat(boot_command_line, " ", COMMAND_LINE_SIZE);
		strlcat(boot_command_line, arcs_cmdline, COMMAND_LINE_SIZE);
	}
#endif
#endif
#endif
#endif
	strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
	strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);