On Jan 27, 2018, at 1:23 PM, BALATON Zoltan <balaton@eik.bme.hu> wrote:

On Sat, 27 Jan 2018, Jd Lyons wrote:
Yes, I think a custom kernel maybe what’s needed, there is some magic that qemu-ppc is not doing. A custom kernel can boot on the 7448, as I have already confirmed. I was hoping to avoid that, but until someone that is familiar with how qemu-ppc boot OS X, I’ll just have to try the custom kernel route.

For the 7448, I used the kernel linked in these tread:


If we can figure out what changes were made that allowed qemu-ppc to boot with it, we should be able to figure out how to get the 7447a/7450/7455 to boot with it.

I'm just missing the point doing this. If it already works with the CPU type called G4 in QEMU (which seems to be an alias to 7400_v2.9) what would it bring to make it also boot with all these other CPU types that seem to be newer versions of the same G4 but were not normally found in real Macs?

I don't know these CPUs too well but if you're hoping to achieve faster emulation by emulating chips that were faster in hardware I'm not sure it works that way. Emulation is different than hardware so what's faster in hardware may actually be slower in emulation if it's more complex and thus there're more things to emulate versus one that's simple to emulate (that is the simplest G4 chip in this case). It may only be useful to emulate more complex G4 CPUs if those have additional instructions which QEMU has (or can have) optimised emulation for (and even then only when OS X actually uses them which is not likely if it wasn't optimised for these CPUs). But I'm not sure this is the case here. Does the later G4 chips have any ISA differences that could bring more speed in emulation or are they just different in hardware implementation? If it's the latter than I think making them work in QEMU would not bring any performance improvement and the reason they don't work is likely that QEMU does not (or not correctly) emulate some of the added complexity these chips have. But someone correct me if I'm wrong, I don't know much about these CPUs but I'd like to first see the point of this work. Otherwise there might be better places to put effort than fixing emulation of rare CPUs with OSes not meant to work with them.

Balaton, I was trying to boot 10.4.11 with the 7448, so the kernel should support it.

Why do you think so? According to https://everymac.com/systems/by_processor/powerpc-g4-powerpc-7400-macs.html this CPU was not used in any Mac. Why would've Apple added support for it?

As I stated, the 7448 was used in upgrade cards for a Powermac G4, and the PDF I linked says OS 9.2.2 or 10.3.5 or later. The point is Qemu builds for PowerPC too, and I’d like to use -enable-kvm -cpu host on my Powerbook6,8 with 7447a, my iBook6,7 with 7447a, and my Quicksilver with 7450/7455, but these CPU’s can’t boot OS X in qemu.

Why would we want an emulator that supports a wide range of CPU’s, used in real Macs, that only boots a few of them.

Adding support for them help me to better understand how qemu works, how kvm works, and how the cpus themselves work.

This hardware won’t last forever, it’s components will fail. Qemu will last as long as it’s maintained, and it will be maintained as long as it’s useful. As it stands OS X support for PPC stopped at 10.5 and most, if not all Linux distributions, are dropping support for PPC32, and I don’t think anyone plans on building anything for PPC64 other than Little Endian.

I was think of maintaining my own Linux distribution for PPC, and I want Qemu and KVM to work correctly.

There is also a project to build a new PowerPC notebook, based on the  NXP T208X e6500 64-bit Power Architecture® Core Technology.


I’d like to buy one of these, if it ever comes to fruition, and I’d like to be able to emulate the Mac OS on it.

Also, my two notebooks can’t boot OS 9, and I’m trying to figure out how to make that work native on these old 7447a’s. It’s just much easier to use Qemu to debug this.