[U-Boot] [PATCH v3 00/45] Kconfig: Move CONFIG_SPL_..._SUPPORT to Kconfig

Heiko Schocher hs at denx.de
Wed Sep 14 07:59:19 CEST 2016


Hello Simon,

Am 13.09.2016 um 15:08 schrieb Simon Glass:
> Hi Heiko,
>
> On 13 September 2016 at 00:02, Heiko Schocher <hs at denx.de> wrote:
>> Hello Simon,
>>
>>
>> Am 13.09.2016 um 07:18 schrieb Simon Glass:
>>>
>>> This series moves all the CONFIG_SPL_..._SUPPORT options to Kconfig and
>>> fixes up existing boards to continue to build.
>>>
>>> It also adds a few small but useful features to moveconfig.
>>>
>>> There is existing work going on in this area, so some of these patches may
>>> be superseded. It has taken me a while to get this building cleanly. But I
>>> have run out of time so want to get this out.
>>>
>>> As mentioned on a recent thread [1] there is some confusion about whether
>>> an
>>> option means enabling driver support or media support. Andrew's recent
>>> series seems like a good vehicle to tidy that up. But I hope this series
>>> will make it easier.
>>>
>>> NOTE: in the v2 series I have tried to use common things in Kconfig to
>>> reduce the diffs in the defconfig files. This has helped a fair bit. But
>>> it
>>> is very error-prone and time consuming. Also I have had to add some
>>> exceptions (disabling an option in specific board configs). Overall it was
>>> not a pleasant experience :-(
>>>
>>> There are a few strange features of this conversion. The main difficulty
>>> is
>>> that some PowerPC boards do things like this in their board config file:
>>>
>>> This means that TPL reuses the SPL options. We can't support this in
>>> Kconfig
>>> so I have added a small number of CONFIG_TPL_xxx_SUPPORT options to cope
>>> with this. This made the conversion more painful than it should have been.
>>>
>>> A related issue is boards using a common header file and setting options
>>> only
>>> for SPL:
>>>
>>> This is not noticed by moveconfig so we have to clean it up manually. Also
>>> there are a few incorrect things where Kconfig options are set with
>>> #define:
>>>
>>> Finally, many defconfig files are not ordered correctly, resulting in
>>> larger
>>> patches than we might like. It would be great to have a solution for this,
>>> perhaps with buildman providing a warning. But it might slow down
>>> development.
>>>
>>> The series is fully build-tested (for bisectability) and causes no
>>> failures
>>> for the boards that already pass. The following boards fail for me at
>>> present on mainline (which I have not yet looked at):
>>>
>>> 01: buildman
>>>     blackfin:  +   cm-bf527 bf609-ezkit bf537-stamp
>>>        sparc:  +   grsim grsim_leon2 gr_cpci_ax2000 gr_xc3s_1500 gr_ep2s60
>>>        nios2:  +   10m50 3c120
>>> microblaze:  +   microblaze-generic
>>>     openrisc:  +   openrisc-generic
>>>
>>> [1] https://patchwork.ozlabs.org/patch/661511/
>>>
>>> Changes in v3:
>>> - Move SPL_NET_VCI_STRING into the SPL Kconfig file also
>>> - Rebase on master
>>>
>>> Changes in v2:
>>> - Add some notes on this option to moveconfig.py
>>> - Improve the commit message and add one for resyncing with savedefconfig
>>> - Add some notes on this option to moveconfig.py
>>> - Add new patch to convert CONFIG_SPL_NET_VCI_STRING
>>> - Drop CONFIG_SPL_PINCTRL_SUPPORT
>>> - Lots of work to make use of common values across multiple boards
>>> - Added a patch to change 'spear' CONFIGs to upper case
>>>
>>> Simon Glass (45):
>>>     Correct defconfigs using savedefconfig
>>>     moveconfig: Add an option to skip prompts
>>>     moveconfig: Add an option to commit changes
>>>     Kconfig: Move SPL settings into their own file
>>>     arm: fsl: Adjust ordering of #ifndef CONFIG_SPL_BUILD
>>>     Drop CONFIG_SPL_RAM_SUPPORT
>>>     Use separate options for TPL support
>>>     Kconfig: spl: Add SPL support options to Kconfig
>>>     Kconfig: tpl: Add some TPL support options to Kconfig
>>>     Move existing use of CONFIG_SPL_DM to Kconfig
>>>     Move existing use of CONFIG_SPL_RSA to Kconfig
>>>     spear: Use upper case for CONFIG options
>>>     Convert CONFIG_SPL_CRYPTO_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_HASH_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_DMA_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_DRIVERS_MISC_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_ENV_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_ETH_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_EXT_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_FAT_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_GPIO_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_I2C_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_LIBCOMMON_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_LIBDISK_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_LIBGENERIC_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_MMC_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_MTD_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_MUSB_NEW_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_NAND_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_NET_VCI_STRING to Kconfig
>>>     Convert CONFIG_SPL_NET_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_NOR_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_ONENAND_SUPPORT to Kconfig
>>>     Remove CONFIG_SPL_PINCTRL_SUPPORT
>>>     Convert CONFIG_SPL_POWER_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_SATA_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_SERIAL_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_SPI_FLASH_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_SPI_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_USBETH_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_USB_HOST_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_USB_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_WATCHDOG_SUPPORT to Kconfig
>>>     Convert CONFIG_SPL_YMODEM_SUPPORT to Kconfig
>>
>>
>> Many thanks for this big work!
>>
>> Do you have this patches in a git repo?
>> I want to test this patches with tbot testcase:
>> https://github.com/hsdenx/tbot/blob/master/src/tc/uboot/tc_uboot_check_kconfig.py
>>
>> if this series does not break boards ...
>
> Yes it is in u-boot-dm/kconfig-working2.

Thanks! Started from commit:
commit 5ed2ac345a2f5a613708a4fda9412eb4455d5109
Author: Simon Glass <sjg at chromium.org>
Date:   Sat Aug 27 19:55:16 2016 -0600

     Correct defconfigs using savedefconfig

until
commit 96f50085eba4631013e7a5774d8da26c25e72d60
Author: Simon Glass <sjg at chromium.org>
Date:   Sat Aug 20 18:53:31 2016 -0600

     Convert CONFIG_SPL_YMODEM_SUPPORT to Kconfig

Hmm ... I get immediately this error:

testing board 10m50 1 / 1196
testing board 3c120 2 / 1196
testing board A10-OLinuXino-Lime 3 / 1196
A10-OLinuXino-Lime u-boot spl bin diff f1da4b556e6ab90d370b5bf827fe7c31 != 
94e85eb2c9e7ed2026977d7a814aab6d
testing board A10s-OLinuXino-M 4 / 1196

Hmm... may we have a problem with building SPL binaries reproducable?

First I say No...

pollux:u-boot-none hs [master] $ make mrproper
[...]
pollux:u-boot-none hs [master] $ make A10-OLinuXino-Lime_defconfig
[...]
pollux:u-boot-none hs [master] $ make -s -j8 all
[...]
pollux:u-boot-none hs [master] $ md5sum spl/u-boot-spl.bin
94e85eb2c9e7ed2026977d7a814aab6d  spl/u-boot-spl.bin
pollux:u-boot-none hs [master] $ make mrproper
[...]
pollux:u-boot-none hs [master] $ make A10-OLinuXino-Lime_defconfig
[...]
pollux:u-boot-none hs [master] $ make -s -j8 all
[...]
pollux:u-boot-none hs [master] $
pollux:u-boot-none hs [master] $ md5sum spl/u-boot-spl.bin
94e85eb2c9e7ed2026977d7a814aab6d  spl/u-boot-spl.bin
pollux:u-boot-none hs [master] $

Same md5sum ... puh.

Applying your first patch, which does not introduce any change for
the A10-OLinuXino-Lime board, and I get the same md5sum ... puh,
the test seems working ...

I try to find out more ... I just have to leave now ...

And sorry for being so annoying ...

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list