diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2010-05-30 22:46:45 +0200 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2010-06-12 16:03:24 +0200 |
commit | 6cc9d936a978d558211a0553ba3cdf9113ab9c96 (patch) | |
tree | d0112417badde5c8395aa414f22c2214240fc52c /boot | |
parent | ef81363d69b7293e3c8088a0939d34a10845e675 (diff) | |
download | buildroot-novena-6cc9d936a978d558211a0553ba3cdf9113ab9c96.tar.gz buildroot-novena-6cc9d936a978d558211a0553ba3cdf9113ab9c96.zip |
Add support for the Barebox bootloader
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'boot')
-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 |