[PATCH] bootstd: android: add the bootargs env to the commandline
Mattijs Korpershoek
mkorpershoek at kernel.org
Fri Oct 31 16:18:11 CET 2025
Hi Guillaume,
Thank you for the patch.
On Fri, Oct 24, 2025 at 16:23, "Guillaume La Roque (TI.com)" <glaroque at baylibre.com> wrote:
> From: "Nicolas Belin (TI.com)" <nbelin at baylibre.com>
>
> When previously using script based bootflows, the U-Boot
> environment variable bootargs was used to customize the kernel
> commandline at boot time.
> In order to get the same behaviour, concatenate the bootflow
> commandline with the contents the bootargs environment variable.
>
> Signed-off-by: Nicolas Belin (TI.com) <nbelin at baylibre.com>
> Signed-off-by: Guillaume La Roque (TI.com) <glaroque at baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek at kernel.org>
> ---
> boot/bootmeth_android.c | 35 +++++++++++++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/boot/bootmeth_android.c b/boot/bootmeth_android.c
> index 8c2bde10e17..1374551dbeb 100644
> --- a/boot/bootmeth_android.c
> +++ b/boot/bootmeth_android.c
> @@ -512,6 +512,37 @@ static int run_avb_verification(struct bootflow *bflow)
> }
> #endif /* AVB_VERIFY */
>
> +static int append_bootargs_to_cmdline(struct bootflow *bflow)
> +{
> + char *bootargs;
> + int len = 0;
> +
> + /*
> + * Check any additionnal bootargs coming from U-Boot env. If any,
> + * merge them with the current cmdline
> + */
> + bootargs = env_get("bootargs");
> + if (bootargs) {
> + len += strlen(bootargs) + 1; /* Extra space character needed */
> + len += strlen(bflow->cmdline);
> +
> + char *newcmdline = malloc(len + 1); /* +1 for the '\0' */
> +
> + if (!newcmdline)
> + return log_msg_ret("newcmdline malloc", -ENOMEM);
> +
> + strcpy(newcmdline, bootargs);
> + strcat(newcmdline, " ");
> + strcat(newcmdline, bflow->cmdline);
> +
> + /* Free the previous cmdline and replace it */
> + free(bflow->cmdline);
> + bflow->cmdline = newcmdline;
> + }
> +
> + return 0;
> +}
> +
> static int boot_android_normal(struct bootflow *bflow)
> {
> struct blk_desc *desc = dev_get_uclass_plat(bflow->blk);
> @@ -546,6 +577,10 @@ static int boot_android_normal(struct bootflow *bflow)
> if (priv->slot)
> free(priv->slot);
>
> + ret = append_bootargs_to_cmdline(bflow);
> + if (ret < 0)
> + return log_msg_ret("bootargs append", ret);
> +
> ret = bootm_boot_start(loadaddr, bflow->cmdline);
>
> return log_msg_ret("boot", ret);
>
> ---
> base-commit: b10c055d4e1b5153a331a61ef82a5b01b5bb4c45
> change-id: 20251024-botargsappend-38a4371cb6dc
>
> Best regards,
> --
> Guillaume La Roque (TI.com) <glaroque at baylibre.com>
More information about the U-Boot
mailing list