mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 00:11:13 +00:00
ea63945b25
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: 8cc2caed58
("ipq806x: 5:15: add testing kernel version")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
--- 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
|