[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH v10 0/7] PTimer fixes/features and ARM MPTimer convers
From: |
Dmitry Osipenko |
Subject: |
[Qemu-arm] [PATCH v10 0/7] PTimer fixes/features and ARM MPTimer conversion |
Date: |
Sat, 9 Jan 2016 20:39:48 +0300 |
Changelog for ARM MPTimer QEMUTimer to ptimer conversion:
V2: Fixed changing periodic timer counter value "on the fly". I added a
test to the gist to cover that issue.
V3: Fixed starting the timer with load = 0 and counter != 0, added tests
to the gist for this issue. Changed vmstate version for all VMSD's,
since loadvm doesn't check version of nested VMSD.
V4: Fixed spurious IT bit set for the timer starting in the periodic mode
with counter = 0. Test added.
V5: Code cleanup, now depends on ptimer_set_limit() fix.
V6: No code change, added test to check ptimer_get_count() with corrected
.limit value.
V7: No change.
V8: No change.
V9: No change.
V10: Correctly handle cases when counter = load = 0 and prescaler != 0,
i.e. triggering interrupt in that case. Call ptimer_* only when
certain MPTimer state was changed, like prescaler change. Factor out
timerblock_set_count from timerblock_run and inline both.
Tests updated.
ARM MPTimer tests: https://gist.github.com/digetx/dbd46109503b1a91941a
Patches for ptimer are introduced since V5 of "ARM MPTimer conversion".
Changelog for the ptimer patches:
V5: Only fixed ptimer_set_limit() for the disabled timer.
V6: As was pointed by Peter Maydell, there are other issues beyond
ptimer_set_limit(), so V6 supposed to cover all those issues.
V7: Added accidentally removed !use_icount check.
Added missed "else" statement.
V8: Adjust period instead of the limit and do it for periodic timer only
(.limit adjusting bug). Added patch/fix for freq/period change and
ptimer_get_count() improvement.
V9: Don't do wrap around if counter == 0, otherwise polled periodic
timer won't ever return counter = 0.
V10: Addressed V8/9 review comments.
Adjust timer period based on delta instead of limit.
Don't wrap around when in icount mode.
New patches: "on the fly" mode switch, silence error msg when
delta = load = 0, introduce ptimer_get_limit.
Dmitry Osipenko (7):
hw/ptimer: Fix issues caused by the adjusted timer limit value
hw/ptimer: Perform tick and counter wrap around if timer already
expired
hw/ptimer: Update .delta on period/freq change
hw/ptimer: Support "on the fly" timer mode switch
hw/ptimer: Legalize running with delta = load = 0
hw/ptimer: Introduce ptimer_get_limit
arm_mptimer: Convert to use ptimer
hw/core/ptimer.c | 109 +++++++++++++++++++++++------------
hw/timer/arm_mptimer.c | 127 ++++++++++++++++++++---------------------
include/hw/ptimer.h | 1 +
include/hw/timer/arm_mptimer.h | 5 +-
4 files changed, 137 insertions(+), 105 deletions(-)
--
2.6.4
- [Qemu-arm] [PATCH v10 0/7] PTimer fixes/features and ARM MPTimer conversion,
Dmitry Osipenko <=