I'm currently not getting messages from the openbios list so can only see your reply in the list archive (which is not very convenient) so I can't reply in detail but I saw this:
I stared the additional CPUs without them halted, but that made the race condition so fast I can’t even load a full boot loader to get a kernel up before IDE dies.
I did see 800% cpu usage out of qemu-system-ppc64 and it dipped down around 500% before the system just hung. So 5 cores of 8 were likely stuck in the race condition.
Starting with all CPUs running is certainly wrong. That means all of them will execute the OpenBIOS and kernel boot in parallel and step on each other's toes as they can't poke the same IDE device without mixing it up completely. This is not how it should work and as you've found it doesn't. Apparently it works as I explained in the thead last year and now at least two or three times again, that is to keep the secondary CPU halted and connect the right GPIO line to the reset line of the secondary CPU so the kernel can start it when it has set it up to run the code it's intended to run. All other than the first CPU should stay stopped until the kernel pokes the GPIO line to release it from reset and only the first CPU should run the OpenBIOS and kernel boot. If you haven't solved that GPIO connection yet then it's still the issue to solve before patching anything else.
Maybe you just need to change the code that connects OPENPIC_OUTPUT_RESET with PPC6xx_INPUT_HRESET in qemu/hw/ppc/mac_newworld.c to connect PPC6xx_INPUT_HRESET to some gpio line of the macio gpio part instead. That means instead of connecting PPC6xx_INPUT_HRESET to the openpic when the CPU is created it should do this later after macio is created and access the gpio lines there and connect them to the PPC6xx_INPUT_HRESET lines of the CPUs corresponding to what the Linux kernel expects so the right line resets the right CPU. I don't know if that's all that's wrong but we have already found out that at least this reset connection is wrong and needs to be fixed.
Regards, BALATON Zoltan