[PATCH 11/11] bootm: Support string substitution in bootargs

Wolfgang Denk wd at denx.de
Wed Oct 21 09:16:06 CEST 2020


Dear Simon,

In message <CAPnjgZ1SfwRa_LXh0zu3Oug=GLEUQx5MdCCvqW90-FV5hvX9uw at mail.gmail.com> you wrote:
>
> > Yes, it takes one additional step, but it's simple and does not need
> > extra code.
>
> It is actually not simple, for three reasons:
>
> 1. With zboot the args come from the kernel setup.bin and must be modified

Don't use zboot, then.  In my opinion, zboot is crap and should
never have been added, but there were so many requests for it.
Nevertheless, the use of crippleware is a sin that carries with it
its own punishment.

Don't do it, then.

Or, if you feel there is some value in zboot that should be
conserved, fix it to work like the rest of U-Boot.

> 2. With Chrome OS the args come from the kernel partition and must be
> augmented / substituted

OK.  But then why can we not still use the standard variable
substitution mechanism we already have?

> 3. The above command cannot be in the same env var as anything else,
> since substitution breaks in that case

Sorry, I don't understand what you mean heare.  What is "the same
env var" versus "anything else"?  Maybe you can give a specific example?


> So you end up with a really complicated mess of environment variables
> and scripts that is barely manageable. I want it to be simple.

Again, I can't follow you.  Why must there be a mess?

> See here for example (this only deals with 3 above, not 1 and 2, which
> would still need custom code without my series)
>
> https://chromium.googlesource.com/chromiumos/third_party/u-boot/+/refs/heads/chromeos-v2013.06/include/configs/chromeos.h#204

Sorry - all I see there is some complex settings if these make sense
I can't tell) - but how would things be better if you could - for
example - use "%U" instead of "${uuid}" as you suggested?

Also, is your approach not necessarily limited? You can now think of
a handful of variables you may want to pass, say root device, root
partition, uuid, maybe MAC address etc.  But the next user will need
kernel args that you did not think of - so how do we proceed?  Add
all features anybody needs to that new code?  That certainly does
not scale.  Or mix "%FOO" and "${foo}" style arguments?  That's even
worse.  I really fail to see the benefits, I see only ugliness and
problems.


Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Good manners are the settled  medium  of  social,  as  specie  is  of
commercial, life; returns are equally expected for both.
           - Lord Chesterfield _Letters to his Son_, 25 December 1753


More information about the U-Boot mailing list