aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorChristian Marangi <ansuelsmth@gmail.com>2022-10-24 23:08:06 +0200
committerChristian Marangi <ansuelsmth@gmail.com>2022-10-25 01:29:45 +0200
commitea63945b254ccd0560c46ff86766bd7a6772e809 (patch)
treec78e997d9b04bd5a21a0a9a5312114907143a66d /target
parent1c514f05ab49c799224b805c1894a967134add3d (diff)
downloadupstream-ea63945b254ccd0560c46ff86766bd7a6772e809.tar.gz
upstream-ea63945b254ccd0560c46ff86766bd7a6772e809.tar.bz2
upstream-ea63945b254ccd0560c46ff86766bd7a6772e809.zip
generic: 5.15: add missing CMDLINE_OVERRIDE patch
This patch was wrongly dropped with the assumption that it was moved to generic. This wasn't the case and caused the malfunction of the Asrock G10 router. Reintroduce it to fix Asrock G10 functionality. Fixes: 8cc2caed58e7 ("ipq806x: 5:15: add testing kernel version") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Diffstat (limited to 'target')
-rw-r--r--target/linux/ipq806x/patches-5.15/900-arm-add-cmdline-override.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/target/linux/ipq806x/patches-5.15/900-arm-add-cmdline-override.patch b/target/linux/ipq806x/patches-5.15/900-arm-add-cmdline-override.patch
new file mode 100644
index 0000000000..23cec10f44
--- /dev/null
+++ b/target/linux/ipq806x/patches-5.15/900-arm-add-cmdline-override.patch
@@ -0,0 +1,37 @@
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1740,6 +1740,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
+
+ endchoice
+
++config CMDLINE_OVERRIDE
++ bool "Use alternative cmdline from device tree"
++ help
++ Some bootloaders may have uneditable bootargs. While CMDLINE_FORCE can
++ be used, this is not a good option for kernels that are shared across
++ devices. This setting enables using "chosen/cmdline-override" as the
++ cmdline if it exists in the device tree.
++
+ config CMDLINE
+ string "Default kernel command string"
+ default ""
+--- a/drivers/of/fdt.c
++++ b/drivers/of/fdt.c
+@@ -1162,6 +1162,17 @@ int __init early_init_dt_scan_chosen(uns
+ if (p != NULL && l > 0)
+ strlcat(data, p, min_t(int, strlen(data) + (int)l, COMMAND_LINE_SIZE));
+
++ /* CONFIG_CMDLINE_OVERRIDE is used to fallback to a different
++ * device tree option of chosen/bootargs-override. This is
++ * helpful on boards where u-boot sets bootargs, and is unable
++ * to be modified.
++ */
++#ifdef CONFIG_CMDLINE_OVERRIDE
++ p = of_get_flat_dt_prop(node, "bootargs-override", &l);
++ if (p != NULL && l > 0)
++ strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
++#endif
++
+ /*
+ * CONFIG_CMDLINE is meant to be a default in case nothing else
+ * managed to set the command line, unless CONFIG_CMDLINE_FORCE