[Buildroot] [PATCH v2 1/2] boot/uboot: add support for the kconfig infrastructure

Yegor Yefremov yegorslists at googlemail.com
Mon May 11 12:13:38 UTC 2015


Hi Jörg,

On Sun, Apr 19, 2015 at 4:39 PM, Jörg Krause
<joerg.krause at embedded.rocks> wrote:
> With the patchset "kconfig: turnaround into single .config"
> [http://lists.denx.de/pipermail/u-boot/2015-February/205490.html]
> U-Boot switched to a single .config file for board configuration. This allows
> us to use the kconfig-package infrastructure.
>
> For providing backward compatibility with older U-Boot version a user choice
> between the new Kconfig and the legacy build system is introduced. Kconfig
> is chosen as default build system.
>
> This patch supersedes "boot/uboot: Add support for Kbuild & Kconfig build
> system" [http://patchwork.ozlabs.org/patch/436498/]

Your patch doesn't apply to the latest Buildroot. Could you please
rebase it on the next branch?

Thanks.

Yegor

> Signed-off-by: Jörg Krause <joerg.krause at embedded.rocks>
> ---
> Changes v1 -> v2:
>   - rebase (Thomas)
>   - fix U-Boot version in Legacy help text (Thomas)
>   - do not set Kconfig as default (Thomas)
>   - fix (def)config input check
> ---
>  boot/uboot/Config.in | 47 +++++++++++++++++++++++++++++++++++++++++++++++
>  boot/uboot/uboot.mk  | 33 ++++++++++++++++++++++++++++++++-
>  2 files changed, 79 insertions(+), 1 deletion(-)
>
> diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
> index 4f01499..95c50ac 100644
> --- a/boot/uboot/Config.in
> +++ b/boot/uboot/Config.in
> @@ -4,6 +4,25 @@ config BR2_TARGET_UBOOT
>           Build "Das U-Boot" Boot Monitor
>
>  if BR2_TARGET_UBOOT
> +choice
> +       prompt "Build system"
> +       default BR2_TARGET_UBOOT_BUILD_SYSTEM_KBUILD
> +
> +config BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY
> +       bool "Legacy"
> +       help
> +         Select this option if you use an old U-Boot (older than 2015.04),
> +         so that we use the old build system.
> +
> +config BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG
> +       bool "Kconfig"
> +       help
> +         Select this option if you use a recent U-Boot version (2015.04 or
> +         newer), so that we use the Kconfig build system.
> +
> +endchoice
> +
> +if BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY
>  config BR2_TARGET_UBOOT_BOARDNAME
>         string "U-Boot board name"
>         help
> @@ -11,6 +30,7 @@ config BR2_TARGET_UBOOT_BOARDNAME
>           This will be suffixed with _config to meet U-Boot standard naming.
>           See boards.cfg in U-Boot source code for the list of available
>           configurations.
> +endif
>
>  choice
>         prompt "U-Boot Version"
> @@ -92,6 +112,33 @@ config BR2_TARGET_UBOOT_PATCH
>
>           Most users may leave this empty
>
> +if BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG
> +choice
> +       prompt "U-Boot configuration"
> +       default BR2_TARGET_UBOOT_USE_DEFCONFIG
> +
> +config BR2_TARGET_UBOOT_USE_DEFCONFIG
> +       bool "Using an in-tree board defconfig file"
> +
> +config BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG
> +       bool "Using a custom board (def)config file"
> +
> +endchoice
> +
> +config BR2_TARGET_UBOOT_BOARD_DEFCONFIG
> +       string "Board defconfig"
> +       depends on BR2_TARGET_UBOOT_USE_DEFCONFIG
> +       help
> +         Name of the board for which U-Boot should be built, without
> +         the _defconfig suffix.
> +
> +config BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE
> +       string "Configuration file path"
> +       depends on BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG
> +       help
> +         Path to the U-Boot configuration file.
> +endif
> +
>  choice
>         prompt "U-Boot binary format"
>         default BR2_TARGET_UBOOT_FORMAT_BIN
> diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
> index 1526177..39ba452 100644
> --- a/boot/uboot/uboot.mk
> +++ b/boot/uboot/uboot.mk
> @@ -117,6 +117,7 @@ define UBOOT_APPLY_LOCAL_PATCHES
>  endef
>  UBOOT_POST_PATCH_HOOKS += UBOOT_APPLY_LOCAL_PATCHES
>
> +ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y)
>  define UBOOT_CONFIGURE_CMDS
>         $(TARGET_CONFIGURE_OPTS)        \
>                 $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS)             \
> @@ -135,6 +136,18 @@ define UBOOT_CONFIGURE_CMDS
>         $(call insert_define,CONFIG_ETH1ADDR,$(BR2_TARGET_UBOOT_ETH1ADDR))
>         @echo "#endif /* __BR2_ADDED_CONFIG_H */" >> $(@D)/include/config.h
>  endef
> +else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y)
> +ifeq ($(BR2_TARGET_UBOOT_USE_DEFCONFIG),y)
> +UBOOT_SOURCE_CONFIG = $(UBOOT_DIR)/configs/$(call qstrip,\
> +       $(BR2_TARGET_UBOOT_BOARD_DEFCONFIG))_defconfig
> +else ifeq ($(BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG),y)
> +UBOOT_SOURCE_CONFIG = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE))
> +endif # BR2_TARGET_UBOOT_USE_DEFCONFIG
> +
> +UBOOT_KCONFIG_FILE = $(UBOOT_SOURCE_CONFIG)
> +UBOOT_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
> +UBOOT_KCONFIG_OPTS = $(UBOOT_MAKE_OPTS)
> +endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY
>
>  define UBOOT_BUILD_CMDS
>         $(TARGET_CONFIGURE_OPTS)        \
> @@ -191,14 +204,32 @@ endif
>  UBOOT_DEPENDENCIES += host-uboot-tools
>  endif
>
> +ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y)
>  $(eval $(generic-package))
> +else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y)
> +$(eval $(kconfig-package))
> +endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY
>
>  ifeq ($(BR2_TARGET_UBOOT),y)
>  # we NEED a board name unless we're at make source
>  ifeq ($(filter source,$(MAKECMDGOALS)),)
> +
> +ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y)
>  ifeq ($(UBOOT_BOARD_NAME),)
>  $(error No U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting)
> -endif
> +endif # UBOOT_BOARD_NAME
> +else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y)
> +ifeq ($(BR2_TARGET_UBOOT_USE_DEFCONFIG),y)
> +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_BOARD_DEFCONFIG)),)
> +$(error No board defconfig name specified, check your BR2_TARGET_UBOOT_DEFCONFIG setting)
> +endif # qstrip BR2_TARGET_UBOOT_BOARD_DEFCONFIG
> +endif # BR2_TARGET_UBOOT_USE_DEFCONFIG
> +ifeq ($(BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG),y)
> +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE)),)
> +$(error No board configuration file specified, check your BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE setting)
> +endif # qstrip BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE
> +endif # BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG
> +endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY
>
>  ifeq ($(BR2_TARGET_UBOOT_CUSTOM_VERSION),y)
>  ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE)),)
> --
> 2.3.5
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot



More information about the buildroot mailing list