Re: [PATCH v2 3/7] powerpc: convert config files to generic cmdline

From: Christophe Leroy
Date: Wed Mar 24 2021 - 13:02:34 EST




Le 09/03/2021 à 22:29, Daniel Walker a écrit :
On Tue, Mar 09, 2021 at 08:47:09AM +0100, Christophe Leroy wrote:


Le 09/03/2021 à 01:02, Daniel Walker a écrit :
This is a scripted mass convert of the config files to use
the new generic cmdline. There is a bit of a trim effect here.
It would seems that some of the config haven't been trimmed in
a while.

If you do that in a separate patch, you loose bisectability.

I think it would have been better to do things in a different way, more or less like I did in my series:
1/ Provide GENERIC cmdline at the same functionnality level as what is
spread in the different architectures
2/ Convert architectures to the generic with least churn.
3/ Add new features to the generic

You have to have the churn eventually, no matter how you do it. The only way you
don't have churn is if you never upgrade the feature set.



The bash script used to convert is as follows,

if [[ -z "$1" || -z "$2" ]]; then
echo "Two arguments are needed."
exit 1
fi
mkdir $1
cp $2 $1/.config
sed -i 's/CONFIG_CMDLINE=/CONFIG_CMDLINE_BOOL=y\nCONFIG_CMDLINE_PREPEND=/g' $1/.config

This is not correct.

By default, on powerpc the provided command line is used only if the bootloader doesn't provide one.

Otherwise:
- the builtin command line is appended to the one provided by the bootloader
if CONFIG_CMDLINE_EXTEND is selected
- the builtin command line replaces to the one provided by the bootloader if
CONFIG_CMDLINE_FORCE is selected

I think my changes maintain most of this due to the override of
CONFIG_CMDLINE_PREPEND. This is an upgrade and the inflexibility in powerpc is
an example of why these changes were created in the first place.

"inflexibility in powerpc" : Can you elaborate ?


For example , say the default command line is "root=/dev/issblk0" from iss476
platform. And the bootloader adds "root=/dev/sda1"

The result is <prepend><bootloader><append>.


I'm still having hard time understanding the benefit of having both <prepend> and <append>.
Could you please provide a complete exemple from real life, ie what exactly the problem is and what it solves ?


Then you have,

root=/dev/issblk0 root=/dev/sda1

and the bootloader has precedent over the default command line. So root= in the
above cases is defined by the bootloader.

The only issue would be if a person wants to override the default command line
with an unrelated bootloader command line. I don't know how many people do this,
but I doubt it's many. Can you think of any use cases like this?

I would imagine there are many more people who have to entirely duplicate the
default command line in the boot loader when they really just want to change a
single part of it like the root= device or console device or speed.

Daniel


Christophe