Add support for U-Boots Kbuild & Kconfig build system
cover Add support for U-Boots Kbuild & Kconfig build system
This patch series adds to the bootloader Das U-Boot:
* Update to the latest stable version 2014.10
* Support for its Kbuild & Kconfig build system
* Documentation in the manual
* Fixes and adjustments to the packages infrastructure
J?rg Krause (14):
boot/uboot: bump to version 2014.10
boot/uboot: Add support for Kconfig build system boot/uboot.mk: Add uboot-menuconfig and friends boot/uboot.mk: Remove obsolete CONFIG_NOSOFTFLOAT flag boot/uboot.mk: Replace TARGET_CONFIGURE_OPTS with TARGET_MAKE_ENV boot/uboot.mk: Replace UBOOT_MAKE_OPTS with UBOOT_MAKE_FLAGS boot/uboot.mk: Make make action single-line boot/uboot/Config.in: Fix BR2_TARGET_UBOOT_SPL boot/uboot/Config.in: Fix BR2_TARGET_UBOOT_SPL_NAME boot/uboot/uboot.mk: Strip quotes from BR2_TARGET_UBOOT_SPL_NAME docs/manual/make-tips.mk: Add uboot documentation docs/manual/customize-configuration.txt: Add uboot documentation docs/manual/customize-quick-guide.txt: Add uboot documentation docs/manual/configure-other-components.txt: Add uboot documentation
boot/uboot/Config.in | 50 +++++++++++++++++++--------- boot/uboot/uboot.mk | 52 +++++++++++++++++++++++------- docs/manual/configure-other-components.txt | 11 +++++++ docs/manual/customize-configuration.txt | 8 ++--- docs/manual/customize-quick-guide.txt | 2 ++ docs/manual/make-tips.txt | 2 ++ 6 files changed, 94 insertions(+), 31 deletions(-)
Signature · 1 line
2.1.3
PATCH 1/14 boot/uboot: bump to version 2014.10
--- boot/uboot/Config.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
boot/uboot/Config.in +2 -2
@@ -18,7 +18,7 @@ choice Select the specific U-Boot version you want to use config BR2_TARGET_UBOOT_LATEST_VERSION - bool "2014.07" + bool "2014.10" config BR2_TARGET_UBOOT_CUSTOM_VERSION bool "Custom version"
@@ -63,7 +63,7 @@ endif config BR2_TARGET_UBOOT_VERSION string - default "2014.07" if BR2_TARGET_UBOOT_LATEST_VERSION + default "2014.10" if BR2_TARGET_UBOOT_LATEST_VERSION default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \ if BR2_TARGET_UBOOT_CUSTOM_VERSION default "custom" if BR2_TARGET_UBOOT_CUSTOM_TARBALL
Signature · 1 line
2.1.3
Thomas Petazzoni
AppliedPATCH 1/14 boot/uboot: bump to version 2014.10
Dear J?rg Krause,
Quoted 4 lines · J?rg Krause
Signed-off-by J?rg Krause <[email protected]>--- boot/uboot/Config.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 2/14 boot/uboot: Add support for Kconfig build system
In reply to Jörg KrauseSince version 2014.10 U-Boots uses a Kconfig build system. The boards.cfg has been converted to Kconfig and is not used anymore. Configuration by Kconfig is done with a <board>_defconfig file now, which is now the entry point of the build. Building U-Boot can be done with a default board defconfig file located in the configs directory of the U-Boot source tree or with a custom defconfig file.
The Kconfig configuration of the package is based on the Linux and Barebox package infrastructure.
--- boot/uboot/Config.in | 32 +++++++++++++++++++++++++------- boot/uboot/uboot.mk | 25 +++++++++++++++++++++---- 2 files changed, 46 insertions(+), 11 deletions(-)
boot/uboot/Config.in +25 -7
@@ -4,13 +4,6 @@ config BR2_TARGET_UBOOT Build "Das U-Boot" Boot Monitor if BR2_TARGET_UBOOT -config BR2_TARGET_UBOOT_BOARDNAME - string "U-Boot board name" - help - One of U-Boot supported boards to be built. - 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. choice prompt "U-Boot Version"
@@ -80,6 +73,31 @@ config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR Most users may leave this empty choice + prompt "U-Boot configuration" + default BR2_TARGET_UBOOT_USE_DEFCONFIG + +config BR2_TARGET_UBOOT_USE_DEFCONFIG + bool "Using a defconfig" + +config BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG + bool "Using a custom config file" +endchoice + +config BR2_TARGET_UBOOT_BOARD_DEFCONFIG + string "Board defconfig" + depends on BR2_TARGET_UBOOT_USE_DEFCONFIG + help + Name of the board defconfig file to use, without the trailing + _defconfig. The defconfig file is located in the directory + configs in the U-Boot source tree. + +config BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE + string "Custom defconfig file path" + depends on BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG + help + Path to the custom board defconfig file. + +choice prompt "U-Boot binary format" default BR2_TARGET_UBOOT_FORMAT_BIN
boot/uboot/uboot.mk +21 -4
@@ -94,10 +94,18 @@ endef UBOOT_POST_PATCH_HOOKS += UBOOT_APPLY_CUSTOM_PATCHES endif +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 = $(BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE) +endif + define UBOOT_CONFIGURE_CMDS + $(INSTALL) -m 0644 $(UBOOT_SOURCE_CONFIG) $(UBOOT_DIR)/configs/buildroot_defconfig $(TARGET_CONFIGURE_OPTS) $(UBOOT_CONFIGURE_OPTS) \ $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ - $(UBOOT_BOARD_NAME)_config + buildroot_config + rm $(UBOOT_DIR)/configs/buildroot_defconfig @echo >> $(@D)/include/config.h @echo "/* Add a wrapper around the values Buildroot sets. */" >> $(@D)/include/config.h @echo "#ifndef __BR2_ADDED_CONFIG_H" >> $(@D)/include/config.h
@@ -169,10 +177,19 @@ endif $(eval $(generic-package)) ifeq ($(BR2_TARGET_UBOOT),y) -# we NEED a board name unless we're at make source +# Checks to give errors that the user can understand ifeq ($(filter source,$(MAKECMDGOALS)),) -ifeq ($(UBOOT_BOARD_NAME),) -$(error NO U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting) + +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_BOARD_DEFCONFIG setting) +endif +endif + +ifeq ($(BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG),y) +ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE)),) +$(error No kernel configuration file specified, check your BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE setting) +endif endif ifeq ($(BR2_TARGET_UBOOT_CUSTOM_VERSION),y)
Signature · 1 line
2.1.3
PATCH 3/14 boot/uboot.mk: Add uboot-menuconfig and friends
In reply to Jörg KrauseAdd the uboot-menuconfig and friends make targets.
uboot-update-config is not supported since U-Boot uses up to three .config files (.config, spl/.config, tpl/.config) for board configuration. Furthermore U-Boot provides its own custom defconfig format.
--- boot/uboot/uboot.mk | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
boot/uboot/uboot.mk +16 -0
@@ -177,6 +177,7 @@ endif $(eval $(generic-package)) ifeq ($(BR2_TARGET_UBOOT),y) + # Checks to give errors that the user can understand ifeq ($(filter source,$(MAKECMDGOALS)),)
@@ -214,4 +215,19 @@ endif # qstrip BR2_TARGET_UBOOT_CUSTOM_CUSTOM_REPO_VERSION endif # BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG endif # filter source + +uboot-menuconfig uboot-xconfig uboot-gconfig uboot-nconfig: uboot-configure + $(TARGET_MAKE_ENV) $(MAKE) $(UBOOT_MAKE_FLAGS) -C $(UBOOT_DIR) $(subst uboot-,,$@) + rm -f $(UBOOT_DIR)/.stamp_{built,target_installed,images_installed} + +uboot-savedefconfig: uboot-configure + $(TARGET_MAKE_ENV) $(MAKE) $(UBOOT_MAKE_FLAGS) -C $(UBOOT_DIR) $(subst uboot-,,$@) + +ifeq ($(BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG),y) +uboot-update-defconfig: uboot-savedefconfig + cp -f $(UBOOT_DIR)/defconfig $(BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE) +else +uboot-update-defconfig: ; +endif + endif # BR2_TARGET_UBOOT
Signature · 1 line
2.1.3
PATCH 4/14 boot/uboot.mk: Remove obsolete CONFIG_NOSOFTFLOAT flag
In reply to Jörg KrauseThis flag seems to be obsolete. There is no piece of code in the U-Boot source tree referencing CONFIG_NOSOFTFLOAT.
Unfortunatly it's not documented here. Maybe it's about this old workaround:
http://lists.denx.de/pipermail/u-boot/2007-March/020282.html
However, this patch has been declined:
http://www.denx.de/wiki/view/U-Boot/PatchStatus?rev=1.27
--- boot/uboot/uboot.mk | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
boot/uboot/uboot.mk +2 -3
@@ -58,7 +58,6 @@ endif UBOOT_ARCH = $(KERNEL_ARCH) -UBOOT_CONFIGURE_OPTS += CONFIG_NOSOFTFLOAT=1 UBOOT_MAKE_OPTS += \ CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \ ARCH=$(UBOOT_ARCH)
@@ -102,7 +101,7 @@ endif define UBOOT_CONFIGURE_CMDS $(INSTALL) -m 0644 $(UBOOT_SOURCE_CONFIG) $(UBOOT_DIR)/configs/buildroot_defconfig - $(TARGET_CONFIGURE_OPTS) $(UBOOT_CONFIGURE_OPTS) \ + $(TARGET_CONFIGURE_OPTS) \ $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ buildroot_config rm $(UBOOT_DIR)/configs/buildroot_defconfig
@@ -122,7 +121,7 @@ define UBOOT_CONFIGURE_CMDS endef define UBOOT_BUILD_CMDS - $(TARGET_CONFIGURE_OPTS) $(UBOOT_CONFIGURE_OPTS) \ + $(TARGET_CONFIGURE_OPTS) \ $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ $(UBOOT_MAKE_TARGET) endef
Signature · 1 line
2.1.3
PATCH 5/14 boot/uboot.mk: Replace TARGET_CONFIGURE_OPTS with TARGET_MAKE_ENV
In reply to Jörg KrauseUse the make environment variable TARGET_MAKE_ENV for make <board>_defconfig and make instead of the configuration options variable TARGET_CONFIGURE_OPTS.
--- boot/uboot/uboot.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
boot/uboot/uboot.mk +2 -2
@@ -101,7 +101,7 @@ endif define UBOOT_CONFIGURE_CMDS $(INSTALL) -m 0644 $(UBOOT_SOURCE_CONFIG) $(UBOOT_DIR)/configs/buildroot_defconfig - $(TARGET_CONFIGURE_OPTS) \ + $(TARGET_MAKE_ENV) \ $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ buildroot_config rm $(UBOOT_DIR)/configs/buildroot_defconfig
@@ -121,7 +121,7 @@ define UBOOT_CONFIGURE_CMDS endef define UBOOT_BUILD_CMDS - $(TARGET_CONFIGURE_OPTS) \ + $(TARGET_MAKE_ENV) \ $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ $(UBOOT_MAKE_TARGET) endef
Signature · 1 line
2.1.3
PATCH 6/14 boot/uboot.mk: Replace UBOOT_MAKE_OPTS with UBOOT_MAKE_FLAGS
In reply to Jörg KrauseThis is just cosmetic to be consistent with the other Kconfig packages which name the variable UBOOT_MAKE_FLAGS instead of UBOOT_MAKE_OPTS.
--- boot/uboot/uboot.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
boot/uboot/uboot.mk +3 -3
@@ -58,7 +58,7 @@ endif UBOOT_ARCH = $(KERNEL_ARCH) -UBOOT_MAKE_OPTS += \ +UBOOT_MAKE_FLAGS += \ CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \ ARCH=$(UBOOT_ARCH)
@@ -102,7 +102,7 @@ endif define UBOOT_CONFIGURE_CMDS $(INSTALL) -m 0644 $(UBOOT_SOURCE_CONFIG) $(UBOOT_DIR)/configs/buildroot_defconfig $(TARGET_MAKE_ENV) \ - $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ + $(MAKE) -C $(@D) $(UBOOT_MAKE_FLAGS) \ buildroot_config rm $(UBOOT_DIR)/configs/buildroot_defconfig @echo >> $(@D)/include/config.h
@@ -122,7 +122,7 @@ endef define UBOOT_BUILD_CMDS $(TARGET_MAKE_ENV) \ - $(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \ + $(MAKE) -C $(@D) $(UBOOT_MAKE_FLAGS) \ $(UBOOT_MAKE_TARGET) endef
Signature · 1 line
2.1.3
PATCH 7/14 boot/uboot.mk: Make make action single-line
In reply to Jörg KrauseCosmetic after removing and renaming of variables.
--- boot/uboot/uboot.mk | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
boot/uboot/uboot.mk +2 -6
@@ -101,9 +101,7 @@ endif define UBOOT_CONFIGURE_CMDS $(INSTALL) -m 0644 $(UBOOT_SOURCE_CONFIG) $(UBOOT_DIR)/configs/buildroot_defconfig - $(TARGET_MAKE_ENV) \ - $(MAKE) -C $(@D) $(UBOOT_MAKE_FLAGS) \ - buildroot_config + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(UBOOT_MAKE_FLAGS) buildroot_config rm $(UBOOT_DIR)/configs/buildroot_defconfig @echo >> $(@D)/include/config.h @echo "/* Add a wrapper around the values Buildroot sets. */" >> $(@D)/include/config.h
@@ -121,9 +119,7 @@ define UBOOT_CONFIGURE_CMDS endef define UBOOT_BUILD_CMDS - $(TARGET_MAKE_ENV) \ - $(MAKE) -C $(@D) $(UBOOT_MAKE_FLAGS) \ - $(UBOOT_MAKE_TARGET) + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(UBOOT_MAKE_FLAGS) $(UBOOT_MAKE_TARGET) endef define UBOOT_BUILD_OMAP_IFT
Signature · 1 line
2.1.3
PATCH 8/14 boot/uboot/Config.in: Fix BR2_TARGET_UBOOT_SPL
In reply to Jörg KrauseBuilding an SPL image depends on the board configuration. This option does not enable the SPL build, but only copies the built SPL image to the binary images folder. The current help text is misleading.
--- boot/uboot/Config.in | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
boot/uboot/Config.in +7 -5
@@ -232,13 +232,15 @@ config BR2_TARGET_UBOOT_ETH1ADDR endif # BR2_TARGET_UBOOT_NETWORK config BR2_TARGET_UBOOT_SPL - bool "U-Boot SPL support" + bool "Install U-Boot SPL binary image" depends on !BR2_TARGET_XLOADER help - Enable the U-Boot SPL support. SPL is a first stage - bootloader loaded into internal memory in charge of - enabling and configuring the external memory (DDR), - and load the u-boot program into DDR. + Install the U-Boot SPL binary image to the images + directory. + SPL is a first stage bootloader loaded into internal + memory in charge of enabling and configuring the + external memory (DDR), and load the u-boot program + into DDR. config BR2_TARGET_UBOOT_SPL_NAME string "U-Boot SPL target name"
Signature · 1 line
2.1.3
Thomas Petazzoni
AppliedPATCH 8/14 boot/uboot/Config.in: Fix BR2_TARGET_UBOOT_SPL
Dear J?rg Krause,
Quoted 8 lines · J?rg Krause
Building an SPL image depends on the board configuration. This option does not enable the SPL build, but only copies the built SPL image to the binary images folder. The current help text is misleading.
Signed-off-by J?rg Krause <[email protected]>--- boot/uboot/Config.in | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
Applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 9/14 boot/uboot/Config.in: Fix BR2_TARGET_UBOOT_SPL_NAME
In reply to Jörg KrausePoint out that the SPL name is an image name.
--- boot/uboot/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
boot/uboot/Config.in +1 -1
@@ -243,7 +243,7 @@ config BR2_TARGET_UBOOT_SPL into DDR. config BR2_TARGET_UBOOT_SPL_NAME - string "U-Boot SPL target name" + string "U-Boot SPL binary image name" default "spl/u-boot-spl.bin" depends on BR2_TARGET_UBOOT_SPL help
Signature · 1 line
2.1.3
Thomas Petazzoni
AppliedPATCH 9/14 boot/uboot/Config.in: Fix BR2_TARGET_UBOOT_SPL_NAME
Dear J?rg Krause,
Quoted 6 lines · J?rg Krause
Point out that the SPL name is an image name.
Signed-off-by J?rg Krause <[email protected]>--- boot/uboot/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 10/14 boot/uboot/uboot.mk: Strip quotes from BR2_TARGET_UBOOT_SPL_NAME
In reply to Jörg KrauseRemove the quotes from the BR2_TARGET_UBOOT_SPL_NAME variable.
--- boot/uboot/uboot.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
boot/uboot/uboot.mk +1 -1
@@ -130,7 +130,7 @@ endef define UBOOT_INSTALL_IMAGES_CMDS cp -dpf $(@D)/$(UBOOT_BIN) $(BINARIES_DIR)/ $(if $(BR2_TARGET_UBOOT_SPL), - cp -dpf $(@D)/$(BR2_TARGET_UBOOT_SPL_NAME) $(BINARIES_DIR)/) + cp -dpf $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) $(BINARIES_DIR)/) $(if $(BR2_TARGET_UBOOT_ENVIMAGE), $(HOST_DIR)/usr/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \ $(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \
Signature · 1 line
2.1.3
Thomas Petazzoni
AppliedPATCH 10/14 boot/uboot/uboot.mk: Strip quotes from BR2_TARGET_UBOOT_SPL_NAME
Dear J?rg Krause,
Quoted 6 lines · J?rg Krause
Remove the quotes from the
BR2_TARGET_UBOOT_SPL_NAMEvariable.Signed-off-by J?rg Krause <[email protected]>--- boot/uboot/uboot.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 11/14 docs/manual/make-tips.mk: Add uboot documentation
In reply to Jörg KrauseBased on the Barebox documentation text.
--- docs/manual/make-tips.txt | 2 ++ 1 file changed, 2 insertions(+)
docs/manual/make-tips.txt +2 -0
@@ -28,6 +28,8 @@ some settings in the +.config+ file may hide some targets: selected in the internal toolchain backend; * +barebox-menuconfig+ and +barebox-savedefconfig+ only work when the +barebox+ bootloader is enabled. +* +uboot-menuconfig+ and +uboot-savedefconfig+ only work when the + +uboot+ bootloader is enabled. .Cleaning:
Signature · 1 line
2.1.3
PATCH 12/14 docs/manual/customize-configuration.txt: Add uboot documentation
In reply to Jörg KrauseBased on the Barebox documentation text.
--- docs/manual/customize-configuration.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
docs/manual/customize-configuration.txt +4 -4
@@ -24,8 +24,8 @@ Alternatively, you can copy the file to any other place and rebuild with [[customize-store-package-config]] === Storing the configuration of other components -The configuration files for BusyBox, the Linux kernel, Barebox and -uClibc should be stored as well if changed. For each of these +The configuration files for BusyBox, the Linux kernel, Barebox, U-Boot +and uClibc should be stored as well if changed. For each of these components, a Buildroot configuration option exists to point to an input configuration file, e.g. +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. To store their configuration, set these configuration options to a path where you
@@ -56,7 +56,7 @@ configuration files easier. path specified by +BR2_UCLIBC_CONFIG+. * +make barebox-update-defconfig+ saves the barebox configuration to the path specified by +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+. +* +make uboot-update-defconfig+ saves the uboot configuration to the + path specified by +BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE+. * For at91bootstrap3, no helper exists so you have to copy the config file manually to +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+. - -
Signature · 1 line
2.1.3
PATCH 13/14 docs/manual/customize-quick-guide.txt: Add uboot documentation
In reply to Jörg KrauseBased on the Barebox documentation text.
--- docs/manual/customize-quick-guide.txt | 2 ++ 1 file changed, 2 insertions(+)
docs/manual/customize-quick-guide.txt +2 -0
@@ -20,6 +20,7 @@ your project can be skipped. * +BR2_UCLIBC_CONFIG+ * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+ * +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+ + * +BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE+ 1. Write the configuration files: * +make linux-update-defconfig+ * +make busybox-update-config+
@@ -27,6 +28,7 @@ your project can be skipped. * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+ * +make barebox-update-defconfig+ + * +make uboot-update-defconfig+ 1. Create +board/<manufacturer>/<boardname>/rootfs-overlay/+ and fill it with additional files you need on your rootfs, e.g. +board/<manufacturer>/<boardname>/rootfs-overlay/etc/inittab+.
Signature · 1 line
2.1.3
PATCH 14/14 docs/manual/configure-other-components.txt: Add uboot documentation
In reply to Jörg KrauseAdd documentation for U-Boots Kconfig configuration.
--- docs/manual/configure-other-components.txt | 11 +++++++++++ 1 file changed, 11 insertions(+)
docs/manual/configure-other-components.txt +11 -0
@@ -50,3 +50,14 @@ kernel. The corresponding configuration variables are +BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG+ and +BR2_TARGET_BAREBOX_USE_DEFCONFIG+. To open the configuration editor, use +make barebox-menuconfig+. + +U-Boot:: ++ +Configuration of U-Boot requires a target board defconfig file. +This can either be a default <board>_defconfig file from the configs +directory in the U-Boot source tree specified in ++BR2_TARGET_UBOOT_USE_DEFCONFIG+ or custom defconfig file specified +in +BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG+. ++ +To make subsequent changes to the configuration, use +make +uboot-menuconfig+ to open the U-Boot configuration editor.
Signature · 1 line
2.1.3
cover Add support for U-Boots Kbuild & Kconfig build system
In reply to Jörg KrauseDear J?rg Krause,
Quoted 5 lines · J?rg Krause
This patch series adds to the bootloader Das U-Boot:
* Update to the latest stable version 2014.10
* Support for itsKbuild&Kconfigbuild system
* Documentation in the manual
* Fixes and adjustments to the packages infrastructure
Thanks for working on this, definitely good to see someone tackling the bump to the first kconfig-enabled U-Boot version.
There is however one big issue with your patch series: I believe it breaks backward compatibility with U-Boot versions older than 2014.10. And a *lot* of people are using old versions of U-Boot, to which they are stuck due to the old version being their only choice for a given piece of hardware.
So we clearly need to continue to support older versions of U-Boot, that don't have the kconfig stuff. I just gave a try, and it seems like the old U-Boot way of configuring/building things apparently still works with U-Boot 2014.10. So your PATCH 01/14 is probably OK. However starting from 02/14, I believe you'll be breaking things for U-Boot versions older than 2014.10.
Can you work on a solution that preserves compatibility?
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
cover Add support for U-Boots Kbuild & Kconfig build system
Hello J?rg,
Quoted 9 lines · Thomas Petazzoni
Thanks for working on this, definitely good to see someone tackling the bump to the first kconfig-enabled U-Boot version.
There is however one big issue with your patch series: I believe it breaks backward compatibility with U-Boot versions older than 2014.10. And a *lot* of people are using old versions of U-Boot, to which they are stuck due to the old version being their only choice for a given piece of hardware.
Quoted 8 lines
So we clearly need to continue to support older versions of U-Boot, that don't have the kconfig stuff. I just gave a try, and it seems like the old U-Boot way of configuring/building things apparently still works with U-Boot 2014.10. So your PATCH 01/14 is probably OK. However starting from 02/14, I believe you'll be breaking things for U-Boot versions older than 2014.10.
Can you work on a solution that preserves compatibility?
Since I had no feedback about this (probably due to the winter holidays), I'll mark those patches as "Changes Requested" in patchwork. Can you resend a new version that takes into account the need for backward compatibility with older versions of U-Boot?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
cover Add support for U-Boots Kbuild & Kconfig build system
Hello Thomas,
Quoted 12 lines · Thomas Petazzoni
Hello J?rg,
Quoted 8 lines · Thomas Petazzoni
Thanks for working on this, definitely good to see someone tackling the bump to the first kconfig-enabled U-Boot version.
There is however one big issue with your patch series: I believe it breaks backward compatibility with U-Boot versions older than 2014.10. And a *lot* of people are using old versions of U-Boot, to which they are stuck due to the old version being their only choice for a given piece of hardware.
You're right, it's not backward compatible.
Quoted 7 lines
Quoted 7 lines
So we clearly need to continue to support older versions of U-Boot, that don't have the kconfig stuff. I just gave a try, and it seems like the old U-Boot way of configuring/building things apparently still works with U-Boot 2014.10. So your PATCH 01/14 is probably OK. However starting from 02/14, I believe you'll be breaking things for U-Boot versions older than 2014.10.
U-Boot 2014.10 still supports the old <board_name>_config build system. So it should be safe to update the version number only (in case the board is still supported).
Quoted 5 lines
Quoted 2 lines
Can you work on a solution that preserves compatibility?
Since I had no feedback about this (probably due to the winter holidays),
You're right with the winter holidays..
Quoted 3 lines
I'll mark those patches as "Changes Requested" in patchwork. Can you resend a new version that takes into account the need for backward compatibility with older versions of U-Boot?
I can do this. Do you have any suggestion for providing backward compatibility? I have a config option for the U-Boot menu in mind, e.g.:
U-Boot Version (2014.10) --->
[ ] Use Kconfig build system (NEW)
Best regards
J?rg Krause
cover Add support for U-Boots Kbuild & Kconfig build system
Dear J?rg Krause,
Quoted 10 lines · J?rg Krause
Quoted 6 lines
Quoted 6 lines
So we clearly need to continue to support older versions of U-Boot, that don't have the kconfig stuff. I just gave a try, and it seems like the old U-Boot way of configuring/building things apparently still works with U-Boot 2014.10. So your PATCH 01/14 is probably OK. However starting from 02/14, I believe you'll be breaking things for U-Boot versions older than 2014.10.
U-Boot 2014.10 still supports the old <board_name>_config build system. So it should be safe to update the version number only (in case the board is still supported).
Yes, that's why I've applied your patch bumping the version to 2014.10:
http://git.buildroot.net/buildroot/commit/boot?id=143119c0ef58b04bd7109bcb7b095ef98cc5311c.
Quoted 4 lines
I can do this. Do you have any suggestion for providing backward compatibility? I have a config option for the U-Boot menu in mind, e.g.:
U-Boot Version (2014.10) --->
[ ] UseKconfigbuild system (NEW)
Yes, at this point, I don't really see any other solution than having a Config.in option: since we support fetching U-Boot from custom location, only the user can tell if the U-Boot version uses the old build system, or the new Kconfig/Kbuild based build system.
Of course, if 2014.10 is selected, you can automatically enable the usage of the Kconfig build system, but for custom versions/repositories, we have no other solution than having such a new Config.in option.
Can you work on this idea?
Thanks a lot!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
cover Add support for U-Boots Kbuild & Kconfig build system
Quoted 28 lines · Thomas Petazzoni
Dear J?rg Krause,
Quoted 10 lines · J?rg Krause
Quoted 6 lines
Quoted 6 lines
So we clearly need to continue to support older versions of U-Boot, that don't have the kconfig stuff. I just gave a try, and it seems like the old U-Boot way of configuring/building things apparently still works with U-Boot 2014.10. So your PATCH 01/14 is probably OK. However starting from 02/14, I believe you'll be breaking things for U-Boot versions older than 2014.10.
U-Boot 2014.10 still supports the old <board_name>_config build system. So it should be safe to update the version number only (in case the board is still supported).
Yes, that's why I've applied your patch bumping the version to 2014.10:
http://git.buildroot.net/buildroot/commit/boot?id=143119c0ef58b04bd7109bcb7b095ef98cc5311c.Quoted 4 lines
I can do this. Do you have any suggestion for providing backward compatibility? I have a config option for the U-Boot menu in mind, e.g.:
U-Boot Version (2014.10) --->
[ ] UseKconfigbuild system (NEW)Yes, at this point, I don't really see any other solution than having a Config.in option: since we support fetching U-Boot from custom location, only the user can tell if the U-Boot version uses the old build system, or the new Kconfig/Kbuild based build system.
Quoted 6 lines
Of course, if 2014.10 is selected, you can automatically enable the usage of the
Kconfigbuild system, but for custom versions/repositories, we have no other solution than having such a new Config.in option.Can you work on this idea?
Yes, I can. I'll try to get it submitted this week.
J?rg
cover Add support for U-Boots Kbuild & Kconfig build system
Dear J?rg Krause,
Quoted 8 lines · J?rg Krause
Quoted 6 lines
Of course, if 2014.10 is selected, you can automatically enable the usage of the
Kconfigbuild system, but for custom versions/repositories, we have no other solution than having such a new Config.in option.Can you work on this idea?
Yes, I can. I'll try to get it submitted this week.
Great, thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com