[OpenBIOS] Apple's BootX

Jd Lyons lyons_dj at yahoo.com
Fri Feb 2 04:12:56 CET 2018



> On Feb 1, 2018, at 1:13 AM, Thomas Huth <thuth at redhat.com> wrote:
> 
> On 31.01.2018 21:59, James Lyons via OpenBIOS wrote:
>> 
>> 
>> On 01/30/2018 11:14 AM, Jd Lyons wrote:
>>> 
>>>> On Jan 30, 2018, at 10:47 AM, Jd Lyons via OpenBIOS
>>>> <openbios at openbios.org> wrote:
>>>> 
>>>> 
>>>> 
>>>>> On Jan 30, 2018, at 9:10 AM, BALATON Zoltan <balaton at eik.bme.hu> wrote:
>>>>> 
>>>>> On Mon, 29 Jan 2018, Jd Lyons via OpenBIOS wrote:
>>>>>> Ok, with a little help for Paul at the kvm-ppc mailing list, it
>>>>>> seems the issue maybe that the BootX or more likely mach_kernel it
>>>>>> trying to write something to or probe for an L3 cache.
>>>>> With kvm could be but on TCG it doesn't seem that way. Enabling some
>>>>> SPR debug options in target/ppc/translate_init.c I see this (with
>>>>> qemu git HEAD without other patches):
>>>>> 
>>>>> $ ppc-softmmu/qemu-system-ppc -cpu G4 -d int
>>>>> Write SPR 272 110 <= 07e00000
>>>>> Read SPR 287 11f => 000c0209
>>>>> Read SPR 25 019 => 07e00000
>>>>> Read SPR 25 019 => 07e00000
>>>>> Read SPR 287 11f => 000c0209
>>>>> Raise exception at fff08978 => 00000003 (40000000)
>>>>> Write SPR 273 111 <= 07df7ff0
>>>>> Write SPR 274 112 <= 20000004
>>>>> Read SPR 272 110 => 07e00000
>>>>> Read SPR 273 111 => 07df7ff0
>>>>> Read SPR 274 112 => 20000004
>>>>> Read SPR 26 01a => fff08978
>>>>> Read SPR 27 01b => 40000030
>>>>> 
>>>>> $ ppc-softmmu/qemu-system-ppc -cpu 7447a -d int
>>>>> Write SPR 272 110 <= 07e00000
>>>>> Read SPR 287 11f => 80030102
>>>>> Read SPR 25 019 => 07e00000
>>>>> Read SPR 25 019 => 07e00000
>>>>> Read SPR 287 11f => 80030102
>>>>> Raise exception at fff08978 => 0000004e (00)
>>>>> 
>>>>> So OpenBIOS gets unexpected exception very early right after reading
>>>>> the PVR so maybe it's a problem in OpenBIOS before it gets to what
>>>>> you're describing. Is this already fixed?
>>>>> 
>>>>> Regards,
>>>>> BALATON Zoltan
>>>>> 
>>>>> -- 
>>>>> OpenBIOS                 http://openbios.org/
>>>>> Mailinglist:  http://lists.openbios.org/mailman/listinfo
>>>>> Free your System - May the Forth be with you
>>>> It looks like in TCG mode that it tries to read these invalid spr’s
>>>> 
>>>> 1018
>>>> 1011
>>>> 1016
>>>> 1012
>>>> 
>>>> This doesn’t cause a halt, as the kernel boots.
>>>> 
>>>> 
>>> What I’m assuming is the kernel is trying to read the state of spr
>>> 1018 (r13), but it can’t read it. It does seem to exist for the 7447a
>>> it’s value is just zero( 0x00000000 ) and of course you can’t write
>>> anything there.
>>> 
>>> I don’t think the kernel is trying to write anything there, I think
>>> it’s just probing the state of the register to determine if the L3
>>> cache exists. There are just too many references to the r13 in the xun
>>> source for me to figure out how to stop the kernel from trying to make
>>> a read here. Paul seems to suggest it could be fixed in KVM, but it
>>> seems like I could fix it in Qemu if I knew how to get Qemu to pass
>>> that spr( 1018 ) to the guest as readable with the value 0x00000000.
>>> 
>>> Would anyone be able to help me do that?
>>> 
>> Ok, I tried like this:
>> 
>> spr_register_kvm(env, SPR_L3CR, "L3CR",
>>                      SPR_NOACCESS, SPR_NOACCESS,
>>                      &spr_read_generic, &spr_write_generic,
>>                      KVM_REG_PPC_L3CR, 0x00000000);
>> 
>> And I defined:
>> 
>> #define KVM_REG_PPC_L3CR    (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x3fa)
> 
> Did you also patch the kernel accordingly? The KVM code in the kernel
> needs to be aware of this, too. grep for KVM_REG_PPC_ in
> arch/powerpc/kvm/ to see some examples.
> 
> Thomas
> 
> 

Ok, thanks Thomas, that makes sense, I’ll see if I can make heads or tails of the code.

> 
> -- 
> OpenBIOS                 http://openbios.org/ <http://openbios.org/>
> Mailinglist:  http://lists.openbios.org/mailman/listinfo <http://lists.openbios.org/mailman/listinfo>
> Free your System - May the Forth be with you

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/openbios/attachments/20180201/8253b997/attachment.html>


More information about the OpenBIOS mailing list