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=0e102fcfbe0...
It is probably best if you make code that runs on 603 but is tuned for (say) 750, as in -mcpu=603 -mtune=750.
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=ca3...
Cheers, Andreas
While I'm at it... You probably want -ffreestanding (and then you don't need to disable builtins separately). You should not need -Wa,-a64 in CFLAGS unless your toolchain install is broken; and for AS_FLAGS you want to include all of CFLAGS.
Cheers,
Segher