[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH] hw/char/cmsdk-apb-timer: Correctly identify and s
From: |
Peter Maydell |
Subject: |
Re: [Qemu-arm] [PATCH] hw/char/cmsdk-apb-timer: Correctly identify and set one-shot mode |
Date: |
Tue, 26 Jun 2018 18:17:44 +0100 |
On 19 June 2018 at 03:08, Guenter Roeck <address@hidden> wrote:
> The CMSDK APB timer is currently always configured as periodic timer.
> This results in the following messages when trying to boot Linux.
>
> Timer with delta zero, disabling
>
> If the timer limit set with the RELOAD command is 0, the timer
> needs to be enabled as one-shot timer.
>
> Signed-off-by: Guenter Roeck <address@hidden>
> ---
> hw/timer/cmsdk-apb-timer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/timer/cmsdk-apb-timer.c b/hw/timer/cmsdk-apb-timer.c
> index 9878746..79c1b49 100644
> --- a/hw/timer/cmsdk-apb-timer.c
> +++ b/hw/timer/cmsdk-apb-timer.c
> @@ -119,7 +119,7 @@ static void cmsdk_apb_timer_write(void *opaque, hwaddr
> offset, uint64_t value,
> }
> s->ctrl = value & 0xf;
> if (s->ctrl & R_CTRL_EN_MASK) {
> - ptimer_run(s->timer, 0);
> + ptimer_run(s->timer, ptimer_get_limit(s->timer) == 0);
> } else {
> ptimer_stop(s->timer);
> }
> --
> 2.7.4
Thanks for this patch. I was wondering whether it would be better
just to remove the fprintf message instead. I'll either apply
this or send a patch to do that before 3.0, anyway.
I think we also want to make sure we convert back to a
periodic timer if the reload register is written with a nonzero
value before the timer expires (and that if that happens after
the timer expired that we restart the timer). Thinking about
this is also on my todo list.
-- PMM