From 6cc9d936a978d558211a0553ba3cdf9113ab9c96 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 30 May 2010 22:46:45 +0200 Subject: [PATCH] Add support for the Barebox bootloader Signed-off-by: Thomas Petazzoni --- boot/Config.in | 1 + boot/barebox/Config.in | 14 ++++++++++ boot/barebox/barebox.mk | 61 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 boot/barebox/Config.in create mode 100644 boot/barebox/barebox.mk diff --git a/boot/Config.in b/boot/Config.in index 78ff82c965..6bcc98af54 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 0000000000..0c90f03823 --- /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 0000000000..7c2cbc123e --- /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 -- 2.30.2