[openwrt/openwrt] generic: 5.15: add missing CMDLINE_OVERRIDE patch

LEDE Commits lede-commits at lists.infradead.org
Tue Oct 25 02:49:04 PDT 2022


ansuel pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/ea63945b254ccd0560c46ff86766bd7a6772e809

commit ea63945b254ccd0560c46ff86766bd7a6772e809
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Mon Oct 24 23:08:06 2022 +0200

    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 at gmail.com>
---
 .../900-arm-add-cmdline-override.patch             | 37 ++++++++++++++++++++++
 1 file changed, 37 insertions(+)

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




More information about the lede-commits mailing list