[OpenBIOS] [PATCH] ppc: force target CPU

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Mon Jan 18 20:14:15 CET 2016


On 18/01/16 18:29, Andreas Färber wrote:

> Am 18.01.2016 um 07:40 schrieb Segher Boessenkool:
>> On Tue, Dec 29, 2015 at 04:43:09PM +0000, Mark Cave-Ayland wrote:
>>> After some further research, there are currently 2 reasons that make me
>>> feel we should be targeting earlier CPUs than the G3 for 32-bit OpenBIOS
>>> builds: firstly there are some people trying to emulate PPC 604 CPUs
>>> with QEMU/KVM which currently hangs in OpenBIOS, and secondly there has
>>> been talk of switching over QEMU's PReP machine from OHW to OpenBIOS
>>> instead.
>>>
>>> To that end the minimum supported CPU for PPC needs to be 602 and so
>>> with this in mind, I've lightly tested the attached patch which seems to
>>> work here - Cole, does this work on your compiler setup? If so, I think
>>> this is the option I would like to apply upstream.
>>
>> I seriously doubt you have a 602 anywhere, or an emulator for it even.
>> You want 603/604, which were both called "G2".
> 
> For reasons unknown to me as current maintainer, QEMU's PReP machine
> uses a "602" CPU model by default. We are aware of issues with that
> default and have overridden it from the command line occasionally in our
> testing, but did not reach broader agreement on why and what to change
> it to... so if you have more input on that...?
> 
> http://git.qemu-project.org/?p=qemu.git;a=blob;f=hw/ppc/prep.c;h=0e102fcfbe01d38d939d93152921769503bc4e3a;hb=HEAD#l505

You can see this if you go further back in history before the files were
moved; it seems like Jocelyn Mayer switched to a 604 in order to fix OS/2:

http://git.qemu-project.org/?p=qemu.git;a=commitdiff;h=da9b266bb8491fd41badfff8ae1772007602dcca

and the commit where the switch appears is here, apparently in an
attempt to find a CPU that worked at that time:

http://git.qemu-project.org/?p=qemu.git;a=commitdiff;h=b37fc148bb81b5b022846156a6cba266e6c23962

>> It is probably best if you make code that runs on 603 but is tuned
>> for (say) 750, as in -mcpu=603 -mtune=750.

Given that 603 was used in a real BeBox then this would seem to be a
reasonable default. And perhaps the QEMU PReP CPU should be updated
similarly?

>>>          ppc64)
>>>          select_prefix powerpc64
>>> -        CFLAGS="-Wa,-a64 -m64 -msoft-float -fno-builtin"
>>> +        CFLAGS="-Wa,-a64 -m64 -mcpu=G5 -msoft-float -fno-builtin"
>>>          AS_FLAGS="-Wa,-a64"
>>>          ;;
>>
>> G5 is 970.  It includes VMX (AltiVec) vector support; you may want to
>> aim lower here too, say, power4.
> 
> Why? QEMU's pseries emulation uses SLOF instead of OpenBIOS, and ppc64
> mac99 uses a 970fx by default.
> 
> http://git.qemu-project.org/?p=qemu.git;a=blob;f=hw/ppc/mac_newworld.c;h=ca3d6a8c40c588bafc2e3ffade837b417e613bed;hb=HEAD#l185


ATB,

Mark.




More information about the OpenBIOS mailing list