diff options
Diffstat (limited to 'boot/at91dataflashboot')
| -rw-r--r-- | boot/at91dataflashboot/Config.in | 25 | ||||
| -rw-r--r-- | boot/at91dataflashboot/at91dataflashboot-1.05-do-not-install.patch | 22 | ||||
| -rw-r--r-- | boot/at91dataflashboot/at91dataflashboot-1.05-eabi-fixes.patch | 43 | ||||
| -rw-r--r-- | boot/at91dataflashboot/at91dataflashboot.mk | 45 | 
4 files changed, 135 insertions, 0 deletions
| diff --git a/boot/at91dataflashboot/Config.in b/boot/at91dataflashboot/Config.in new file mode 100644 index 000000000..25b9723c8 --- /dev/null +++ b/boot/at91dataflashboot/Config.in @@ -0,0 +1,25 @@ +menuconfig BR2_TARGET_DATAFLASHBOOT +       depends on BR2_arm +       bool "AT91 DataFlashBoot" + +if BR2_TARGET_DATAFLASHBOOT + +choice +	prompt "Target Architecture" +	default BR2_TARGET_DATAFLASHBOOT_AT91RM9200 +	help +	  Select Chip for which Dataflash boot should be built +	  Currently only AT91RM9200 Supported + +config BR2_TARGET_DATAFLASHBOOT_AT91RM9200 +	bool "AT91RM9200" + +config BR2_TARGET_DATAFLASHBOOT_AT91SAM9261 +	bool "AT91SAM9261" + +config BR2_TARGET_DATAFLASHBOOT_AT91SAM9261S +	bool "AT91SAM9261S" + +endchoice + +endif # BR2_TARGET_DATAFLASHBOOT diff --git a/boot/at91dataflashboot/at91dataflashboot-1.05-do-not-install.patch b/boot/at91dataflashboot/at91dataflashboot-1.05-do-not-install.patch new file mode 100644 index 000000000..41d97ad20 --- /dev/null +++ b/boot/at91dataflashboot/at91dataflashboot-1.05-do-not-install.patch @@ -0,0 +1,22 @@ +Disable the automatic installation of at91dataflashboot since it tries +to install things to /tftpboot, which is not possible when not +building as root. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + Makefile |    2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: at91dataflashboot-1.05/Makefile +=================================================================== +--- at91dataflashboot-1.05.orig/Makefile ++++ at91dataflashboot-1.05/Makefile +@@ -40,7 +40,7 @@ +  + I=config.h com.h dataflash.h embedded_services.h main.h stdio.h include/AT91RM9200.h include/lib_AT91RM9200.h  +  +-all: 	clean $(BINNAME) $(LSSNAME) install ++all: 	clean $(BINNAME) $(LSSNAME) + 	$(SIZE) $(OUTNAME) +  + # C objects here diff --git a/boot/at91dataflashboot/at91dataflashboot-1.05-eabi-fixes.patch b/boot/at91dataflashboot/at91dataflashboot-1.05-eabi-fixes.patch new file mode 100644 index 000000000..e38905f7c --- /dev/null +++ b/boot/at91dataflashboot/at91dataflashboot-1.05-eabi-fixes.patch @@ -0,0 +1,43 @@ +Get at91dataflashboot to build with EABI toolchains, by providing the +__aeabi_uidiv and __aeabi_uidivmod symbols. The code is based on +U-Boot's code. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + _udivsi3.S |   14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +Index: DataflashBoot-1.05/_udivsi3.S +=================================================================== +--- DataflashBoot-1.05.orig/_udivsi3.S ++++ DataflashBoot-1.05/_udivsi3.S +@@ -12,8 +12,11 @@ + 	.text + 	.globl	 __udivsi3 + 	.type  __udivsi3       ,function ++        .globl  __aeabi_uidiv ++        .type   __aeabi_uidiv ,function + 	.align	0 +  __udivsi3      : ++ __aeabi_uidiv: + 	cmp	divisor, #0 + 	beq	Ldiv0 + 	mov	curbit, #1 +@@ -68,6 +71,17 @@ + 	mov	r0, #0			@ about as wrong as it could be + 	ldmia	sp!, {pc} + 	.size  __udivsi3       , . -  __udivsi3 ++ ++.globl __aeabi_uidivmod ++__aeabi_uidivmod: ++ ++        stmfd   sp!, {r0, r1, ip, lr} ++        bl      __aeabi_uidiv ++        ldmfd   sp!, {r1, r2, ip, lr} ++        mul     r3, r0, r2 ++        sub     r1, r1, r3 ++        mov     pc, lr ++ + /* # 235 "libgcc1.S" */ + /* # 320 "libgcc1.S" */ + /* # 421 "libgcc1.S" */ diff --git a/boot/at91dataflashboot/at91dataflashboot.mk b/boot/at91dataflashboot/at91dataflashboot.mk new file mode 100644 index 000000000..d11f842d8 --- /dev/null +++ b/boot/at91dataflashboot/at91dataflashboot.mk @@ -0,0 +1,45 @@ +############################################################# +# +# DataFlashBoot +# +############################################################# +DATAFLASHBOOT_VERSION:=1.05 +DATAFLASHBOOT_NAME:=DataflashBoot-$(DATAFLASHBOOT_VERSION) +DATAFLASHBOOT_SITE:=ftp://www.at91.com/pub/buildroot/ +DATAFLASHBOOT_SOURCE:=$(DATAFLASHBOOT_NAME).tar.bz2 +DATAFLASHBOOT_DIR:=$(BUILD_DIR)/at91dataflashboot-$(DATAFLASHBOOT_VERSION) +DATAFLASHBOOT_BINARY:=$(DATAFLASHBOOT_NAME).bin + +$(DL_DIR)/$(DATAFLASHBOOT_SOURCE): +	 $(call DOWNLOAD,$(DATAFLASHBOOT_SITE),$(DATAFLASHBOOT_SOURCE)) + +$(DATAFLASHBOOT_DIR)/.unpacked: $(DL_DIR)/$(DATAFLASHBOOT_SOURCE) +	mkdir -p $(@D) +	$(BZCAT) $(DL_DIR)/$(DATAFLASHBOOT_SOURCE) | tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) - +	touch $(DATAFLASHBOOT_DIR)/.unpacked + +$(DATAFLASHBOOT_DIR)/.patched: $(DATAFLASHBOOT_DIR)/.unpacked +	toolchain/patch-kernel.sh $(@D) boot/at91dataflashboot \ +		at91dataflashboot-$(DATAFLASHBOOT_VERSION)-\*.patch + +$(DATAFLASHBOOT_DIR)/$(DATAFLASHBOOT_BINARY): $(DATAFLASHBOOT_DIR)/.patched +	ls $(DATAFLASHBOOT_DIR)/.unpacked +	make -C $(DATAFLASHBOOT_DIR) CROSS_COMPILE=$(TARGET_CROSS) + +dataflashboot-clean: +	make -C $(DATAFLASHBOOT_DIR) clean + +dataflashboot-dirclean: +	rm -rf $(DATAFLASHBOOT_DIR) + +dataflash:	 $(DATAFLASHBOOT_DIR)/$(DATAFLASHBOOT_BINARY) +	cp $(DATAFLASHBOOT_DIR)/$(DATAFLASHBOOT_BINARY) $(BINARIES_DIR) + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(BR2_TARGET_DATAFLASHBOOT),y) +TARGETS+=dataflash +endif | 
