[OpenBIOS] [PATCH RFC] openbios-devel/arch/ppc/qemu/init.c

Alexander Graf agraf at suse.de
Wed Apr 16 18:44:31 CEST 2014


On 16.04.14 18:35, BALATON Zoltan wrote:
> On Wed, 16 Apr 2014, Alexander Graf wrote:
>>>>> @@ -269,6 +269,18 @@
>>>>>       push_str("i-cache-block-size");
>>>>>       fword("property");
>>>>>
>>>>> +    if(cpu->tlb_size) {
>>>>> +        PUSH(cpu->tlb_sets);
>>>>> +        fword("encode-int");
>>>>> +        push_str("tlb-sets");
>>>>> +        fword("property");
>>>>> +
>>>>> +        PUSH(cpu->tlb_size);
>>>>> +        fword("encode-int");
>>>>> +        push_str("tlb-size");
>>>>> +        fword("property");
>>>>
>>>> Please just find the correct values and add the properties to the 
>>>> cpu nodes always.
>>>
>>> Where can I find the correct values? Maybe QEMU should send it via 
>>> FW_CFG because OpenBIOS only seems to have data for a few CPUs and 
>>> most of them have a comment saying that the values are not correct 
>>> anyway. But I could not find where is this data available in QEMU.
>>
>> That'd work for me. I also wouldn't be opposed to move OpenBIOS to a 
>> scheme similar to SLOF and u-boot where we pass the device tree to 
>> firmware and use that instead of fw_cfg to enumerate devices in our 
>> system.
>
> The problem with this is that OpenBIOS is used for a lot more 
> architectures than just mac emulation and such a change would also 
> affect others (like sparc). Also the device tree is partly created in 
> Forth and then patched in C so using a whole device tree from QEMU 
> would need modifications to the Forth part as well. So this is no 
> small task and one that's too much for me. If someone can take on this 
> task it may be done but the most I can do is adding these to FW_CFG 
> and even for that someone should tell me how to find these values in 
> QEMU.
>
>>>>> +    }
>>>>> +
>>>>>       PUSH(fw_cfg_read_i32(FW_CFG_PPC_TBFREQ));
>>>>>       fword("encode-int");
>>>>>       push_str("timebase-frequency");
>>>>> @@ -279,6 +291,11 @@
>>>>>       push_str("clock-frequency");
>>>>>       fword("property");
>>>>>
>>>>> +    PUSH(100 * 1000 * 1000);
>>>>> +    fword("encode-int");
>>>>> +    push_str("bus-frequency");
>>>>> +    fword("property");
>>>>
>>>> I'm fairly sure this is wrong.
>>>
>>> What is the good value then? (Some other data e.g. the clock 
>>> frequency is also a made up value to make the clients happy.)
>>
>> Don't we send the bus frequency via fw_cfg? I remember we had a 
>> pretty long thread about bus frequency and how it kept breaking Mac 
>> OS X.
>
> Wasn't that the clock-frequency? That is sent via FW_CFG but the 
> bus-frequency isn't and was just missing from the CPU properties.

Ah, it was the clock frequency vs tb frequency. Jeez - we have way too 
many of these.

Yes, please add it as a value in fw_cfg.


Alex




More information about the OpenBIOS mailing list