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