static void
mpc8641d_io_reset (void *state)
{
	mpc8641d_io_t *io = &mpc8641d_io;

	/* Just for convience of boot linux */
	//io->conf.ccsrbar = 0x000E0000;
	io->pic_global.frr = 0x6b0102;
	io->por_conf.porpllsr = 0x40004;
	io->lb_ctrl.lcrr = 0x80000008;
	io->i2c_reg.i2csr = 0x81;
	io->i2c_reg.i2cdfsrr = 0x10;
	io->pic_ram.ctpr0 = 0x0000000F;
	io->pic_global.svr = 0xFFFF;
	io->mpic.ipivpr[0] = io->mpic.ipivpr[1] = io->mpic.ipivpr[2] = io->mpic.ipivpr[3] = 0x80000000;

	io->uart[0].ier = 0x0;
	io->uart[0].iir = 0x1;
	io->uart[0].dlb = 0x1;
	//gCPU.mpic.iivpr[UART_IRQ] = 0x80800000;

	/* initialize interrupt controller */
	int i = 0;
	for (; i < 32; i++) {
		io->pic_ram.iidr[i] = 0x1;
		io->pic_ram.iivpr[i] = 0x80800000;
	}
	mpc8641d_boot_linux();
}
static void
mpc8641d_io_reset (void *state)
{
	mpc8641d_io_t *io = &mpc8641d_io;

	/* Just for convience of boot linux */
	//io->conf.ccsrbar = 0x000E0000;
	io->pic_global.frr = 0x6b0102;
	io->por_conf.porpllsr = 0x40004;
	io->lb_ctrl.lcrr = 0x80000008;
	io->i2c_reg.i2csr = 0x81;
	io->i2c_reg.i2cdfsrr = 0x10;
	io->pic_ram.ctpr0 = 0x0000000F;
	io->pic_global.svr = 0xFFFF;
	io->mpic.ipivpr[0] = io->mpic.ipivpr[1] = io->mpic.ipivpr[2] = io->mpic.ipivpr[3] = 0x80000000;

	io->uart[0].ier = 0x0;
	io->uart[0].iir = 0x1;
	io->uart[0].dlb = 0x1;
	//gCPU.mpic.iivpr[UART_IRQ] = 0x80800000;

	/* initialize interrupt controller */
	int i = 0;
	for (; i < 32; i++) {
		io->pic_ram.iidr[i] = 0x1;
		io->pic_ram.iivpr[i] = 0x80800000;
	}

	/* Match os to select boot setting */
	skyeye_config_t *config = get_current_config();
	if (!strcmp(config->os->os_name, "linux")) {
		sky_pref_t* pref = get_skyeye_pref();
		if(pref->user_mode_sim)
			mpc8641d_boot_application();
		else
			mpc8641d_boot_linux();
	} else if (!strcmp(config->os->os_name, "vxworks"))
	{
		mpc8641d_boot_vxworks();
	}

}