qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] arm mptimer implementation - why prescaler is multiply


From: Peter Maydell
Subject: Re: [Qemu-devel] arm mptimer implementation - why prescaler is multiply by 10?
Date: Tue, 27 Oct 2015 14:26:45 +0000

On 27 October 2015 at 14:19, Dmitry Osipenko <address@hidden> wrote:
> 27.10.2015 16:48, Krzeminski, Marcin (Nokia - PL/Wroclaw) пишет:
>
>> Hello,
>> I am playing with U-Boot on ARM under qemu.
>> U-boot uses mptimer, and under qemu one second takes about 1 in real
>> world.
>> At the moment it seem that in u-boot is ok, so I have question about below
>> function.
>> Why prescaler value is multiply by 10?
>> static inline uint64_t a9_gtimer_get_conv(A9GTimerState *s)
>> {
>>      uint64_t prescale = extract32(s->control, R_CONTROL_PRESCALER_SHIFT,
>>                                    R_CONTROL_PRESCALER_LEN);
>>      return (prescale + 1) * 10;
>> }

> From my observation, Linux kernel is booting noticeably faster in the
> emulated guest and host machine CPU usage is lower if we "artificially"
> slowdown the MPtimer. You really shouldn't use it for the RTC, so doing that
> trick shouldn't affect guest behavior.
>
> However, maybe there is some other rational behind it and Peter C and/or
> Peter M might know better.

My guess is that we're just randomly hard-coding PERIPHCLK to
an effective 100MHz here.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]