aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mpc85xx/patches-5.10/102-powerpc-add-cmdline-override.patch
diff options
context:
space:
mode:
authorDavid Bauer <mail@david-bauer.net>2021-02-16 22:05:13 +0100
committerDavid Bauer <mail@david-bauer.net>2021-02-20 01:26:00 +0100
commit5bd6d9377d625f6445caf75bee2ecb16fd45971d (patch)
tree81991aced2a4dd2dda8268ded8b63d73b8ae9737 /target/linux/mpc85xx/patches-5.10/102-powerpc-add-cmdline-override.patch
parent422b3e199316b9794e400ea1519505cb0609dfc3 (diff)
downloadupstream-5bd6d9377d625f6445caf75bee2ecb16fd45971d.tar.gz
upstream-5bd6d9377d625f6445caf75bee2ecb16fd45971d.tar.bz2
upstream-5bd6d9377d625f6445caf75bee2ecb16fd45971d.zip
mpc85xx-p1010: add Kernel 5.10 support
Tested on: Sophos RED 15W The TP-Link WL-WDR4900 needs to be disabled when 5.10 becomes the default kernel. When building with all kmods enabled, the resulting kernel image exceeds the maximum size the bootloader reads from the flash. For more information, see GitHub issue #1773 Signed-off-by: David Bauer <mail@david-bauer.net>
Diffstat (limited to 'target/linux/mpc85xx/patches-5.10/102-powerpc-add-cmdline-override.patch')
-rw-r--r--target/linux/mpc85xx/patches-5.10/102-powerpc-add-cmdline-override.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/target/linux/mpc85xx/patches-5.10/102-powerpc-add-cmdline-override.patch b/target/linux/mpc85xx/patches-5.10/102-powerpc-add-cmdline-override.patch
new file mode 100644
index 0000000000..924ce9307e
--- /dev/null
+++ b/target/linux/mpc85xx/patches-5.10/102-powerpc-add-cmdline-override.patch
@@ -0,0 +1,37 @@
+--- a/arch/powerpc/Kconfig
++++ b/arch/powerpc/Kconfig
+@@ -885,6 +885,14 @@ config CMDLINE_FORCE
+ This is useful if you cannot or don't want to change the
+ command-line options your boot loader passes to the kernel.
+
++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 EXTRA_TARGETS
+ string "Additional default image types"
+ help
+--- a/drivers/of/fdt.c
++++ b/drivers/of/fdt.c
+@@ -1060,6 +1060,17 @@ int __init early_init_dt_scan_chosen(uns
+ if (p != NULL && l > 0)
+ strlcpy(data, p, min(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