Patchwork [RFC,2/2] barebox: Add possibility to build also barebox xloader (MLO).

login
register
mail settings
Submitter Marek Belisko
Date Dec. 22, 2012, 11:04 p.m.
Message ID <1356217460-20232-3-git-send-email-marek.belisko@open-nandra.com>
Download mbox | patch
Permalink /patch/207943/
State Rejected
Delegated to: Thomas De Schampheleire
Headers show

Comments

Marek Belisko - Dec. 22, 2012, 11:04 p.m.
This add config option for user to select defconfig or custom xloader config.
Barebox have xloader defconfig for:
phycard_a_xl2_xload_defconfig
pcm049_xload_defconfig
archosg9_xload_defconfig
phycard_a_l1_xload_defconfig
omap3530_beagle_xload_defconfig
panda_xload_defconfig

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
---
 boot/barebox/Config.in  |   28 ++++++++++++++++++++++++++++
 boot/barebox/barebox.mk |   28 ++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+)
Thomas Petazzoni - July 12, 2015, 3:54 p.m.
Dear Marek Belisko,

On Sun, 23 Dec 2012 00:04:20 +0100, Marek Belisko wrote:
> This add config option for user to select defconfig or custom xloader config.
> Barebox have xloader defconfig for:
> phycard_a_xl2_xload_defconfig
> pcm049_xload_defconfig
> archosg9_xload_defconfig
> phycard_a_l1_xload_defconfig
> omap3530_beagle_xload_defconfig
> panda_xload_defconfig
> 
> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
> ---
>  boot/barebox/Config.in  |   28 ++++++++++++++++++++++++++++
>  boot/barebox/barebox.mk |   28 ++++++++++++++++++++++++++++
>  2 files changed, 56 insertions(+)

This would be useful to have, but we would like to see a different
implementation. Our notes were:

   Allow a second Barebox build, to build the MLO/SPL. See
   http://patchwork.ozlabs.org/patch/207942/ and
   http://patchwork.ozlabs.org/patch/207943/. The proposed design is to
   have boot/barebox/ containing the common stuff, and then two
   separate packages boot/barebox-first/ and boot/barebox-second/
   (names to be chosen). There is only one version selection, but each
   package allows to define the configuration to be used. Design should
   be a little bit like package/gcc, where we have multiple gcc builds,
   but share a lot of common definitions between the packages.

Since no one has submitted anything in this direction since 2.5 years,
we will mark your patch as Rejected. Do not hesitate to work on this
topic again, and send new patches.

Best regards,

Thomas

Patch

diff --git a/boot/barebox/Config.in b/boot/barebox/Config.in
index 95f330f..bb20542 100644
--- a/boot/barebox/Config.in
+++ b/boot/barebox/Config.in
@@ -99,4 +99,32 @@  config BR2_TARGET_BAREBOX_BAREBOXENV
 	help
 	  Install bareboxenv tool in target.
 
+choice
+	prompt "Barebox xloader configuration"
+	default BR2_TARGET_BAREBOX_XLOADER_NONE
+
+config BR2_TARGET_BAREBOX_XLOADER_NONE
+	bool "None"
+
+config BR2_TARGET_BAREBOX_XLOADER_USE_DEFCONFIG
+	bool "Using defconfig"
+
+config BR2_TARGET_BAREBOX_XLOADER_USE_CUSTOM_CONFIG
+	bool "Using a custom config file"
+
+endchoice
+
+config BR2_TARGET_BAREBOX_BOARD_XLOADER_DEFCONFIG
+	string "board xloader defconfig"
+	depends on BR2_TARGET_BAREBOX_XLOADER_USE_DEFCONFIG
+	help
+	  Name of the board for which Barebox xloader should be built, without
+	  the _defconfig suffix (can be used for pandaboard, beagleboard ...).
+
+config BR2_TARGET_BAREBOX_XLOADER_CUSTOM_CONFIG_FILE
+	string "Xloader configuration file path"
+	depends on BR2_TARGET_BAREBOX_XLOADER_USE_CUSTOM_CONFIG
+	help
+	  Path to the barebox custom xloader configuration file.
+
 endif
diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
index 16110b9..199b708 100644
--- a/boot/barebox/barebox.mk
+++ b/boot/barebox/barebox.mk
@@ -56,7 +56,33 @@  endif
 
 BAREBOX_BUILD_DIR = barebox
 
+ifneq ($(BR2_TARGET_BAREBOX_XLOADER_NONE),y)
+ifeq ($(BR2_TARGET_BAREBOX_XLOADER_USE_DEFCONFIG),y)
+BAREBOX_XLOADER_SOURCE_CONFIG = $(@D)/arch/$(BAREBOX_ARCH)/configs/$(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_XLOADER_DEFCONFIG))_defconfig
+else ifeq ($(BR2_TARGET_BAREBOX_XLOADER_USE_CUSTOM_CONFIG),y)
+BAREBOX_XLOADER_SOURCE_CONFIG = $(BR2_TARGET_BAREBOX_XLOADER_CUSTOM_CONFIG_FILE)
+endif
+
+BAREBOX_XLOADER_BUILD_DIR = MLO
+
+define BAREBOX_XLOADER_CONFIGURE_CMDS
+	mkdir -p $(@D)/$(BAREBOX_XLOADER_BUILD_DIR)
+	cp $(BAREBOX_XLOADER_SOURCE_CONFIG) $(@D)/arch/$(BAREBOX_ARCH)/configs/buildroot_xload_defconfig
+	$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) buildroot_xload_defconfig O=$(BAREBOX_XLOADER_BUILD_DIR)
+endef
+
+define BAREBOX_XLOADER_BUILD_CMDS
+	$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) O=$(BAREBOX_XLOADER_BUILD_DIR)
+endef
+
+define BAREBOX_XLOADER_INSTALL_IMAGES_CMDS
+	cp $(@D)/$(BAREBOX_XLOADER_BUILD_DIR)/MLO $(BINARIES_DIR)
+endef
+
+endif
+
 define BAREBOX_CONFIGURE_CMDS
+	$(BAREBOX_XLOADER_CONFIGURE_CMDS)
 	mkdir -p $(@D)/$(BAREBOX_BUILD_DIR)
 	cp $(BAREBOX_SOURCE_CONFIG) $(@D)/arch/$(BAREBOX_ARCH)/configs/buildroot_defconfig
 	$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) buildroot_defconfig O=$(BAREBOX_BUILD_DIR)
@@ -70,11 +96,13 @@  endef
 endif
 
 define BAREBOX_BUILD_CMDS
+	$(BAREBOX_XLOADER_BUILD_CMDS)
 	$(BAREBOX_BUILD_BAREBOXENV_CMDS)
 	$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) O=$(BAREBOX_BUILD_DIR)
 endef
 
 define BAREBOX_INSTALL_IMAGES_CMDS
+	$(BAREBOX_XLOADER_INSTALL_IMAGES_CMDS)
 	cp $(@D)/$(BAREBOX_BUILD_DIR)/barebox.bin $(BINARIES_DIR)
 endef