Revision fc0b2c0f
b/cpu-exec.c | ||
---|---|---|
339 | 339 |
} |
340 | 340 |
} |
341 | 341 |
#elif defined(TARGET_PPC) |
342 |
#if 0 |
|
343 | 342 |
if ((interrupt_request & CPU_INTERRUPT_RESET)) { |
344 | 343 |
cpu_reset(env); |
345 | 344 |
} |
346 |
#endif |
|
347 | 345 |
if (interrupt_request & CPU_INTERRUPT_HARD) { |
348 | 346 |
ppc_hw_interrupt(env); |
349 | 347 |
if (env->pending_interrupts == 0) |
b/hw/ppc.c | ||
---|---|---|
131 | 131 |
/* Level sensitive - active low */ |
132 | 132 |
if (level) { |
133 | 133 |
LOG_IRQ("%s: reset the CPU\n", __func__); |
134 |
env->interrupt_request |= CPU_INTERRUPT_EXITTB; |
|
135 |
/* XXX: TOFIX */ |
|
136 |
#if 0 |
|
137 |
cpu_reset(env); |
|
138 |
#else |
|
139 |
qemu_system_reset_request(); |
|
140 |
#endif |
|
134 |
cpu_interrupt(env, CPU_INTERRUPT_RESET); |
|
141 | 135 |
} |
142 | 136 |
break; |
143 | 137 |
case PPC6xx_INPUT_SRESET: |
... | ... | |
214 | 208 |
case PPC970_INPUT_HRESET: |
215 | 209 |
/* Level sensitive - active low */ |
216 | 210 |
if (level) { |
217 |
#if 0 // XXX: TOFIX |
|
218 |
LOG_IRQ("%s: reset the CPU\n", __func__); |
|
219 |
cpu_reset(env); |
|
220 |
#endif |
|
211 |
cpu_interrupt(env, CPU_INTERRUPT_RESET); |
|
221 | 212 |
} |
222 | 213 |
break; |
223 | 214 |
case PPC970_INPUT_SRESET: |
b/hw/ppc405_uc.c | ||
---|---|---|
1769 | 1769 |
target_ulong dbsr; |
1770 | 1770 |
|
1771 | 1771 |
printf("Reset PowerPC core\n"); |
1772 |
env->interrupt_request |= CPU_INTERRUPT_EXITTB; |
|
1773 |
/* XXX: TOFIX */ |
|
1774 |
#if 0 |
|
1775 |
cpu_reset(env); |
|
1776 |
#else |
|
1777 |
qemu_system_reset_request(); |
|
1778 |
#endif |
|
1772 |
cpu_interrupt(env, CPU_INTERRUPT_RESET); |
|
1779 | 1773 |
dbsr = env->spr[SPR_40x_DBSR]; |
1780 | 1774 |
dbsr &= ~0x00000300; |
1781 | 1775 |
dbsr |= 0x00000100; |
... | ... | |
1787 | 1781 |
target_ulong dbsr; |
1788 | 1782 |
|
1789 | 1783 |
printf("Reset PowerPC chip\n"); |
1790 |
env->interrupt_request |= CPU_INTERRUPT_EXITTB; |
|
1791 |
/* XXX: TOFIX */ |
|
1792 |
#if 0 |
|
1793 |
cpu_reset(env); |
|
1794 |
#else |
|
1795 |
qemu_system_reset_request(); |
|
1796 |
#endif |
|
1784 |
cpu_interrupt(env, CPU_INTERRUPT_RESET); |
|
1797 | 1785 |
/* XXX: TODO reset all internal peripherals */ |
1798 | 1786 |
dbsr = env->spr[SPR_40x_DBSR]; |
1799 | 1787 |
dbsr &= ~0x00000300; |
b/target-ppc/cpu.h | ||
---|---|---|
2051 | 2051 |
PPC_INTERRUPT_PERFM, /* Performance monitor interrupt */ |
2052 | 2052 |
}; |
2053 | 2053 |
|
2054 |
/* CPU should be reset next, restart from scratch afterwards */ |
|
2055 |
#define CPU_INTERRUPT_RESET CPU_INTERRUPT_TGT_INT_0 |
|
2056 |
|
|
2054 | 2057 |
/*****************************************************************************/ |
2055 | 2058 |
|
2056 | 2059 |
static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, |
Also available in: Unified diff