Skip to contentSkip to conversation

Add support for U-Boots Kbuild & Kconfig build system

PATCH New Jörg Krause 2 participants 25 messages Dec 12, 2014 – Jan 5, 2015

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
index 46d1109..f7c4374 100644
@@ -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
#2 lore raw

PATCH 1/14 boot/uboot: bump to version 2014.10

Dear J?rg Krause,

Quoted 4 lines · J?rg Krause
---
 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
#3 lore raw

PATCH 2/14 boot/uboot: Add support for Kconfig build system

In reply to Jörg Krause

Since 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
index f7c4374..8a5bebc 100644
@@ -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
index 1f8818c..17565e4 100644
@@ -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
#4 lore raw

PATCH 3/14 boot/uboot.mk: Add uboot-menuconfig and friends

In reply to Jörg Krause

Add 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
index 17565e4..72603e0 100644
@@ -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
#5 lore raw

PATCH 4/14 boot/uboot.mk: Remove obsolete CONFIG_NOSOFTFLOAT flag

In reply to Jörg Krause

This 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
index 72603e0..1af7e52 100644
@@ -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
#6 lore raw

PATCH 5/14 boot/uboot.mk: Replace TARGET_CONFIGURE_OPTS with TARGET_MAKE_ENV

In reply to Jörg Krause

Use 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
index 1af7e52..f1d40a1 100644
@@ -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
#7 lore raw

PATCH 6/14 boot/uboot.mk: Replace UBOOT_MAKE_OPTS with UBOOT_MAKE_FLAGS

In reply to Jörg Krause

This 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
index f1d40a1..f1307f6 100644
@@ -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
#8 lore raw

PATCH 7/14 boot/uboot.mk: Make make action single-line

In reply to Jörg Krause

Cosmetic after removing and renaming of variables.

---
 boot/uboot/uboot.mk | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
boot/uboot/uboot.mk +2 -6
index f1307f6..c786986 100644
@@ -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
#9 lore raw

PATCH 8/14 boot/uboot/Config.in: Fix BR2_TARGET_UBOOT_SPL

In reply to 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.

---
 boot/uboot/Config.in | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
boot/uboot/Config.in +7 -5
index 8a5bebc..801ea2d 100644
@@ -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
#10 lore raw

PATCH 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.

---
 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
#11 lore raw

PATCH 9/14 boot/uboot/Config.in: Fix BR2_TARGET_UBOOT_SPL_NAME

In reply to Jörg Krause

Point 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
index 801ea2d..5ba34c0 100644
@@ -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
#12 lore raw

PATCH 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.

---
 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
#13 lore raw

PATCH 10/14 boot/uboot/uboot.mk: Strip quotes from BR2_TARGET_UBOOT_SPL_NAME

In reply to Jörg Krause

Remove 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
index c786986..3bd86c2 100644
@@ -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
#14 lore raw

PATCH 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_NAME variable.

---
 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
#15 lore raw

PATCH 11/14 docs/manual/make-tips.mk: Add uboot documentation

In reply to Jörg Krause

Based on the Barebox documentation text.

---
 docs/manual/make-tips.txt | 2 ++
 1 file changed, 2 insertions(+)
docs/manual/make-tips.txt +2 -0
index 027eddf..952a91a 100644
@@ -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
#16 lore raw

PATCH 12/14 docs/manual/customize-configuration.txt: Add uboot documentation

In reply to Jörg Krause

Based 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
index 5723302..275a87d 100644
@@ -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
#17 lore raw

PATCH 13/14 docs/manual/customize-quick-guide.txt: Add uboot documentation

In reply to Jörg Krause

Based 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
index 617cc9a..75bab6f 100644
@@ -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
#18 lore raw

PATCH 14/14 docs/manual/configure-other-components.txt: Add uboot documentation

In reply to Jörg Krause

Add 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
index 514c95f..1aad29c 100644
@@ -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
#19 lore raw

cover Add support for U-Boots Kbuild & Kconfig build system

In reply to Jörg Krause

Dear 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 its Kbuild & Kconfig build 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
#20 lore raw

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
#21 lore raw

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

#22 lore raw

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) --->
[ ] Use Kconfig build 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
#23 lore raw

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) --->
[ ] Use Kconfig build 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 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?

Yes, I can. I'll try to get it submitted this week.

J?rg

#24 lore raw

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 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?

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