From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: Allow for kernel command line concatenation
Date: Thu, 7 Apr 2011 11:01:25 +0200 [thread overview]
Message-ID: <20110407090125.GH13963@pengutronix.de> (raw)
In-Reply-To: <1302164236-1516-1-git-send-email-oskar.andero@sonyericsson.com>
On Thu, Apr 07, 2011 at 10:17:16AM +0200, oskar.andero at sonyericsson.com wrote:
> From: Victor Boivie <victor.boivie@sonyericsson.com>
>
> This patch allows the provided CONFIG_CMDLINE to be concatenated
> with the one provided by the boot loader. This is useful to
> merge the static values defined in CONFIG_CMDLINE with the
> boot loader's (possibly) more dynamic values, such as startup
> reasons and more.
>
> Signed-off-by: Victor Boivie <victor.boivie@sonyericsson.com>
> Reviewed-by: Bjorn Andersson <bjorn.andersson@sonyericsson.com>
> Signed-off-by: Oskar Andero <oskar.andero@sonyericsson.com>
> ---
> arch/arm/Kconfig | 21 +++++++++++++++++++--
> arch/arm/kernel/setup.c | 9 ++++++++-
> 2 files changed, 27 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 5b9f78b..71b35e6 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1743,6 +1743,24 @@ config CMDLINE
> time by entering them here. As a minimum, you should specify the
> memory size and the root device (e.g., mem=64M root=/dev/nfs).
>
> +choice
> + prompt "Kernel command line type"
> + default CMDLINE_DEFAULT
I'm not sure this works, but maybe use:
choice
prompt "Kernel command line type" if CMDLINE != ""
default CMDLINE_DEFAULT
and then remove the explicit
depends on CMDLINE != ""
from the options. This might hide the choice from the user if there is
only a single option to choose.
Best regards
Uwe
> +
> +config CMDLINE_DEFAULT
> + 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.
"CMDLINE_DEFAULT" isn't a good name IMHO. It conflicts with
config CMDLINE
string "Default kernel command string"
Maybe better use CMDLINE_FROM_BOOTLOADER or similar?
> +
> +config CMDLINE_EXTEND
> + bool "Extend bootloader kernel arguments"
> + depends on CMDLINE != ""
> + help
> + The default kernel command string will be concatenated with the
> + arguments provided by the boot loader.
> +
> config CMDLINE_FORCE
> bool "Always use the default kernel command string"
> depends on CMDLINE != ""
> @@ -1751,8 +1769,7 @@ config CMDLINE_FORCE
> 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.
> -
> - If unsure, say N.
> +endchoice
>
> config XIP_KERNEL
> bool "Kernel Execute-In-Place from ROM"
> diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
> index 006c1e8..465bc7e 100644
> --- a/arch/arm/kernel/setup.c
> +++ b/arch/arm/kernel/setup.c
> @@ -673,7 +673,14 @@ __tagtable(ATAG_REVISION, parse_tag_revision);
> static int __init parse_tag_cmdline(const struct tag *tag)
> {
> #ifndef CONFIG_CMDLINE_FORCE
> - strlcpy(default_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE);
> +#ifdef CONFIG_CMDLINE_EXTEND
> + strlcat(default_command_line, " ", COMMAND_LINE_SIZE);
> + strlcat(default_command_line, tag->u.cmdline.cmdline,
> + COMMAND_LINE_SIZE);
> +#else
> + strlcpy(default_command_line, tag->u.cmdline.cmdline,
> + COMMAND_LINE_SIZE);
> +#endif
> #else
> pr_warning("Ignoring tag cmdline (using the default kernel command line)\n");
> #endif /* CONFIG_CMDLINE_FORCE */
> --
> 1.7.4.2
I would prefer
#ifdef CONFIG_CMDLINE_DEFAULT
strlcpy(default_command_line, tag->u.cmdline.cmdline,
COMMAND_LINE_SIZE);
#elif CONFIG_CMDLINE_EXTEND
...
#else /* CMDLINE_FORCE */
...
#endif
as it is easier to parse for a human.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: oskar.andero@sonyericsson.com
Cc: linux@arm.linux.org.uk, nicolas.pitre@linaro.org,
eric.y.miao@gmail.com, catalin.marinas@arm.com,
will.deacon@arm.com, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Victor Boivie <victor.boivie@sonyericsson.com>
Subject: Re: [PATCH] ARM: Allow for kernel command line concatenation
Date: Thu, 7 Apr 2011 11:01:25 +0200 [thread overview]
Message-ID: <20110407090125.GH13963@pengutronix.de> (raw)
In-Reply-To: <1302164236-1516-1-git-send-email-oskar.andero@sonyericsson.com>
On Thu, Apr 07, 2011 at 10:17:16AM +0200, oskar.andero@sonyericsson.com wrote:
> From: Victor Boivie <victor.boivie@sonyericsson.com>
>
> This patch allows the provided CONFIG_CMDLINE to be concatenated
> with the one provided by the boot loader. This is useful to
> merge the static values defined in CONFIG_CMDLINE with the
> boot loader's (possibly) more dynamic values, such as startup
> reasons and more.
>
> Signed-off-by: Victor Boivie <victor.boivie@sonyericsson.com>
> Reviewed-by: Bjorn Andersson <bjorn.andersson@sonyericsson.com>
> Signed-off-by: Oskar Andero <oskar.andero@sonyericsson.com>
> ---
> arch/arm/Kconfig | 21 +++++++++++++++++++--
> arch/arm/kernel/setup.c | 9 ++++++++-
> 2 files changed, 27 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 5b9f78b..71b35e6 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1743,6 +1743,24 @@ config CMDLINE
> time by entering them here. As a minimum, you should specify the
> memory size and the root device (e.g., mem=64M root=/dev/nfs).
>
> +choice
> + prompt "Kernel command line type"
> + default CMDLINE_DEFAULT
I'm not sure this works, but maybe use:
choice
prompt "Kernel command line type" if CMDLINE != ""
default CMDLINE_DEFAULT
and then remove the explicit
depends on CMDLINE != ""
from the options. This might hide the choice from the user if there is
only a single option to choose.
Best regards
Uwe
> +
> +config CMDLINE_DEFAULT
> + 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.
"CMDLINE_DEFAULT" isn't a good name IMHO. It conflicts with
config CMDLINE
string "Default kernel command string"
Maybe better use CMDLINE_FROM_BOOTLOADER or similar?
> +
> +config CMDLINE_EXTEND
> + bool "Extend bootloader kernel arguments"
> + depends on CMDLINE != ""
> + help
> + The default kernel command string will be concatenated with the
> + arguments provided by the boot loader.
> +
> config CMDLINE_FORCE
> bool "Always use the default kernel command string"
> depends on CMDLINE != ""
> @@ -1751,8 +1769,7 @@ config CMDLINE_FORCE
> 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.
> -
> - If unsure, say N.
> +endchoice
>
> config XIP_KERNEL
> bool "Kernel Execute-In-Place from ROM"
> diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
> index 006c1e8..465bc7e 100644
> --- a/arch/arm/kernel/setup.c
> +++ b/arch/arm/kernel/setup.c
> @@ -673,7 +673,14 @@ __tagtable(ATAG_REVISION, parse_tag_revision);
> static int __init parse_tag_cmdline(const struct tag *tag)
> {
> #ifndef CONFIG_CMDLINE_FORCE
> - strlcpy(default_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE);
> +#ifdef CONFIG_CMDLINE_EXTEND
> + strlcat(default_command_line, " ", COMMAND_LINE_SIZE);
> + strlcat(default_command_line, tag->u.cmdline.cmdline,
> + COMMAND_LINE_SIZE);
> +#else
> + strlcpy(default_command_line, tag->u.cmdline.cmdline,
> + COMMAND_LINE_SIZE);
> +#endif
> #else
> pr_warning("Ignoring tag cmdline (using the default kernel command line)\n");
> #endif /* CONFIG_CMDLINE_FORCE */
> --
> 1.7.4.2
I would prefer
#ifdef CONFIG_CMDLINE_DEFAULT
strlcpy(default_command_line, tag->u.cmdline.cmdline,
COMMAND_LINE_SIZE);
#elif CONFIG_CMDLINE_EXTEND
...
#else /* CMDLINE_FORCE */
...
#endif
as it is easier to parse for a human.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
next prev parent reply other threads:[~2011-04-07 9:01 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-07 8:17 [PATCH] ARM: Allow for kernel command line concatenation oskar.andero at sonyericsson.com
2011-04-07 8:17 ` oskar.andero
2011-04-07 9:01 ` Uwe Kleine-König [this message]
2011-04-07 9:01 ` Uwe Kleine-König
2011-04-07 10:35 ` Paul Bolle
2011-04-07 10:35 ` Paul Bolle
2011-04-07 10:58 ` Uwe Kleine-König
2011-04-07 10:58 ` Uwe Kleine-König
2011-04-07 11:38 ` Boivie, Victor
2011-04-07 11:38 ` Boivie, Victor
2011-04-07 13:18 ` Nick Bowler
2011-04-07 13:18 ` Nick Bowler
2011-04-07 13:22 ` Boivie, Victor
2011-04-07 13:22 ` Boivie, Victor
-- strict thread matches above, loose matches on Subject: below --
2011-04-07 11:47 oskar.andero at sonyericsson.com
2011-04-07 11:47 ` oskar.andero
2011-04-07 13:29 oskar.andero at sonyericsson.com
2011-04-07 13:29 ` oskar.andero
2011-04-07 18:50 ` Nicolas Pitre
2011-04-07 18:50 ` Nicolas Pitre
2011-04-07 19:15 ` Uwe Kleine-König
2011-04-07 19:15 ` Uwe Kleine-König
2011-04-08 9:36 oskar.andero at sonyericsson.com
2011-04-08 9:36 ` oskar.andero
2011-04-08 12:19 ` Andrea Adami
2011-05-04 15:03 ` oskar.andero at sonyericsson.com
2011-05-04 15:03 ` oskar.andero
2011-05-04 15:11 ` Uwe Kleine-König
2011-05-04 15:11 ` Uwe Kleine-König
2011-05-04 16:10 ` oskar.andero at sonyericsson.com
2011-05-04 16:10 ` oskar.andero
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110407090125.GH13963@pengutronix.de \
--to=u.kleine-koenig@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.