void c_main(void) { load_args(); if (fw_args->debug_ops > 0) { do_debug(); return ; } switch (CPU_ID) { case 0x4740: gpio_init_4740(); pll_init_4740(); serial_init(); sdram_init_4740(); break; case 0x4760: gpio_init_4760(); cpm_start_all_4760(); serial_init(); pll_init_4760(); sdram_init_4760(); break; default: return; } #if 1 serial_puts("Setup xburst CPU args as:\n"); serial_put_hex(CPU_ID); serial_put_hex(CFG_EXTAL); serial_put_hex(CFG_CPU_SPEED); serial_put_hex(PHM_DIV); serial_put_hex(fw_args->use_uart); serial_put_hex(CONFIG_BAUDRATE); serial_put_hex(SDRAM_BW16); serial_put_hex(SDRAM_BANK4); serial_put_hex(SDRAM_ROW); serial_put_hex(SDRAM_COL); serial_put_hex(REG_CPM_CPCCR); #endif serial_puts("xburst stage1 run finish !\n"); if (CPU_ID == 0x4760) { __asm__ ( "li $31, 0xbfc012e0 \n\t" "jr $31 \n\t " ); } }
void do_debug() { #if 0 switch (fw_args->debug_ops) { case 1: //sdram check gpio_init_4760(); serial_init(); sdram_init_4760(); REG8(USB_REG_INDEX) = 1; REG32(USB_FIFO_EP1) = check_sdram(fw_args->start, fw_args->size); REG32(USB_FIFO_EP1) = 0x0; REG8(USB_REG_INCSR) |= USB_INCSR_INPKTRDY; break; case 2: //set gpio gpio_test(1, fw_args->pin_num); break; case 3: //clear gpio gpio_test(0, fw_args->pin_num); break; } #endif }