On Nov 11, 2015, at 6:05 PM, Mark Cave-Ayland wrote:
On 11/11/15 21:32, Andreas Tobler wrote:
On 11.11.15 19:55, Programmingkid wrote:
On Nov 11, 2015, at 12:54 PM, Mark Cave-Ayland wrote:
On 11/11/15 15:15, Programmingkid wrote:
I built Cormac O'Brien's QEMU repo for Mac OS 9 and tried to boot my Mac OS 10.4 boot cd. Mac OS 10.4's kernel panics because of a CUDA problem. I did use the mac99 target. Here is the error message:
panic(cpu 0 caller 0x16E786CC): CUDA - TODO CHECK FOR TRANSACTION TYPE AND ERROR
This is the command I used: ./ppc-softmmu/qemu-system-ppc -boot d -cdrom ~/tiger.iso -prom-env boot-args=-v -usb -M mac99
I think there is still something wrong with CUDA. But we might not have to "fix" it. When we use the mac99 target, the PowerMac3,1 Macintosh system is what we are trying to emulate. My sources indicate that the PowerMac3,1 doesn't have a CUDA chip. This chip is used for ADB communications. Using it only on the BeigeG3 target makes sense.
My sources for the PowerMac3,1 system is this link: http://www.everymac.com/systems/apple/powermac_g4/specs/powermac_g4_350_agp....
and this device tree:
PowerMac G4 device tree
ff839ab8: /cpus ff839ce8: /PowerPC,G4@0 ff83a060: /l2-cache ff83ab58: /chosen ff83ace8: /memory@0 ff83af00: /openprom ff83b008: /client-services ff83c1a8: /rom@ff800000 ff83c330: /boot-rom@fff00000 ff83c4a8: /macos ff83c528: /options ff83c5a8: /aliases ff83cec8: /packages ff83cf30: /deblocker ff83d798: /disk-label ff83e198: /obp-tftp ff8439f0: /mac-parts ff844850: /mac-files ff847540: /hfs-plus-files ff84c1c8: /fat-files ff84def8: /iso-9660-files ff84eb00: /bootinfo-loader ff8507a0: /xcoff-loader ff8511b8: /pe-loader ff851b90: /elf-loader ff8531c0: /usb-hid-class ff8554d8: /usb-ms-class ff8576a8: /sbp2-disk ff858ac0: /ata-disk ff859cd8: /atapi-disk ff85b348: /bootpath-search ff861b68: /terminal-emulator ff861c00: /psuedo-hid ff861c88: /keyboard ff862308: /mouse ff862820: /multiboot ff86e7f0: /diagnostics ff86e858: /tools-node ff8704b8: /rtas ff8706b8: /nvram@fff04000 ff871180: /uni-n@f8000000 ff8713c8: /i2c@f8001000 ff871b10: /cereal ff8721c0: /pci@f0000000 ff898cd0: /uni-north-agp@b ff898f40: /ATY,Rage128Ps@10 ff873268: /pci@f2000000 ff8742d8: /pci-bridge@d ff876368: /mac-io@7 ff8773a0: /interrupt-controller@40000 ff877548: /gpio@50 ff877630: /extint-gpio1 ff8777c8: /programmer-switch ff877900: /escc-legacy@12000 ff877af8: /ch-a@12004 ff877c78: /ch-b@12000 ff877df8: /escc@13000 ff878000: /ch-a@13020 ff8789a8: /ch-b@13000 ff8792c0: /davbus@14000 ff879540: /sound ff879c40: /timer@15000 ff879da8: /via-pmu@16000 ff87ccf0: /rtc ff87d3e0: /power-mgt ff8bf378: /usb-power-mgt ff87d648: /i2c@18000 ff87ded8: /cereal ff87e5a0: /ata-4@1f000 ff880318: /disk ff8809e8: /ata-3@20000 ff882760: /disk ff882da8: /ata-3@21000 ff884b20: /disk ff8864c8: /ethernet@4 ff888690: /usb@8 ff88dd50: /usb@9 ff8be3f0: /hub@1 ff8be580: /keyboard@1 ff893410: /firewire@a ff8752e8: /pci@f4000000 ff8bb128: /ethernet@f
I've done quite a bit of work on Cormac's tree (primarily to fix CUDA issues that broke OS X among other things) and posted it to the qemu-devel list at https://lists.nongnu.org/archive/html/qemu-devel/2015-10/msg05556.html.
The patchset posted works well for me here, and I suspect will fix the issues that you've been seeing. Note that you'll also need the separate OpenBIOS binary mentioned in the link above if you want to try booting OS 9 since one of the OpenBIOS patches hasn't been applied to trunk since it regresses other images.
It looks like you are saying you wish to keep the CUDA device. Mac OS 9 is most likely hard coded to expect via-pmu instead of via-cuda on the mac99 target. Moving on to via-pmu might make QEMU more compatible with Mac OS 9. I will still try your patches. Do you have a repo that I could just clone? It is a lot less error prone than patches.
Currently we know that mac99 is a hybrid of several machine types, but it just so happens that the OSs contain a large enough range of drivers for the image to work, as they appear to do here.
Just checked this myself. Mac OS 9 does boot consistently to the "Mac OS 9" startup screen, so you do have a point. I'm surprised.
From my testing I don't see a problem with CUDA, and while it could be that via-pmu may help things with OS 9, we need a specific patch to demonstrate this with instructions that can be independently reproduced.
I will see what I can do.
I'd like to keep the CUDA too, FreeBSD PowerPC (32-bit) relies on it. Unfortunately it still doesn't work ... but hope is still here ;)
If it helps, I've just noticed that the OS 9 patchset also fixes NetBSD PPC boot (looking at the CUDA driver I suspect it is likely the I2C parts) so I don't think FreeBSD will be too far off.
From what I've seen of reports from OpenBSD (e.g. http://virtuallyfun.superglobalmegacorp.com/2015/07/19/gsoc-bringing-macos-9...), my first guess would be that a good starting point would be to check to PCI host bridge properties generated in OpenBIOS.
Mark, is your complete qemu patch available somewhere? Then I could test 32-bit PowerPC on FreeBSD which still hangs on adb... up to now.
I've just pushed the rebased version to https://github.com/mcayland/qemu/tree/ppc-os9-upstream for people interested to test further.
I had just spent a lot of tedious effort copying and pasting all 13 patches from the link you sent me. Thank goodness for the git repo.
Just to note, your original set of patches did make a lot of progess. Only patch 8 had problems that required it to be applied by hand. I applied them to QEMU 2.4.1 on Mac OS 10.6.
Will start testing out the new version of patches.