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

Programmingkid programmingkidx at gmail.com
Thu Nov 12 01:42:13 CET 2015


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.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.
> http://virtuallyfun.superglobalmegacorp.com/2015/07/19/gsoc-bringing-macos-9-to-qemu/),
> 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 think I cloned your repo correctly. When I did a 'git log', the first patch was this one:

commit 8aeea0670f83c93e6b9716598123fee98282610e
Author: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
Date:   Fri Oct 23 11:08:53 2015 +0100

    cuda.c: add delay to setting of SR_INT bit

Are the version 2 of your patches suppose to be in this repo?


More information about the OpenBIOS mailing list