- fixed bootloader makefile
- interupts disabled after bootloader - enable interrupts in board file git-svn-id: http://moon:8086/svn/mips@109 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
@@ -58,7 +58,7 @@ $(BUILD_DIR)/%.o : %.S
|
||||
|
||||
$(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
|
||||
$(LD) $(LFLAGS) $(LIB_DIRS) $(OBJS-$(BOARD)) $(BUILD_DIR)/bootloader.o -o $@ $(LIBS) >$@.map
|
||||
$(OBJDUMP) -D $@ > $@.dis
|
||||
$(OBJCOPY) $@ -j ROM --output-target=binary $@.ROM.bin
|
||||
$(OBJCOPY) -O srec $@ $@.srec
|
||||
@@ -67,7 +67,7 @@ $(BUILD_DIR)/bootloader.elf: $(OBJS-$(BOARD)) bootloader.c
|
||||
$(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
|
||||
$(LD) $(LFLAGS) $(LIB_DIRS) $(OBJS-$(BOARD)) $(BUILD_DIR)/cfiflash.o $(BUILD_DIR)/bootloader_with_flash.o -o $@ $(LIBS) >$@.map
|
||||
$(OBJDUMP) -D $@ > $@.dis
|
||||
$(OBJCOPY) $@ -j ROM --output-target=binary $@.ROM.bin
|
||||
$(OBJCOPY) -O srec $@ $@.srec
|
||||
|
||||
@@ -152,7 +152,7 @@ void Exec_at(void *pEntry)
|
||||
(
|
||||
// Enable User Mode and Interrupts on RFE
|
||||
// Exception Vector = 0xBFC00080
|
||||
"li $26, 0x1000000C\n"
|
||||
"li $26, 0x10000008\n"
|
||||
"mtc0 $26, $12\n"
|
||||
);
|
||||
|
||||
@@ -178,13 +178,6 @@ void PrintCPUinfo(void)
|
||||
|
||||
char *cpu_type_str[7] = {"invalid", "R2000", "R3000", "R6000", "R4000", "reserved", "R6000A"};
|
||||
|
||||
// Print Status register
|
||||
result = CP0_SR_read();
|
||||
|
||||
sputs("Status : ");
|
||||
print_word(result);
|
||||
sputs("\n");
|
||||
|
||||
// Print Revision
|
||||
result = CP0_PRID_read();
|
||||
rev_id = (result >> 8) & 0xFF;
|
||||
@@ -201,6 +194,8 @@ void PrintCPUinfo(void)
|
||||
|
||||
sputs("\n");
|
||||
|
||||
// Print Status register
|
||||
sputs("Status : ");print_word(CP0_SR_read());sputs("\n");
|
||||
}
|
||||
|
||||
#define MAX_IMG_SIZE (1024*1024) // bytes
|
||||
@@ -220,7 +215,8 @@ int main(int argc, char *argv[])
|
||||
volatile uint32_t *pSdram32 = (uint32_t*)SDRAM_BASE;
|
||||
|
||||
sputs("\nMIPS bootloader\n");
|
||||
|
||||
PrintCPUinfo();
|
||||
|
||||
// ----------------------------------------------------------
|
||||
sputs("Loading image from flash at ");print_word((int)pFlashMem);sputs("\n");
|
||||
img_hdr = *((flash_img_hdr_t*)pFlashMem);
|
||||
|
||||
@@ -11,17 +11,6 @@ _start:
|
||||
# set stack pointer
|
||||
la $sp, stack_ptr
|
||||
|
||||
# Set status register
|
||||
# Kernel mode (SR[1]=0), Int disabled(SR[0]=0), after RFE into main
|
||||
li $26, 0x1040000C
|
||||
mtc0 $26, $12
|
||||
li $26, 0x00000000
|
||||
mtc0 $26, $13
|
||||
|
||||
mfc0 $26, $15
|
||||
nop
|
||||
mtc0 $26, $31
|
||||
|
||||
# Invalidate I-Cache
|
||||
cop0 32
|
||||
|
||||
|
||||
@@ -91,7 +91,8 @@ void board_init(void)
|
||||
|
||||
// Setup interrupt support
|
||||
interrupt_init();
|
||||
|
||||
interrupt_enable_all();
|
||||
|
||||
// Do some initializations here
|
||||
}
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ void board_init(void)
|
||||
|
||||
// Setup interrupt support
|
||||
interrupt_init();
|
||||
interrupt_enable_all();
|
||||
|
||||
// Do some initializations here
|
||||
}
|
||||
|
||||
@@ -56,12 +56,6 @@ $install: lw $v0, 0($t1)
|
||||
jalr $k0
|
||||
nop
|
||||
|
||||
# Set kernel-mode and enable interrupts
|
||||
mfc0 $a0, $12
|
||||
li $a1, 3
|
||||
or $a0, $a1
|
||||
mtc0 $a0, $12
|
||||
|
||||
# Set environment
|
||||
li $a0, 1
|
||||
la $a1, argv
|
||||
|
||||
Reference in New Issue
Block a user