[PATCH] arm64: Make CONFIG_CMDLINE behavior configurable
Dave Martin
Dave.Martin at arm.com
Tue Sep 29 06:41:20 EDT 2020
On Tue, Sep 29, 2020 at 10:46:09AM +0200, Matija Glavinic Pecotic wrote:
> arm64 has no means to define behavior if CONFIG_CMDLINE is set as e.g.
> arm32 has. Parts of the kernel will ignore CMDLINE if behavior on how
> to treat is not specified, e.g.:
>
> drivers/of/fdt.c:early_init_dt_scan_chosen:
> #ifdef CONFIG_CMDLINE
> #if defined(CONFIG_CMDLINE_EXTEND)
> strlcat(data, " ", COMMAND_LINE_SIZE);
> strlcat(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
> #elif defined(CONFIG_CMDLINE_FORCE)
> strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
> #else
> /* No arguments from boot loader, use kernel's cmdl*/
> if (!((char *)data)[0])
> strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
> #endif
> #endif /* CONFIG_CMDLINE */
>
> Sync behavior of arm64 with arm32 (and other platforms).
>
> Signed-off-by: Matija Glavinic Pecotic <matija.glavinic-pecotic.ext at nokia.com>
> ---
> arch/arm64/Kconfig | 20 +++++++++++++++++++-
> 1 file changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 6d232837cbee..0a03db76aa5a 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1824,14 +1824,32 @@ config CMDLINE
> entering them here. As a minimum, you should specify the the
> root device (e.g. root=/dev/nfs).
>
> +choice
> + prompt "Kernel command line type" if CMDLINE != ""
> + default CMDLINE_FROM_BOOTLOADER
> + depends on ATAGS
> +
> +config CMDLINE_FROM_BOOTLOADER
> + bool "Use bootloader kernel arguments if available"
> + help
> + Uses the command-line options passed by the boot loader. If
> + the boot loader doesn't provide any, the default kernel command
> + string provided in CMDLINE will be used.
> +
> +config CMDLINE_EXTEND
> + bool "Extend bootloader kernel arguments"
> + help
> + The command-line arguments provided by the boot loader will be
> + appended to the default kernel command string.
> +
> config CMDLINE_FORCE
> bool "Always use the default kernel command string"
> - depends on CMDLINE != ""
> help
> Always use the default kernel command string, even if the boot
> loader passes other arguments to the kernel.
> This is useful if you cannot or don't want to change the
> command-line options your boot loader passes to the kernel.
> +endchoice
If multiple arches do the same thing, can we factor this out into a
common Kconfig file somehow?
Cheers
---Dave
More information about the linux-arm-kernel
mailing list