[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] PPC64: Fix timebase
From: |
Alexander Graf |
Subject: |
Re: [Qemu-devel] [PATCH] PPC64: Fix timebase |
Date: |
Mon, 21 Dec 2009 17:04:19 +0100 |
User-agent: |
Thunderbird 2.0.0.23 (X11/20090817) |
Aurelien Jarno wrote:
> On Mon, Dec 21, 2009 at 12:15:42PM +0100, Alexander Graf wrote:
>
>> On 21.12.2009, at 10:24, Aurelien Jarno wrote:
>>
>>
>>> On Mon, Dec 21, 2009 at 01:22:12AM +0100, Alexander Graf wrote:
>>>
>>>> On PPC we have a 64-bit time base. Usually (PPC32) this is accessed using
>>>> two separate 32 bit SPR accesses to SPR_TBU and SPR_TBL.
>>>>
>>>> On PPC64 the SPR_TBL register acts as 64 bit though, so we get the full
>>>> 64 bits as return value. If we only take the lower ones, fine. But Linux
>>>> wants to see all 64 bits or it breaks.
>>>>
>>> Good catch! However, I think this patch it's not fully complete and can
>>> be improved a bit
>>> - it's probably better to return a target_ulong value from
>>> cpu_ppc_load_tbl() with an explicit cast here, so that we don't have
>>> an implicit cast from 64-bit to 32-bit on qemu-system-powerpc (GCC may
>>> warn on that with some flags or in future versions).
>>> - the store function also has to be fixed.
>>> - the same changes should be done for the alternate timebase.
>>>
>
> They are defined in the Book II, and corresponds to atbl and atbu
> functions.
>
>
>> Uuuh:
>>
>> __attribute__ (( unused ))
>> static void spr_read_atbl (void *opaque, int gprn, int sprn)
>> {
>> gen_helper_load_atbl(cpu_gpr[gprn]);
>> }
>>
>> And that attribute is correct. There is no caller.
>>
>>
>
> Ok. I have committed a fix anyway, so that if someone enable it later,
> he/she doesn't spend to much time fixing the bug.
>
Thanks :-).
Alex