+# -*- makefile -*-
+TOPDIR=..
+
+TARGET_ARCH = -ms
+#TARGET_ARCH = -bh8300-coff -ms
+#TARGET_ARCH = -bh8300-coff -ms -mrelax
+#TARGET_ARCH = -bm68k-coff -m68332
+#TARGET_ARCH = -bm68k-elf -m68332
+#TARGET_ARCH = -bi586-mingw32
+
+TOHIT=../tohit/tohit -d /dev/ttyS0
+
+BOARD_LAYOUT=id_cpu1
+#BOARD_LAYOUT=edk2638
+
+#CC = gcc
+CC = h8300-coff-gcc
+
+LINK = h8300-coff-ld
+
+OBJCOPY = h8300-coff-objcopy
+
+CFLAGS += $(TARGET_ARCH)
+CFLAGS += -g
+CFLAGS += -O2 -Wall
+
+CFLAGS += -I. -I../../_compiled/include
+
+
+LDFLAGS += $(TARGET_ARCH)
+#LDFLAGS += -Xlinker -Ttext -Xlinker 0x0FFE400
+LDFLAGS += -nostartfiles
+#LDFLAGS += -nodefaultlibs
+#LDFLAGS += -Xlinker -T -Xlinker h8300s.x
+LDFLAGS += -Xlinker -Map -Xlinker bloader.map
+LDFLAGS += --relax
+LDFLAGS += -L. -L../../_compiled/lib
+LDFLAGS += -lboot_fn
+
+CRT0_O = crt0.o
+
+LCSCRIPTB =
+
+HIT_BAUD = 19200
+#HIT_BAUD = 38400
+#CFLAGS += -DHIT_LOAD_BAUD=$(HIT_BAUD)
+
+#CFLAGS += -v
+#LDFLAGS += -v
+
+######################################################################
+# New rules
+
+.S.o:
+ $(CC) -D__ASSEMBLY__ $(AFLAGS) $(TARGET_ARCH) -c $< -o $@
+
+.c.s:
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -S $< -o $@
+
+######################################################################
+
+all : bloader.bin
+
+dep:
+ $(CC) $(CFLAGS) $(CPPFLAGS) -w -E -M *.c $(MORE_C_FILES) > depend
+
+depend:
+ @touch depend
+
+cleanapps : clean
+
+clean :
+ rm -f *.o
+ rm -f *.bin *.srec
+ rm -f bloader bloader-boot bloader-ram bloader-flash
+
+boot_fn.o : ../../_build/arch/h8300/generic/libs/boot/boot_fn.o
+ ln -s $< $@
+
+crt0.o : ../../_compiled/lib/crt0.o
+ ln -s $< $@
+
+#LDFORBOOT += -Xlinker -Ttext -Xlinker 0xffc000
+#LDFORBOOT += -Xlinker -Tdata -Xlinker 0xffc000
+#LDFORBOOT += -Xlinker -Tbss -Xlinker 0xffc000
+
+bloader :bloader.o $(BOOT_FN_O)
+ $(CC) $(LDFLAGS) -T $(BOARD_LAYOUT).ld-bload $(LDFORBOOT) $^ -o $@
+
+bloader-flash :bloader.o $(BOOT_FN_O)
+ $(CC) $(LDFLAGS) -T $(BOARD_LAYOUT).ld-flash $^ -o $@
+
+bloader-ram :bloader.o $(BOOT_FN_O)
+ $(CC) $(LDFLAGS) -T $(BOARD_LAYOUT).ld-ram $^ -o $@
+
+bloader-boot :bloader.o $(BOOT_FN_O)
+ $(CC) $(LDFLAGS) -T $(BOARD_LAYOUT).ld-boot $^ -o $@
+
+bloader.bin : bloader
+ $(OBJCOPY) --output-target=binary -S bloader bloader.bin
+
+# Load bloader to internal ram (in boot mode, all flash is erased)
+load : bloader.bin
+ $(TOHIT) --baud 4800 --command B --blockmode 128 bloader.bin /* boot program mode */
+# $(TOHIT) --command B bloader.bin
+ $(TOHIT) --baud $(HIT_BAUD) --upload --start 0 --length 0x400 bloader.rd
+# $(TOHIT) B 0 bloader.bin
+
+bloader1 :
+ ((cd ../boot ; rm *.o ; make ; ) ; rm *.o ; make bloader-ram; objdump --source bloader-ram ) 2>&1 | less
+
+
+# Use previously loaded bloader to load bloader to external ram
+load1 : bloader-ram
+ $(OBJCOPY) --output-target=binary -S bloader-ram bloader1.bin
+ $(OBJCOPY) --output-target=srec -S bloader-ram bloader1.srec
+ $(TOHIT) --baud $(HIT_BAUD) --blockmode 32 --start 0x200000 bloader1.bin
+ $(TOHIT) --baud $(HIT_BAUD) --upload --start 0x200000 --length 0x1A00 bloader1.rd
+ $(TOHIT) --baud $(HIT_BAUD) --go 0x200000
+
+# Use previously loaded bloader to store bloader in flash
+load2 : bloader-boot
+ $(OBJCOPY) --output-target=binary -S bloader-boot bloader2.bin
+ $(TOHIT) --baud $(HIT_BAUD) --erase --start 0x000000 --length 0x1600
+ $(TOHIT) --baud $(HIT_BAUD) --command 1 --blockmode 32 --start 0x000000 bloader2.bin
+ $(TOHIT) --baud $(HIT_BAUD) --upload --start 0x000000 --length 0x1600 --blockmode 32 bloader2.rd
+
+# Use previously loaded bloader to load bloader to internal ram as in boot-mode
+load3 : bloader.bin
+ $(TOHIT) --baud $(HIT_BAUD) --start 0xffc000 --blockmode 32 --go 0xffc000 bloader.bin
+
+read_bb :
+ $(TOHIT) --baud $(HIT_BAUD) --upload --start 0xffc000 --length 0x400 bloader.rd
+
+read_st :
+ $(TOHIT) --baud $(HIT_BAUD) --upload --start 0x280000 --length 0x1000 --blockmode 32 bloader.rd
+
+read_flash :
+ $(TOHIT) --baud $(HIT_BAUD) --upload --start 0x000000 --length 0x2000 bloader2.rd
+ cmp -l bloader2.bin bloader2.rd
+
+flash_prg :
+ $(TOHIT) --baud $(HIT_BAUD) --erase --start 0x010000 --length 0x80
+ $(TOHIT) --baud $(HIT_BAUD) --command 1 --blockmode 32 --start 0x010000 pat.bin
+ $(TOHIT) --baud $(HIT_BAUD) --upload --start 0x010000 --length 0x80 pat.rd
+ cmp -l pat.bin pat.rd
+
+flash_prg1 :
+ $(TOHIT) --baud $(HIT_BAUD) --erase --start 0x007000 --length 0x200
+ $(TOHIT) --baud $(HIT_BAUD) --command 1 --blockmode 32 --start 0x007000 pat1.bin
+ $(TOHIT) --baud $(HIT_BAUD) --upload --start 0x007000 --length 0x200 pat1.rd
+ cmp -l pat1.bin pat1.rd
+
+ram_test :
+ $(TOHIT) --baud $(HIT_BAUD) --wait-reply 1000 --blockmode 32 --start 0x200000 pat.bin
+# $(TOHIT) --baud $(HIT_BAUD) --break
+ sleep 1
+ $(TOHIT) --baud $(HIT_BAUD) --wait-reply 1000 --upload --start 0x200000 --length 0x0400 pat.rd
+ cmp -l pat.bin pat.rd
+
+reset :
+ $(TOHIT) --baud $(HIT_BAUD) --reset
+
+break :
+ $(TOHIT) --baud $(HIT_BAUD) --break
+
+goto0 :
+ $(TOHIT) --baud $(HIT_BAUD) --go 0xffc000
+
+goto1 :
+ $(TOHIT) --baud $(HIT_BAUD) --go 0x200000
+
+goto2 :
+ $(TOHIT) --baud $(HIT_BAUD) --go 0x000500
+
+
+-include depend