58 lines
1.9 KiB
Makefile
58 lines
1.9 KiB
Makefile
ENDIAN='big'
|
|
|
|
ifeq ($(ENDIAN), 'big')
|
|
ENDIAN_FLAGS=-EB
|
|
LIB_DIRS=-L $(MIPS_TOOLS_PREFIX)/mipsel-elf/lib/eb -L $(MIPS_TOOLS_PREFIX)/lib/gcc/mipsel-elf/$(MIPS_GCC_VER)/eb
|
|
else
|
|
ENDIAN_FLAGS=-EL
|
|
LIB_DIRS=-L $(MIPS_TOOLS_PREFIX)/mipsel-elf/lib -L $(MIPS_TOOLS_PREFIX)/lib/gcc/mipsel-elf/$(MIPS_GCC_VER)
|
|
endif
|
|
|
|
CFLAGS=$(ENDIAN_FLAGS) -Os -I. -I../ -I../libsys -msoft-float -march=r3000
|
|
LFLAGS=$(ENDIAN_FLAGS) -M
|
|
|
|
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
|
|
|
|
LIBS=-lc -lgcc
|
|
|
|
CC=mipsel-elf-gcc
|
|
LD=mipsel-elf-ld
|
|
OBJDUMP=mipsel-elf-objdump
|
|
OBJCOPY=mipsel-elf-objcopy
|
|
|
|
.PHONY: libsys
|
|
|
|
all: bootloader_flash
|
|
|
|
libsys: startup_boot.S init_boot.S kernel_boot.S libsys_boot.c
|
|
$(CC) $(CFLAGS) -c startup_boot.S -o startup.o
|
|
$(CC) $(CFLAGS) -c init_boot.S -o init.o
|
|
$(CC) $(CFLAGS) -c kernel_boot.S -o kernel.o
|
|
$(CC) $(CFLAGS) -c libsys_boot.c -o libsys.o
|
|
|
|
bootloader: libsys bootloader.c
|
|
$(CC) $(CFLAGS) -g -c bootloader.c
|
|
$(LD) $(LFLAGS) $(LIB_DIRS) startup.o init.o kernel.o libsys.o bootloader.o -o $@.elf $(LIBS) >$@.map
|
|
$(OBJDUMP) -d $@.elf > $@.dis
|
|
$(OBJCOPY) $@.elf -O binary $@.ROM.bin
|
|
$(OBJCOPY) -O srec $@.elf $@.srec
|
|
romgen $@.ROM.bin 10 $(ENDIAN_FLAGS)
|
|
|
|
bootloader_flash: libsys bootloader_with_flash.c
|
|
$(CC) $(CFLAGS) -g -c bootloader_with_flash.c
|
|
$(CC) $(CFLAGS) -g -c ../cfiflash.c
|
|
$(LD) $(LFLAGS) $(LIB_DIRS) startup.o init.o kernel.o libsys.o cfiflash.o bootloader_with_flash.o -o $@.elf $(LIBS) >$@.map
|
|
$(OBJDUMP) -d $@.elf > $@.dis
|
|
$(OBJCOPY) $@.elf -O binary $@.ROM.bin
|
|
$(OBJCOPY) -O srec $@.elf $@.srec
|
|
romgen $@.ROM.bin 11 $(ENDIAN_FLAGS)
|
|
|
|
clean:
|
|
rm -rf *.o *.bin *.map *.dis *.srec *.elf *.vhd* *.tcl bootloader > /dev/null
|