static void
arm_step_once ()
{
	int i;
	machine_config_t* mach = get_current_mach();
	ARM_CPU_State* cpu = get_current_cpu();
	/* workaround boot sequence for dual core, we need the first core initialize some variable for second core. */
	arm_core_t* core;
	for(i = 0; i < cpu->core_num; i++ ){
		core = &cpu->core[i];
		/* if CPU1_EN is set? */
			per_cpu_step(core);
	}
	/* for peripheral */
	mach->mach_io_do_cycle(cpu);
}
static void
ppc_step_once ()
{
	int i;
	/* workaround boot sequence for dual core, we need the first core initialize some variable for second core. */

	for(i = 0; i < gCPU.core_num; i++ ){
		current_core = &gCPU.core[i];
		/* if CPU1_EN is set? */
		if(!i || gCPU.eebpcr & 0x2000000)
			per_cpu_step(current_core);
	}
	/* for peripheral */
	skyeye_config_t* config = get_current_config();
	config->mach->mach_io_do_cycle(&gCPU);
	//skyeye_config.mach->mach_io_do_cycle(&gCPU);
}