Re: [PATCH] powerpc: enable 64-bit mode

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

 




On 15/03/2016 19:44, Alexander Graf wrote:
> 
> 
> On 15.03.16 19:43, Thomas Huth wrote:
>> On 15.03.2016 14:15, Laurent Vivier wrote:
>>> When they are started, processors are in 32-bit mode,
>>> as we are testing ppc64 processors, enable the 64bit mode
>>> on starting.
>>>
>>> Signed-off-by: Laurent Vivier <lvivier@xxxxxxxxxx>
>>> ---
>>>  powerpc/cstart64.S | 9 +++++++++
>>>  1 file changed, 9 insertions(+)
>>>
>>> diff --git a/powerpc/cstart64.S b/powerpc/cstart64.S
>>> index c87e3d6..634b854 100644
>>> --- a/powerpc/cstart64.S
>>> +++ b/powerpc/cstart64.S
>>> @@ -18,6 +18,15 @@
>>>  .globl start
>>>  start:
>>>  	FIXUP_ENDIAN
>>> +
>>> +	/* enable 64-bit mode */
>>> +	mfmsr	r11
>>> +	li	r12,-1
>>> +	rldicr	r12,r12,0,0
>>
>> Nice idea to set the highest bit, I didn't know that one yet :-)
>>
>>> +	or	r11,r11,r12
>>> +	mtmsrd	r11
>>> +	isync
>>
>> Looks good!
>>
>> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx>
>>
>>
>> PS: As far as I can see, the C code has already been compiled for 64
>> bits ... how did that work if it has been run in 32-bit mode so far??
> 
> And why would we enter a 64bit CPU without MSR_SF set?

I don't know, but:

When I start "qemu-system-ppc64 -machine pseries -s -S" and check the
MSR with gdb, the MSR is always set to 0 (or "info registers" in
monitor). It's why I've added this initialization.

So, perhaps there is  a bug in QEMU?

[Perhaps "env->msr |= (1ULL << MSR_SF)" is overwritten by the following
hreg_store_msr(env, msr, 1);"?]


Laurent



--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux