From: Lucjan Bryndza <lbryndza....@icloud.com> The current implementation of timers does not work properly even in basic functionality. A counter configured to report an interrupt every 10ms reports the first interrupts after a few seconds. There are also no properly implemented count up an count down modes. This commit fixes bugs with interrupt reporting and implements the basic modes of the counter's time-base block.
Update timer structures Signed-off-by: Lucjan Bryndza <lbryndza....@icloud.com> --- include/hw/timer/stm32f2xx_timer.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/include/hw/timer/stm32f2xx_timer.h b/include/hw/timer/stm32f2xx_timer.h index 8112878aa7..c83f7b0d6f 100644 --- a/include/hw/timer/stm32f2xx_timer.h +++ b/include/hw/timer/stm32f2xx_timer.h @@ -28,6 +28,7 @@ #include "hw/sysbus.h" #include "qemu/timer.h" #include "qom/object.h" +#include "hw/ptimer.h" #define TIM_CR1 0x00 #define TIM_CR2 0x04 @@ -79,12 +80,10 @@ struct STM32F2XXTimerState { /* <public> */ MemoryRegion iomem; - QEMUTimer *timer; + ptimer_state *timer; qemu_irq irq; - - int64_t tick_offset; - uint64_t hit_time; uint64_t freq_hz; + int count_mode; uint32_t tim_cr1; uint32_t tim_cr2; -- 2.38.5