[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [OpenBIOS] Apple's BootX

From: Jd Lyons
Subject: Re: [Qemu-ppc] [OpenBIOS] Apple's BootX
Date: Sat, 27 Jan 2018 18:39:16 -0500

> On Jan 27, 2018, at 5:50 PM, BALATON Zoltan <address@hidden> wrote:
> 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.

For whatever reason, the 7448 boots and work just fine with the hypervisor, and 
TCG mode. Tho I did note that Altivec doesn’t seem to work, but I only tested 
SkidmarksGT, so more testing is needed.

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

I’m unable to boot openbios on TCG with the 7447a, 7450, 7455, or the 750fx, 
even tho I’ve added support for them. Not sure the issue there.

However Openbios will boot with KVM with the -cpu 7447a, 7450, and 7455. Not 
the 750fx, I have an old iBook with a 750fx, just got done putting a HD in it, 
so I’ll be installing Linux to see if KVM works, I read that the G3 should 
support KVM, I just don’t know if KVM support the G3.

With the 7450/7455( —enable-kvm -cpu 7450/7455 ), even with KVM, they can’t 
boot the Linux Kernel from the Debian 8.10 installer.

Seems to fail the same way BootX fails, at the point where the “jump” to the 
machine booting the kernel, meaning where the kernel should take over.

With the 7447a ( -enable-kvm -cpu 7447a ), boots the linux kernel and proceeds 
to the installer. Never installed it, but I have no reason to believe that it 
won’t work after install.

With -enable-kvm -cpu host, Debian install, runs and boots fine, no issues, 
other than the L2 cache is not active, but that an issue with openbios, and I’m 
not sure how to deal with that yet. Maybe just enable it in software while the 
OS is running, maybe add the code to Openbios, that if it detects the 
hypervisor it should enable the L2/L3.

All the test were done on my Powerbook6,8 with 7447a.

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

On that note, my patch to qemu for 7447a v1.5 is incomplete, it doesn’t show up 
in the list of CPU’s when I invoke -cpu help, and I can’t chose -cpu 

Do you know where in the sconce code that list is propagated, I need to patch 
that too?

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

How would I enable -d in the in_asm debug options?

Is it a runtime option, or do I need to enable it when I build?

> Regards,
> BALATON Zoltan

Thanks Balaton, I do  appreciate your help and input.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]