Le 27/09/2016 à 15:22, Greg Ungerer a écrit :
> Hi Laurent,
> 
> On 27/09/16 18:11, Laurent Vivier wrote:
>> Le 27/09/2016 à 09:33, Thomas Huth a écrit :
>>> On 27.09.2016 03:29, Greg Ungerer wrote:
>>>> The shipping default setting for the Freescale M5208EVB board is to run
>>>> the CPU at 166MHz. The current qemu emulation code for this board is
>>>> defaulting to 66MHz. This results in time appearing to run way to
>>>> slowly.
>>>> So a "sleep 5" in a standard ColdFire Linux build takes almost 15
>>>> seconds in real time to actually complete.
>>>>
>>>> Change the hard coded default to match the default hardware setting.
>>>>
>>>> Signed-off-by: Greg Ungerer <g...@uclinux.org>
>>>> ---
>>>>  hw/m68k/mcf5208.c | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/hw/m68k/mcf5208.c b/hw/m68k/mcf5208.c
>>>> index 9240ebf..2d0b464 100644
>>>> --- a/hw/m68k/mcf5208.c
>>>> +++ b/hw/m68k/mcf5208.c
>>>> @@ -21,7 +21,7 @@
>>>>  #include "elf.h"
>>>>  #include "exec/address-spaces.h"
>>>>
>>>> -#define SYS_FREQ 66000000
>>>> +#define SYS_FREQ 166000000
>>>
>>> Good catch. But actually, the M5208EVB User's Manual talks about 166.67
>>> MHz, so while you're at it, maybe you should change it to 166666666
>>> instead?
>>
>> In this case, it should be better to use a period of 6000000 ns (and
>> ptimer_set_period() instead of ptimer_set_freq()).
> 
> Why is that better in this case?
> All the documentation lists it as 166.67MHz, even on the PCB.
> Isn't it clearer to define it based on the actual value documented?

It is better because 166.67 MHZ is clearly a rounded value computed from
the period: 1000000000/6000000 = 166.666666666666666666666666...

And internally QEMU uses the period, not the frequency.

Laurent

Reply via email to