[OpenBIOS] [Qemu-devel] CUDA has problems with Mac OS 10.4
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Fri Nov 13 12:26:15 CET 2015
On 12/11/15 00:42, Programmingkid wrote:
> 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?
V2 was applied to master, so you should now be good with a standard QEMU
checkout and the custom OpenBIOS binary included in the cover letter.
ATB,
Mark.
More information about the OpenBIOS
mailing list