[OpenBIOS] Apple's BootX

BALATON Zoltan balaton at eik.bme.hu
Sat Jan 27 23:50:17 CET 2018


On Sat, 27 Jan 2018, Jd Lyons wrote:
> 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

It also says a firmware patch is needed too. I wonder what those patches 
do but this suggests an unpatched OS X would not boot without some 
additional things.

> 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.

Do you mean it does not boot when you're using QEMU with kvm on those CPUs 
or when you try to boot with an emulated 7447a CPU with TCG (no kvm)? 
These may be two different cases and I'm not sure which one you've tested.

> 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.

The Mac emulation in QEMU is far from perfect. In fact what it emulates is 
not even a real Mac just some random hardware that resembles a PowerMac 
enough that with some combinations some OS X versions work more or less. 
But if you wander off these tried path problems are expected as probably 
no-one have tried that yet or haven't fixed it yet. There's a lot to 
improve and your effort in this is greatly appreciated, I'm just saying 
that it's not expected to be ready and working with all the processors 
even if those appear in the list of emulated CPUs as you've already found.

But back to the problem, from your previous messages it seems it booted 
with a kernel that disabled the check for unknown CPUs so the problem 
seems to be that the kernel cannot recognise the CPU as supported or it 
tries to do something for these CPUs that does not work as expected in 
QEMU. You may need to check what the mach_kernel does after started by 
BootX and how it detects the CPU and if it would accept the CPU you've 
specified (maybe it would with 7447a which was used in Macs but for 7448 I 
would not expect that). The start.s you've linked seems to be the 
processor detection that runs. Maybe you could try to enable the -d in_asm 
debug option of QEMU that prints what guest code it runs and try to 
correlate that to the mach_kernel source to find what it does and where it 
fails.

Regards,
BALATON Zoltan


More information about the OpenBIOS mailing list