All registers are set to 0 on reset.
This requires my prevoius patch which isn't in CVS yet.
diff -p -u -r1.23 slavio_timer.c --- hw/slavio_timer.c 17 Dec 2007 18:21:57 -0000 1.23 +++ hw/slavio_timer.c 19 Dec 2007 12:28:30 -0000 @@ -306,13 +369,11 @@ static void slavio_timer_reset(void *opa { SLAVIO_TIMERState *s = opaque; - if (slavio_timer_is_user(s)) - s->limit = TIMER_MAX_COUNT64; - else - s->limit = TIMER_MAX_COUNT32; + s->limit = 0; s->count = 0; s->reached = 0; - ptimer_set_limit(s->timer, LIMIT_TO_PERIODS(s->limit), 1); + s->slave_mode = 0; + ptimer_set_limit(s->timer, LIMIT_TO_PERIODS(TIMER_MAX_COUNT32), 1); ptimer_run(s->timer, 0); s->running = 1; qemu_irq_lower(s->irq);