[OpenBIOS] [Qemu-devel] CUDA has problems with Mac OS 10.4

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Thu Nov 12 00:05:38 CET 2015

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
>>>> 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.html
>>>> and this device tree:
>>>> PowerMac G4 device tree
>>>> ff839ab8: /cpus
>>>> ff839ce8:   /PowerPC,G4 at 0
>>>> ff83a060:     /l2-cache
>>>> ff83ab58: /chosen
>>>> ff83ace8: /memory at 0
>>>> ff83af00: /openprom
>>>> ff83b008:   /client-services
>>>> ff83c1a8: /rom at ff800000
>>>> ff83c330:   /boot-rom at 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 at fff04000
>>>> ff871180: /uni-n at f8000000
>>>> ff8713c8:   /i2c at f8001000
>>>> ff871b10:     /cereal
>>>> ff8721c0: /pci at f0000000
>>>> ff898cd0:   /uni-north-agp at b
>>>> ff898f40:   /ATY,Rage128Ps at 10
>>>> ff873268: /pci at f2000000
>>>> ff8742d8:   /pci-bridge at d
>>>> ff876368:     /mac-io at 7
>>>> ff8773a0:       /interrupt-controller at 40000
>>>> ff877548:       /gpio at 50
>>>> ff877630:         /extint-gpio1
>>>> ff8777c8:         /programmer-switch
>>>> ff877900:       /escc-legacy at 12000
>>>> ff877af8:         /ch-a at 12004
>>>> ff877c78:         /ch-b at 12000
>>>> ff877df8:       /escc at 13000
>>>> ff878000:         /ch-a at 13020
>>>> ff8789a8:         /ch-b at 13000
>>>> ff8792c0:       /davbus at 14000
>>>> ff879540:         /sound
>>>> ff879c40:       /timer at 15000
>>>> ff879da8:       /via-pmu at 16000
>>>> ff87ccf0:         /rtc
>>>> ff87d3e0:         /power-mgt
>>>> ff8bf378:           /usb-power-mgt
>>>> ff87d648:       /i2c at 18000
>>>> ff87ded8:         /cereal
>>>> ff87e5a0:       /ata-4 at 1f000
>>>> ff880318:         /disk
>>>> ff8809e8:       /ata-3 at 20000
>>>> ff882760:         /disk
>>>> ff882da8:       /ata-3 at 21000
>>>> ff884b20:         /disk
>>>> ff8864c8:     /ethernet at 4
>>>> ff888690:     /usb at 8
>>>> ff88dd50:     /usb at 9
>>>> ff8be3f0:       /hub at 1
>>>> ff8be580:         /keyboard at 1
>>>> ff893410:     /firewire at a
>>>> ff8752e8: /pci at f4000000
>>>> ff8bb128:   /ethernet at 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.

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



More information about the OpenBIOS mailing list