U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Mattijs Korpershoek <mkorpershoek@kernel.org>
To: george chan <gchan9527@gmail.com>, Simon Glass <sjg@chromium.org>
Cc: George Chan via B4 Relay <devnull+gchan9527.gmail.com@kernel.org>,
	Tom Rini <trini@konsulko.com>,
	Casey Connolly <casey.connolly@linaro.org>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Sumit Garg <sumit.garg@kernel.org>,
	Lukasz Majewski <lukma@denx.de>, Marek Vasut <marex@denx.de>,
	u-boot@lists.denx.de, u-boot-qcom@groups.io
Subject: Re: [PATCH v4 3/6] bootm: Append bootargs value when bootmeth_android provide cmdline
Date: Fri, 18 Jul 2025 14:03:17 +0200	[thread overview]
Message-ID: <871pqdaepm.fsf@kernel.org> (raw)
In-Reply-To: <CADgMGSuN249mVLKja2r1cpN4Xn80CAkuv2F5rSizo3C_qaRpEA@mail.gmail.com>

Hi George,

On Wed, Jul 16, 2025 at 19:55, george chan <gchan9527@gmail.com> wrote:

> Hi Mattijs,
>
> Thx for reply.
>
> 在 2025年7月16日週三 17:05,Mattijs Korpershoek <mkorpershoek@kernel.org> 寫道:
>
>> Hi George,
>>
>> Thank you for the patch.
>>
> ...
>
>>
>> > -     ret = env_set("bootargs", cmdline);
>> > +     ret = android_image_modify_bootargs_env(cmdline, NULL);
>>
>> I don't think it can be done this way. bootm_boot_start() is used in the
>> ChromeOS bootmethod as well (boot/bootmeth_cros.c)
>>
>
> I got your point. I have 3 ideas come out.
>
> (1) The logic purposely empty the env bootargs, either developer don't use
> env bootargs or those use cases touched bootargs in some early step. And
> then wanna disregard previous u-boot bootmeth operation, and empty bootargs
> for that ongoing bootmeth stage...well that's not congruent behavior; I
> have a gut feeling this is a bug or band-aid anyway, it closed the door for

Simon, is it *intentional* that override the bootargs variable in
commit daffb0be2c83 ("bootstd: cros: Add ARM support") ?

Shouldn't we get the bootargs from the environment, and append cmdline
to the existing bootargs instead ?


> people (potentially abootimg) inject needed boot param between bootmeth
> stage. Perhaps, either clean up bootargs before bootmeth load stage, or add
> kconfig to check and enable this logic, a better representation.
>
> (2) One more thing, the vendor_boot cmdline is not handle neither in
> original logic nor in url from you provided. So I can say the url one is
> not capable for extended with Android boot img version > 2 since
> vendor_boot cmdline not handled.

What do you mean by the vendor_boot cmdline is not handled?

When parsing the vendor_boot image, we go through
android_vendor_boot_image_v3_v4_parse_hdr()

That function copies the vendor_boot cmdline with:

	data->kcmdline_extra = hdr->cmdline;

(to the struct andr_image_data).

Later on, in android_image_get_kernel(), this gets copied to the
bootargs:

	if (img_data.kcmdline_extra && *img_data.kcmdline_extra) {
		if (*newbootargs) /* If there is something in newbootargs, a space is needed */
			strcat(newbootargs, " ");
		strcat(newbootargs, img_data.kcmdline_extra);
	}

	env_set("bootargs", newbootargs);

>
> (3) I don't think it is very much different between your mentioned url with
> my patch. There is nothing advanced, but just existing code logic reuse and
> that logic handled vendor_cmdline in other path. I prefer code logic reuse.

The difference is that in the patch I've linked is that we only change
Android specific boot behaviour. So less risk to impact ChromeOS.

>
> And I believe above are not the important thing....
>
>>
>> Changing this would potentially break ChromeOS boot behaviour so I'd
>> prefer to find another solution.
>>
>> I know that TI has a downstream patch that changes bootmeth_android.c
>> instead:
>>
>>
>> https://git.ti.com/cgit/ti-u-boot/ti-u-boot/commit/?h=ti-u-boot-2024.04-next&id=9d802d798ac143e06ffe545606aa657a6c32cc63
>
>
> ...
>
>
>> Would that work for you?
>>
>>
> Well, the one from url also fine with me.
>
> The important thing is here. So as to ease the change with "minimal impact"
> gets in. I can add one extra check to maintain original behavior in case
> people have concern of breakage. Code example as below:
>
> + If (IS_ENABLED(CONFIG_ANDROID_BOOT_IMAGE_PREPEND_ENV_BOOTARGS))
> +   ret = android_image_modify_bootargs_env(cmdline, NULL);
> + else
>       ret = env_set("bootargs", cmdline);
>
> This logic eliminated the concern, but it also limited those potential use
> cases for Android boot header version > 2, unless the newly introduced
> CONFIG_ANDROID_BOOT_IMAGE_PREPEND_ENV_BOOTARGS is defined.

I'm not sure about why this is better, as from what I understand we
handle vendor_boot cmdline properly already.

Can you provide me with a test case or some example commands that show
that vendor_boot cmdline is not handled properly?

>
> Or this one with good extendible.
> + /* Clean up bootargs purposely */
> + if (IS_ENABLED(SOME_FLAG))
> +    env_set("bootargs", "");
> + ret = android_image_modify_bootargs_env(cmdline, NULL);
>
> Either way. I prefer first one and can blindly apply without afford. I
> leave the idea above to people more concern with it. Please let me know
> your decision, I can provide one more revision later.

I'm sorry there is so much back and forth on this series. I hope we can
come to a common agreement and get something merged.

Thanks
Mattijs

>
> Regards,
> George
>
>>

  reply	other threads:[~2025-07-18 12:03 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-30  7:56 [PATCH v4 0/6] A series of patch for enable sc7180 android boot George Chan via B4 Relay
2025-06-30  7:56 ` [PATCH v4 1/6] image-android: Prepend/postpend default bootargs value with given bootcmd George Chan via B4 Relay
2025-06-30  7:56 ` [PATCH v4 2/6] boot/image-android.c: Split android_image_get_kernel into two functions George Chan via B4 Relay
2025-06-30  7:56 ` [PATCH v4 3/6] bootm: Append bootargs value when bootmeth_android provide cmdline George Chan via B4 Relay
2025-07-16  9:05   ` Mattijs Korpershoek
2025-07-16 11:55     ` george chan
2025-07-18 12:03       ` Mattijs Korpershoek [this message]
2025-07-18 17:17         ` george chan
2025-09-30  7:34           ` Mattijs Korpershoek
2025-09-30  7:29         ` Mattijs Korpershoek
2025-10-01 16:22           ` Simon Glass
2025-10-04 16:35             ` george chan
2025-10-05 15:41               ` george chan
2025-10-06 20:38                 ` Simon Glass
2025-10-07 16:03                   ` george chan
2025-10-08 12:51                     ` Simon Glass
2025-10-09 12:46                     ` Mattijs Korpershoek
2025-10-09 15:26                       ` george chan
2025-10-20 16:49                         ` george chan
2025-06-30  7:56 ` [PATCH v4 4/6] boot: bootmeth_android: Conditionally dependent on abootimg George Chan via B4 Relay
2026-01-14 15:24   ` Casey Connolly
2026-01-15 18:32     ` george chan
2025-06-30  7:56 ` [PATCH v4 5/6] iommu: qcom-smmu: Introduce sc7180 compatible string George Chan via B4 Relay
2025-06-30  7:56 ` [PATCH v4 6/6] usb: gadget: Introduce usb gadget vendor/product default id for ARCH_QCOM George Chan via B4 Relay
2025-08-13 13:39 ` [PATCH v4 0/6] A series of patch for enable sc7180 android boot Casey Connolly
2025-08-13 14:24   ` george chan

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=871pqdaepm.fsf@kernel.org \
    --to=mkorpershoek@kernel.org \
    --cc=casey.connolly@linaro.org \
    --cc=devnull+gchan9527.gmail.com@kernel.org \
    --cc=gchan9527@gmail.com \
    --cc=lukma@denx.de \
    --cc=marex@denx.de \
    --cc=neil.armstrong@linaro.org \
    --cc=sjg@chromium.org \
    --cc=sumit.garg@kernel.org \
    --cc=trini@konsulko.com \
    --cc=u-boot-qcom@groups.io \
    --cc=u-boot@lists.denx.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox