ramips: preliminary support for 4.14
[openwrt/staging/kaloz.git] / target / linux / ramips / patches-4.14 / 0100-prom_fixes.patch
diff --git a/target/linux/ramips/patches-4.14/0100-prom_fixes.patch b/target/linux/ramips/patches-4.14/0100-prom_fixes.patch
new file mode 100644 (file)
index 0000000..91ac3b2
--- /dev/null
@@ -0,0 +1,66 @@
+From 67b7bff0fd364c194e653f69baa623ba2141bd4c Mon Sep 17 00:00:00 2001
+From: John Crispin <blogic@openwrt.org>
+Date: Mon, 4 Aug 2014 18:46:02 +0200
+Subject: [PATCH 07/53] MIPS: ralink: copy the commandline from the devicetree
+
+Signed-off-by: John Crispin <blogic@openwrt.org>
+---
+ arch/mips/ralink/of.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/mips/ralink/of.c
++++ b/arch/mips/ralink/of.c
+@@ -3,7 +3,7 @@
+  * under the terms of the GNU General Public License version 2 as published
+  * by the Free Software Foundation.
+  *
+- * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ * Copyright (C) 2008-2014 Imre Kaloz <kaloz@openwrt.org>
+  * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
+  * Copyright (C) 2013 John Crispin <john@phrozen.org>
+  */
+@@ -66,6 +66,19 @@ static int __init early_init_dt_find_mem
+       return 0;
+ }
++static int chosen_dtb;
++
++static int __init early_init_dt_find_chosen(unsigned long node, const char *uname,
++                                   int depth, void *data)
++{
++      if (depth == 1 && !strcmp(uname, "chosen"))
++              chosen_dtb = 1;
++
++      return 0;
++}
++
++extern struct boot_param_header __image_dtb;
++
+ void __init plat_mem_setup(void)
+ {
+       void *dtb = NULL;
+@@ -82,7 +95,11 @@ void __init plat_mem_setup(void)
+       else if (__dtb_start != __dtb_end)
+               dtb = (void *)__dtb_start;
+-      __dt_setup_arch(dtb);
++      __dt_setup_arch(&__image_dtb);
++
++      of_scan_flat_dt(early_init_dt_find_chosen, NULL);
++      if (chosen_dtb)
++              strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
+       strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
+--- a/arch/mips/kernel/head.S
++++ b/arch/mips/kernel/head.S
+@@ -85,6 +85,9 @@ EXPORT(__image_cmdline)
+       .fill   0x400
+ #endif /* CONFIG_IMAGE_CMDLINE_HACK */
++      .ascii  "OWRTDTB:"
++      EXPORT(__image_dtb)
++      .fill   0x4000
+       __REF
+ NESTED(kernel_entry, 16, sp)                  # kernel entry point