diff --git a/src/bootloader/Makefile b/src/bootloader/Makefile index 91d5e03..726e226 100644 --- a/src/bootloader/Makefile +++ b/src/bootloader/Makefile @@ -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 diff --git a/src/bootloader/bootloader.c b/src/bootloader/bootloader.c index 5af0b57..f51ee85 100644 --- a/src/bootloader/bootloader.c +++ b/src/bootloader/bootloader.c @@ -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); diff --git a/src/bootloader/startup.S b/src/bootloader/startup.S index acb20cf..f908369 100644 --- a/src/bootloader/startup.S +++ b/src/bootloader/startup.S @@ -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 diff --git a/src/libsys/boards/denano/board.c b/src/libsys/boards/denano/board.c index 0bf2b13..2f4026b 100644 --- a/src/libsys/boards/denano/board.c +++ b/src/libsys/boards/denano/board.c @@ -91,7 +91,8 @@ void board_init(void) // Setup interrupt support interrupt_init(); - + interrupt_enable_all(); + // Do some initializations here } diff --git a/src/libsys/boards/ml402/board.c b/src/libsys/boards/ml402/board.c index 16ca627..072dbb8 100644 --- a/src/libsys/boards/ml402/board.c +++ b/src/libsys/boards/ml402/board.c @@ -91,6 +91,7 @@ void board_init(void) // Setup interrupt support interrupt_init(); + interrupt_enable_all(); // Do some initializations here } diff --git a/src/libsys/startup.S b/src/libsys/startup.S index a441060..9a029d5 100644 --- a/src/libsys/startup.S +++ b/src/libsys/startup.S @@ -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