/* * bsp_start * * This routine does the bulk of the system initialization. */ void bsp_start( void ) { unsigned int compare = 0; mips_set_sr( 0x7f00 ); /* all interrupts unmasked but globally off */ /* depend on the IRC to take care of things */ __asm__ volatile ("mtc0 %0, $11\n" :: "r" (compare)); mips_install_isr_entries(); }
void bsp_reset(void) { void (*reset_func)(void); reset_func = (void *)0xbfc00000; mips_set_sr( 0x00200000 ); /* all interrupts off, boot exception vectors */ /* Try to restart bootloader */ reset_func(); }
int mips_default_isr( int vector ) { unsigned int sr, sr2; unsigned int cause; mips_get_sr( sr ); mips_get_cause( cause ); sr2 = sr & ~0xffff; mips_set_sr(sr2); printk( "Unhandled isr exception: vector 0x%02x, cause 0x%08X, sr 0x%08X\n", vector, cause, sr ); rtems_fatal_error_occurred(1); return 0; }
/* * bsp_start * * This routine does the bulk of the system initialization. */ void bsp_start( void ) { /* uint32_t board_ID = 0x420; */ static int j = 1; int pci_init_retval; /* * Note: This is the value that works for qemu, and it was * unable to be validated on the actual hardware. */ mips_set_sr( 0x04100000 ); bsp_interrupt_initialize(); /* * XXX need to figure out a real value. :) * This works for the qemu simulation, but timeing may * be off for the actual hardware. */ bsp_clicks_per_microsecond = 100; #if 1 while ( j != 1 ) { int i; printk ("."); for (i=0; i<1000; i++); } #endif /* * init PCI Bios interface... */ pci_init_retval = pci_initialize(); if (pci_init_retval != PCIB_ERR_SUCCESS) { printk("PCI bus: could not initialize PCI BIOS interface\n"); } BSP_i8259s_init(); }