[U-Boot] [PATCH v2 4/5] autoboot: fix a bunch of misconversion of CONFIG_BOOTDELAY
Hans de Goede
hdegoede at redhat.com
Sat Jun 11 16:38:47 CEST 2016
Hi,
On 11-06-16 14:43, Tom Rini wrote:
> On Sat, Jun 11, 2016 at 01:31:29PM +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 11-06-16 11:44, Masahiro Yamada wrote:
>>> Commit bb597c0eeb7e ("common: bootdelay: move CONFIG_BOOTDELAY into
>>> a Kconfig option") made a number of misconversion.
>>>
>>> [1] CONFIG_BOOTDELAY=-1 all gone
>>> [2] CONFIG_BOOTDELAY=1 all gone
>>> [3] CONFIG_BOOTDELAY=2 all gone
>>> [4] Conditionally defined CONFIG_BOOTDELAY all gone
>>>
>>> All of the misconverted boards now use the default value,
>>> CONFIG_BOOTDELAY=0, which came from the Kconfig entry.
>>>
>>> I am imagining some reasons for this.
>>>
>>> For [1], due to the bug of tools/scripts/define2mk.sed (now fixed),
>>> #define CONFIG_BOOTDELAY -1
>>> was converted to
>>> CONFIG_BOOTDELAY="-1"
>>> in the include/autoconf.mk, so the tools/moveconfig.py regarded it
>>> as a string type option, and failed to move it.
>>>
>>> For [2], as you see in the comment block in the define2mk.sed,
>>> #define CONFIG_BOOTDELAY 1
>>> is converted to
>>> CONFIG_BOOTDELAY=y
>>> in the include/autoconf.mk. This needs a special care because we do
>>> not know whether we are moving a bool option with value y or an
>>> integer option with value 1. A recently-sent patch fixes this issue.
>>>
>>> I do not understand the reason for [3].
>>>
>>> [4] is another case the current moveconfig cannot handle correctly.
>>> If the define is surrounded by #ifndef CONFIG_BOOTDELAY like follows,
>>> the default value from Kconfig entry beats the define in C header.
>>>
>>> #ifndef CONFIG_BOOTDELAY
>>> #define CONFIG_BOOTDELAY 3
>>> #endif
>>>
>>> Joe's patch can solve this issue.
>>>
>>> Anyway, I ran the newest moveconfig tool based on commit 3191d8408053
>>> (=immediately prior to the bad commit) to generate this patch.
>>>
>>> Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
>>> ---
>>>
>>> Changes in v2:
>>> - Fix case [4]
> [snip]
>>
>> No, just no NACK at least for all the sunxi boards.
>>
>> This madness where everytime we convert something to Kconfig
>> we end up bloating ALL the defconfigs needs to stop and it
>> needs to stop now.
>>
>> I'm 100% done with fixing up things everytime after someone
>> thinks this is a good idea.
>>
>> This is not a good idea, it is a REALLY REALLY bad idea.
>>
>> The defconfig files should contain board specific settings,
>> we had the same nonsense when some of the CONFIG_CMD_FOO
>> things were converted, and all of a sudden we had the
>> same 5 extra lines in every defconfig for every board
>> which used to use config_distro_bootcmd.h
>>
>> Apparently no one was smart enough to realize that if
>> we were moving stuff from a common config header to
>> Kconfig, we would need something like
>>
>> CONFIG_DISTRO_BOOTCMD in Kconfig which would then select
>> all CONFIG_CMD_FOO options which were moved, and then
>> board / soc Kconfig snippets could simply do:
>>
>> select CONFIG_DISTRO_BOOTCMD
>>
>> I've hacked around this for sunxi:
>>
>> config ARCH_SUNXI
>> bool "Support sunxi (Allwinner) SoCs"
>> select CMD_BOOTZ
>> select CMD_DHCP
>> select CMD_EXT2
>> select CMD_EXT4
>> select CMD_FAT
>> select CMD_FS_GENERIC
>> select CMD_GPIO
>> select CMD_MII
>> select CMD_MMC if MMC
>> select CMD_PING
>> select CMD_USB
>> ...
>>
>> But I'm sick and tired of this nonsense repeating over
>> and over again.
>
> OK. You make some good points. Can you please write the help text for
> DISTRO_DEFAULTS and DISTRO_BOOTCMD and do at least the initial selects
> for things that have been converted? That will help out a lot, thanks!
When I said DISTRO_BOOTCMD above I meant DISTRO_DEFAULTS, DISTRO_BOOTCMD
does not make sense / is not necessary for now.
I've prepated a patch adding DISTRO_DEFAULTS I will send it right after
this mail.
Regards,
Hans
More information about the U-Boot
mailing list