123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- From f15d27f9c90ede4b16eb37f9ae573ef81c2b6996 Mon Sep 17 00:00:00 2001
- From: David Bauer <[email protected]>
- 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 <[email protected]>
- ---
- arch/mips/kernel/setup.c | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
- --- a/arch/mips/kernel/setup.c
- +++ b/arch/mips/kernel/setup.c
- @@ -564,8 +564,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;
-
- /*
- @@ -579,6 +599,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
|