diff --git a/.gitignore b/.gitignore index 135fdeb..c2e6e9a 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,7 @@ barebox.map barebox.kwb barebox.kwbuart +barebox.canon-a1100.bin barebox-flash-image System.map Module.symvers diff --git a/Makefile b/Makefile index 63139c2..ea9fabf 100644 --- a/Makefile +++ b/Makefile @@ -997,7 +997,8 @@ .tmp_kallsyms* common/barebox_default_env* barebox.ldr \ scripts/bareboxenv-target barebox-flash-image \ Doxyfile.version barebox.srec barebox.s5p barebox.ubl \ - barebox.uimage barebox.spi barebox.kwb barebox.kwbuart + barebox.uimage barebox.spi barebox.kwb barebox.kwbuart \ + barebox.canon-a1100.bin # Directories & files removed with 'make mrproper' MRPROPER_DIRS += include/config include2 usr/include diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 1b0d7fe..337aef1 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -185,6 +185,16 @@ KBUILD_IMAGE := barebox.zynq endif +quiet_cmd_canon_a1100_image = DD $@ + cmd_canon_a1100_image = scripts/canon-a1100-image $< $@ || \ + echo "WARNING: Couldn't create Canon A1100 image due to previous errors." +barebox.canon-a1100.bin: $(KBUILD_BINARY) FORCE + $(call if_changed,canon_a1100_image) + +ifeq ($(CONFIG_MACH_CANON_A1100),y) +KBUILD_IMAGE := barebox.canon-a1100.bin +endif + KWBIMAGE_OPTS = \ -c -i $(srctree)/$(BOARD)/kwbimage.cfg -d $(TEXT_BASE) -e $(TEXT_BASE) diff --git a/scripts/canon-a1100-image b/scripts/canon-a1100-image new file mode 100755 index 0000000..6c08d74 --- /dev/null +++ b/scripts/canon-a1100-image @@ -0,0 +1,10 @@ +#!/bin/bash -e + +IFILE=$1 +OFILE=$2 + +dd if=/dev/zero bs=4M count=1 of=$OFILE 2>/dev/null +dd if=$IFILE of=$OFILE conv=notrunc 2>/dev/null + +# 0xffff0000: fe 3f f0 ea b 0xffc00000 +echo -n -e "\xfe\x3f\xf0\xea" | dd of=$OFILE bs=64K seek=63 conv=notrunc 2>/dev/null