85 lines
2.5 KiB
Makefile
85 lines
2.5 KiB
Makefile
# 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)
|
|
|