\r
# DO NOT use thumb mode in the phase 1 bootloader since that generates a section with glue code\r
ARMSRC = fromflash.c \r
-THUMBSRC = usb.c version.c bootrom.c\r
+THUMBSRC = usb.c bootrom.c\r
ASMSRC = ram-reset.s flash-reset.s\r
\r
+## There is a strange bug with the linker: Sometimes it will not emit the glue to call\r
+## BootROM from ARM mode. The symbol is emitted, but the section will be filled with\r
+## zeroes. As a temporary workaround, do not use thumb for the phase 2 bootloader\r
+## -- Henryk Plötz <henryk@ploetzli.ch> 2009-09-01\r
+ARMSRC := $(ARMSRC) $(THUMBSRC)\r
+THUMBSRC := \r
+\r
# Do not move this inclusion before the definition of {THUMB,ASM,ARM}SRC\r
include ../common/Makefile.common\r
\r
all: $(OBJDIR)/bootrom.s19\r
\r
-$(OBJDIR)/bootrom.elf: $(ASMOBJ) $(ARMOBJ) $(THUMBOBJ)\r
+$(OBJDIR)/bootrom.elf: $(VERSIONOBJ) $(ASMOBJ) $(ARMOBJ) $(THUMBOBJ)\r
$(LD) -g -Tldscript-flash --oformat elf32-littlearm -Map=$(patsubst %.elf,%.map,$@) -o $@ $^\r
\r
clean:\r