On 2 July 2015 at 18:52, Dmitry Osipenko <dig...@gmail.com> wrote: > 02.07.2015 20:34, Peter Maydell пишет: >> >> >> This will now cause us to do the "reload the timer" >> logic if you write a 1 to the control bit when it was >> already 1, which we didn't do before. >> >> The logic I suggested in my previous review >> comment gets this right... >> >> -- PMM >> > > The problem with code you suggested is that won't start periodic count after > one-shot tick was completed.
Can you give more detail? This code is only for when the guest writes to the control register, so it doesn't get run when a one-shot tick completes. In any case, the code currently in master does: old value new value action 0 0 nothing 0 1 reload timer 1 0 nothing 1 1 nothing Your first patch did: old value new value action 0 0 delete timer 0 1 reload timer 1 0 delete timer 1 1 nothing Your second patch does: old value new value action 0 0 nothing 0 1 reload timer 1 0 delete timer 1 1 reload timer My suggestion was: old value new value action 0 0 nothing 0 1 reload timer 1 0 delete timer 1 1 nothing If you think that's wrong, then surely your first patch also has the same problem? thanks -- PMM