aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-03-27 21:26:31 +0200
committerFelix Fietkau <nbd@nbd.name>2022-03-27 21:36:40 +0200
commita3764ee29dd09394fa750c78160e300d86532561 (patch)
tree5698d325acdbd921f7fa4203149adf3b5fb87f39 /target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch
parentac11f36b337da29f422d16776cf36c98013dcc77 (diff)
downloadupstream-a3764ee29dd09394fa750c78160e300d86532561.tar.gz
upstream-a3764ee29dd09394fa750c78160e300d86532561.tar.bz2
upstream-a3764ee29dd09394fa750c78160e300d86532561.zip
ramips: add linux 5.15 support for mt7621
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch')
-rw-r--r--target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch b/target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch
new file mode 100644
index 0000000000..07635a9d86
--- /dev/null
+++ b/target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch
@@ -0,0 +1,63 @@
+From f15d27f9c90ede4b16eb37f9ae573ef81c2b6996 Mon Sep 17 00:00:00 2001
+From: David Bauer <mail@david-bauer.net>
+Date: Thu, 31 Dec 2020 18:49:12 +0100
+Subject: [PATCH] MIPS: add bootargs-override property
+
+Add support for the bootargs-override property to the chosen node
+similar to the one used on ipq806x or mpc85xx.
+
+This is necessary, as the U-Boot used on some boards, notably the
+Ubiquiti UniFi 6 Lite, overwrite the bootargs property of the chosen
+node leading to a kernel panic when loading OpenWrt.
+
+Signed-off-by: David Bauer <mail@david-bauer.net>
+---
+ arch/mips/kernel/setup.c | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+
+--- a/arch/mips/kernel/setup.c
++++ b/arch/mips/kernel/setup.c
+@@ -544,8 +544,28 @@ static int __init bootcmdline_scan_chose
+
+ #endif /* CONFIG_OF_EARLY_FLATTREE */
+
++static int __init bootcmdline_scan_chosen_override(unsigned long node, const char *uname,
++ int depth, void *data)
++{
++ bool *dt_bootargs = data;
++ const char *p;
++ int l;
++
++ if (depth != 1 || !data || strcmp(uname, "chosen") != 0)
++ return 0;
++
++ p = of_get_flat_dt_prop(node, "bootargs-override", &l);
++ if (p != NULL && l > 0) {
++ strlcpy(boot_command_line, p, COMMAND_LINE_SIZE);
++ *dt_bootargs = true;
++ }
++
++ return 1;
++}
++
+ static void __init bootcmdline_init(void)
+ {
++ bool dt_bootargs_override = false;
+ bool dt_bootargs = false;
+
+ /*
+@@ -559,6 +579,14 @@ static void __init bootcmdline_init(void
+ }
+
+ /*
++ * If bootargs-override in the chosen node is set, use this as the
++ * command line
++ */
++ of_scan_flat_dt(bootcmdline_scan_chosen_override, &dt_bootargs_override);
++ if (dt_bootargs_override)
++ return;
++
++ /*
+ * If the user specified a built-in command line &
+ * MIPS_CMDLINE_BUILTIN_EXTEND, then the built-in command line is
+ * prepended to arguments from the bootloader or DT so we'll copy them