diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 393eb2133243..f61bfbaa4001 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -3157,6 +3157,24 @@ choice
 		  if you don't intend to always append a DTB.
 endchoice
 
+config MIPS_BOOTLOADER_CMDLINE_REQUIRE_COOKIE
+	bool "Ignore bootloader command-line unless cookie present"
+	default n
+
+config MIPS_BOOTLOADER_CMDLINE_COOKIE
+	string "Bootloader kernel argument cookie string"
+	depends on MIPS_BOOTLOADER_CMDLINE_REQUIRE_COOKIE
+	help
+	  Use bootloader command line if and only if it contains
+	  this string. Some bootloaders allow setting the command line
+	  for interactive boots but provide an incorrect (and
+	  unchangeable) default when booting unattended.
+
+	  This option can be combined with e.g. MIPS_CMDLINE_DTB_EXTEND
+	  or MIPS_CMDLINE_BUILTIN_EXTEND: it doesn't affect
+	  where else your command line comes from, just whether
+	  the bootloader-provided command line is used as part of it.
+
 choice
 	prompt "Kernel command line type" if !CMDLINE_OVERRIDE
 	default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index ef73ba1e0ec1..52a836c43630 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -72,6 +72,12 @@ static const char builtin_cmdline[] __initconst = CONFIG_CMDLINE;
 static const char builtin_cmdline[] __initconst = "";
 #endif
 
+#ifdef CONFIG_MIPS_BOOTLOADER_CMDLINE_REQUIRE_COOKIE
+static const char cmdline_cookie[] __initconst = CONFIG_MIPS_BOOTLOADER_CMDLINE_COOKIE;
+#else
+static const char cmdline_cookie[] __initconst = NULL;
+#endif
+
 /*
  * mips_io_port_base is the begin of the address space to which x86 style
  * I/O ports are mapped.
@@ -558,6 +564,16 @@ static void __init bootcmdline_init(void)
 		return;
 	}
 
+	/* If CMDLINE_REQUIRE_COOKIE is set to a string, we require that
+	 * string to be present in the bootloader command line, otherwise
+	 * we ignore it. This is to accommodate bootloaders that allow
+	 * the command line to be specified for interactive boots but
+	 * hardcode an incorrect command line for unattended boots */
+#ifdef CONFIG_MIPS_BOOTLOADER_CMDLINE_REQUIRE_COOKIE
+	if(strstr(arcs_cmdline, cmdline_cookie) == NULL) {
+	    arcs_cmdline[0] = '\0';
+	}
+#endif
 	/*
 	 * If the user specified a built-in command line &
 	 * MIPS_CMDLINE_BUILTIN_EXTEND, then the built-in command line is