--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -935,6 +935,9 @@ int __init early_init_dt_scan_chosen(uns
 	p = of_get_flat_dt_prop(node, "bootargs", &l);
 	if (p != NULL && l > 0)
 		strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
+	p = of_get_flat_dt_prop(node, "bootargs-append", &l);
+	if (p != NULL && l > 0)
+		strlcat(data, p, min_t(int, strlen(data) + (int)l, COMMAND_LINE_SIZE));
 
 	/*
 	 * CONFIG_CMDLINE is meant to be a default in case nothing else
--- a/arch/mips/kernel/prom.c
+++ b/arch/mips/kernel/prom.c
@@ -50,6 +50,9 @@ void * __init early_init_dt_alloc_memory
 
 void __init __dt_setup_arch(void *bph)
 {
+	if (boot_command_line[0] == '\0')
+		strcpy(boot_command_line, arcs_cmdline);
+
 	if (!early_init_dt_scan(bph))
 		return;