Exemple #1
0
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 "
			);
	}
}
Exemple #2
0
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
}