- bootloader multi target
git-svn-id: http://moon:8086/svn/mips@98 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
+33
-25
@@ -1,9 +1,15 @@
|
||||
ENDIAN='big'
|
||||
# environment vaiables read:
|
||||
# BOARD = {ml402, denano}
|
||||
# TLB = {no, yes}
|
||||
# ENDIANESS = {eb, el}
|
||||
BOARD ?= ml402
|
||||
TLB ?= no
|
||||
ENDIANESS ?= eb
|
||||
|
||||
ifeq ($(ENDIAN), 'big')
|
||||
ENDIAN_FLAGS=-EB
|
||||
else
|
||||
ifeq ($(ENDIANESS),el)
|
||||
ENDIAN_FLAGS=-EL
|
||||
else
|
||||
ENDIAN_FLAGS=-EB
|
||||
endif
|
||||
|
||||
CFLAGS=$(ENDIAN_FLAGS) -Os -I. -I../ -I../libsys -msoft-float -march=r3000 -G0
|
||||
@@ -17,6 +23,8 @@ else
|
||||
LFLAGS+=-T bootloader.ld
|
||||
endif
|
||||
|
||||
BUILD_DIR=./build/$(BOARD)/$(ENDIANESS)
|
||||
|
||||
LIBS=-lc -lgcc
|
||||
CFLAGS += -DXCP_SIZE=4096
|
||||
|
||||
@@ -28,40 +36,40 @@ ROMGEN=$(MIPS_HOME)/tools/romgen
|
||||
|
||||
.PHONY: libsys
|
||||
|
||||
all: bootloader_flash
|
||||
all: $(BUILD_DIR) $(BUILD_DIR)/bootloader.elf $(BUILD_DIR)/bootloader_with_flash.elf
|
||||
|
||||
libsys: startup_boot.S kernel_boot.S libsys_boot.c
|
||||
$(CC) $(CFLAGS) -c startup_boot.S -o startup.o
|
||||
$(CC) $(CFLAGS) -c kernel_boot.S -o kernel.o
|
||||
$(CC) $(CFLAGS) -c libsys_boot.c -o libsys.o
|
||||
OBJS-ml402=$(addprefix $(BUILD_DIR)/, startup.o kernel.o libsys.o)
|
||||
OBJS-denano=$(addprefix $(BUILD_DIR)/, startup.o kernel.o libsys.o)
|
||||
|
||||
$(BUILD_DIR)/%.o : %.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
bootloader: libsys bootloader.c
|
||||
$(BUILD_DIR)/%.o : %.S
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/bootloader.elf: $(OBJS-$(BOARD)) bootloader.c
|
||||
$(CC) $(CFLAGS) -g -c bootloader.c
|
||||
$(LD) $(LFLAGS) $(LIB_DIRS) startup.o kernel.o libsys.o bootloader.o -o $@.elf $(LIBS) >$@.map
|
||||
$(LD) $(LFLAGS) $(LIB_DIRS) $(OBJS-$(BOARD)) bootloader.o -o $@.elf $(LIBS) >$@.map
|
||||
$(OBJDUMP) -D $@.elf > $@.dis
|
||||
$(OBJCOPY) $@.elf -j ROM --output-target=binary $@.ROM.bin
|
||||
$(OBJCOPY) -O srec $@.elf $@.srec
|
||||
$(ROMGEN) $@.ROM.bin 11 $(ENDIAN_FLAGS)
|
||||
|
||||
bootloader_flash: libsys bootloader_with_flash.c
|
||||
|
||||
$(BUILD_DIR)/bootloader_with_flash.elf: $(OBJS-$(BOARD)) bootloader_with_flash.c ../cfiflash.c
|
||||
$(CC) $(CFLAGS) -g -c bootloader_with_flash.c
|
||||
$(CC) $(CFLAGS) -g -c ../cfiflash.c
|
||||
$(LD) $(LFLAGS) $(LIB_DIRS) startup.o kernel.o libsys.o cfiflash.o bootloader_with_flash.o -o $@.elf $(LIBS) >$@.map
|
||||
$(LD) $(LFLAGS) $(LIB_DIRS) $(OBJS-$(BOARD)) cfiflash.o bootloader_with_flash.o -o $@.elf $(LIBS) >$@.map
|
||||
$(OBJDUMP) -D $@.elf > $@.dis
|
||||
$(OBJCOPY) $@.elf -j ROM --output-target=binary $@.ROM.bin
|
||||
$(OBJCOPY) -O srec $@.elf $@.srec
|
||||
$(ROMGEN) $@.ROM.bin 11 $(ENDIAN_FLAGS)
|
||||
|
||||
test: libsys test.c ../libsys/irq.c ../libsys/kernel.S ../libsys/xcpt.c
|
||||
$(CC) $(CFLAGS) -g -c test.c
|
||||
$(CC) $(CFLAGS) -g -c ../libsys/irq.c
|
||||
$(CC) $(CFLAGS) -g -c ../libsys/kernel.S
|
||||
$(CC) $(CFLAGS) -c ../libsys/xcpt.c -o xcpt.o
|
||||
$(LD) $(LFLAGS) $(LIB_DIRS) startup.o kernel.o irq.o xcpt.o libsys.o test.o -o $@.elf $(LIBS) >$@.map
|
||||
$(OBJDUMP) -D $@.elf > $@.dis
|
||||
$(OBJCOPY) $@.elf -j ROM --output-target=binary $@.ROM.bin
|
||||
$(OBJCOPY) -O ihex -I binary $@.ROM.bin $@.ihex
|
||||
$(ROMGEN) $@.ROM.bin 11 $(ENDIAN_FLAGS)
|
||||
$(BUILD_DIR):
|
||||
mkdir -p $(BUILD_DIR)
|
||||
|
||||
clean:
|
||||
rm -rf *.o *.bin *.map *.dis *.srec *.elf *.vhd* *.tcl bootloader > /dev/null
|
||||
rm -rf $(BUILD_DIR)/*.* > /dev/null
|
||||
|
||||
mrproper:
|
||||
rm -rf $(BUILD_DIR)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user