diff options
| -rw-r--r-- | boot/Config.in | 1 | ||||
| -rw-r--r-- | boot/barebox/Config.in | 14 | ||||
| -rw-r--r-- | boot/barebox/barebox.mk | 61 | 
3 files changed, 76 insertions, 0 deletions
diff --git a/boot/Config.in b/boot/Config.in index 78ff82c96..6bcc98af5 100644 --- a/boot/Config.in +++ b/boot/Config.in @@ -1,5 +1,6 @@  menu "Bootloaders" +source "boot/barebox/Config.in"  source "boot/grub/Config.in"  source "boot/grub2/Config.in"  source "boot/syslinux/Config.in" diff --git a/boot/barebox/Config.in b/boot/barebox/Config.in new file mode 100644 index 000000000..0c90f0382 --- /dev/null +++ b/boot/barebox/Config.in @@ -0,0 +1,14 @@ +menuconfig BR2_TARGET_BAREBOX +	bool "Barebox" +	help +	  The Barebox bootloader, formerly known as U-Boot v2. + +	  http://www.barebox.org + +if BR2_TARGET_BAREBOX +config BR2_TARGET_BAREBOX_BOARD_DEFCONFIG +	string "board defconfig" +	help +	  Name of the board for which Barebox should be built, without +	  the _defconfig suffix. +endif diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk new file mode 100644 index 000000000..7c2cbc123 --- /dev/null +++ b/boot/barebox/barebox.mk @@ -0,0 +1,61 @@ +############################################################# +# +# Barebox +# +############################################################# + +BAREBOX_VERSION:=2010.05.0 +BAREBOX_SOURCE:=barebox-$(BAREBOX_VERSION).tar.bz2 +BAREBOX_SITE:=http://www.barebox.org/download/ +BAREBOX_DIR:=$(BUILD_DIR)/barebox-$(BAREBOX_VERSION) +BAREBOX_CAT:=$(BZCAT) +BAREBOX_BOARD_DEFCONFIG:=$(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG)) + +ifeq ($(KERNEL_ARCH),i386) +BAREBOX_ARCH=x86 +else ifeq ($(KERNEL_ARCH),powerpc) +BAREBOX_ARCH=ppc +else +BAREBOX_ARCH=$(KERNEL_ARCH) +endif + +BAREBOX_MAKE_FLAGS = ARCH=$(BAREBOX_ARCH) CROSS_COMPILE=$(TARGET_CROSS) + +$(DL_DIR)/$(BAREBOX_SOURCE): +	 $(call DOWNLOAD,$(BAREBOX_SITE),$(BAREBOX_SOURCE)) + +$(BAREBOX_DIR)/.unpacked: $(DL_DIR)/$(BAREBOX_SOURCE) +	mkdir -p $(@D) +	$(INFLATE$(suffix $(BAREBOX_SOURCE))) $(DL_DIR)/$(BAREBOX_SOURCE) \ +		| tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) - +	touch $@ + +$(BAREBOX_DIR)/.patched: $(BAREBOX_DIR)/.unpacked +	toolchain/patch-kernel.sh $(BAREBOX_DIR) boot/barebox \ +		barebox-$(BAREBOX_VERSION)-\*.patch \ +		barebox-$(BAREBOX_VERSION)-\*.patch.$(ARCH) +	touch $@ + +$(BAREBOX_DIR)/.configured: $(BAREBOX_DIR)/.patched +	$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) $(BAREBOX_BOARD_DEFCONFIG)_defconfig +	touch $@ + +$(BAREBOX_DIR)/.built: $(BAREBOX_DIR)/.configured +	$(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) +	touch $@ + +$(BAREBOX_DIR)/.installed: $(BAREBOX_DIR)/.built +	cp $(BAREBOX_DIR)/barebox.bin $(BINARIES_DIR) +	touch $@ + +barebox: $(BAREBOX_DIR)/.installed + +ifeq ($(BR2_TARGET_BAREBOX),y) +TARGETS+=barebox + +# we NEED a board defconfig file +ifeq ($(BAREBOX_BOARD_DEFCONFIG),) +$(error No Barebox defconfig file. Check your BR2_TARGET_BAREBOX_BOARD_DEFCONFIG setting) +endif + +endif  | 
