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

Programmingkid programmingkidx at gmail.com
Thu Nov 12 00:21:36 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.

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




More information about the OpenBIOS mailing list