# environment vaiables read: # BOARD = {ml402, denano} # TLB = {no, yes} # ENDIANESS = {eb, el} BOARD ?= ml402 TLB ?= no ENDIANESS ?= eb ifeq ($(ENDIANESS),el) ENDIAN_FLAGS=-EL else ENDIAN_FLAGS=-EB endif CFLAGS=$(ENDIAN_FLAGS) -Os -flto -Wl,-M -I. -I../libsys -msoft-float -march=r3000 -G0 -I../libsys/boards/$(BOARD) -D$(BOARD) LFLAGS=$(ENDIAN_FLAGS) -Os -flto ifeq ($(TLB),yes) CFLAGS+=-DSYS_IO_BASE=0xAC000000 -DSDRAM_BASE=0x80000000 -DFLASH_BASE_IO=0xA4000000 -DFLASH_BASE_MEM=0x88000000 LFLAGS+=-T bootloader_tlb.ld else CFLAGS+=-DSYS_IO_BASE=0xA0000000 -DSDRAM_BASE=0x40000000 -DFLASH_BASE_IO=0xA4000000 -DFLASH_BASE_MEM=0x00000000 LFLAGS+=-T bootloader.ld endif BUILD_DIR=./build/$(BOARD)/$(ENDIANESS) LIBS=-lc -lgcc CFLAGS += -DXCP_SIZE=4096 CC=mips-elf-gcc LD=mips-elf-gcc OBJDUMP=mips-elf-objdump OBJCOPY=mips-elf-objcopy ROMGEN=$(MIPS_HOME)/tools/romgen .PHONY: libsys all: $(BUILD_DIR) $(BUILD_DIR)/bootloader.elf $(BUILD_DIR)/bootloader_with_flash.elf OBJS-ml402=$(addprefix $(BUILD_DIR)/, startup.o kernel.o libsys.o board.o uart.o gdb_stub.o) OBJS-denano=$(addprefix $(BUILD_DIR)/, startup.o kernel.o libsys.o board.o uart.o gdb_stub.o) $(BUILD_DIR)/uart.o : ../libsys/uart.c $(CC) $(CFLAGS) -c -o $@ $< $(BUILD_DIR)/board.o : boards/$(BOARD)/board.c $(CC) $(CFLAGS) -c -o $@ $< $(BUILD_DIR)/gdb_stub.o : ../libsys/gdb_stub.c $(CC) $(CFLAGS) -c -o $@ $< $(BUILD_DIR)/%.o : %.c $(CC) $(CFLAGS) -c -o $@ $< $(BUILD_DIR)/%.o : %.S $(CC) $(CFLAGS) -c -o $@ $< $(BUILD_DIR)/bootloader.elf: $(OBJS-$(BOARD)) bootloader.c $(CC) $(CFLAGS) -o $(BUILD_DIR)/bootloader.o -g -c bootloader.c $(LD) $(LFLAGS) $(LIB_DIRS) $(OBJS-$(BOARD)) bootloader.o -o $@ $(LIBS) >$@.map $(OBJDUMP) -D $@ > $@.dis $(OBJCOPY) $@ -j ROM --output-target=binary $@.ROM.bin $(OBJCOPY) -O srec $@ $@.srec $(ROMGEN) $@.ROM.bin 11 $(ENDIAN_FLAGS) $(BUILD_DIR)/bootloader_with_flash.elf: $(OBJS-$(BOARD)) bootloader_with_flash.c ../cfiflash.c $(CC) $(CFLAGS) -o $(BUILD_DIR)/bootloader_with_flash.o -g -c bootloader_with_flash.c $(CC) $(CFLAGS) -o $(BUILD_DIR)/cfiflash.o -g -c ../cfiflash.c $(LD) $(LFLAGS) $(LIB_DIRS) $(OBJS-$(BOARD)) cfiflash.o bootloader_with_flash.o -o $@ $(LIBS) >$@.map $(OBJDUMP) -D $@ > $@.dis $(OBJCOPY) $@ -j ROM --output-target=binary $@.ROM.bin $(OBJCOPY) -O srec $@ $@.srec $(ROMGEN) $@.ROM.bin 11 $(ENDIAN_FLAGS) $(BUILD_DIR): mkdir -p $(BUILD_DIR) clean: rm -rf $(BUILD_DIR)/*.* > /dev/null mrproper: rm -rf $(BUILD_DIR)