From 88a78d9093917096feffeba66802be27d0e64ead Mon Sep 17 00:00:00 2001 From: Bharat Bhushan Date: Thu, 27 Dec 2012 19:16:51 +0000 Subject: PPC: Reset qemu timers when guest reset This patch install the timer reset handler. This will be called when the guest is reset. Signed-off-by: Bharat Bhushan [agraf: adjust for QOM'ification] Signed-off-by: Alexander Graf --- hw/ppc_booke.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'hw') diff --git a/hw/ppc_booke.c b/hw/ppc_booke.c index 4483b8d..25a4e91 100644 --- a/hw/ppc_booke.c +++ b/hw/ppc_booke.c @@ -237,6 +237,17 @@ void store_booke_tcr(CPUPPCState *env, target_ulong val) } +static void ppc_booke_timer_reset_handle(void *opaque) +{ + PowerPCCPU *cpu = opaque; + CPUPPCState *env = &cpu->env; + + env->spr[SPR_BOOKE_TSR] = 0; + env->spr[SPR_BOOKE_TCR] = 0; + + booke_update_irq(cpu); +} + void ppc_booke_timers_init(PowerPCCPU *cpu, uint32_t freq, uint32_t flags) { ppc_tb_t *tb_env; @@ -257,4 +268,6 @@ void ppc_booke_timers_init(PowerPCCPU *cpu, uint32_t freq, uint32_t flags) qemu_new_timer_ns(vm_clock, &booke_fit_cb, cpu); booke_timer->wdt_timer = qemu_new_timer_ns(vm_clock, &booke_wdt_cb, cpu); + + qemu_register_reset(ppc_booke_timer_reset_handle, cpu); } -- cgit v1.1