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 |