This patchset is loosely based on earlier work by BALATON Zoltan <balaton(a)eik.bme.hu>
and provides basic infrastructure to allow OpenBIOS to enable PCI device
Following on from discussions on the QEMU mailing list, it seems that Apple's OF
enables bus mastering for some PCI devices by default, and as a result some buggy
drivers forget to explicitly enable it and hence these devices fail under QEMU's
The first 3 patches add the basic support routines while the last 2 patches enable
bus mastering for the rtl8139 card on Apple PPC machines which is required for
OS X and MorphOS.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)ilande.co.uk>
Mark Cave-Ayland (5):
pci: introduce ob_pci_enable_bus_master() function
pci: introduce ob_pci_is_bus_master_capable() function
pci: add PCI database entry for rtl8139 network card
pci: add rtl8139_config_cb() to configure rtl8139 network cards
ppc: mark PCI slots 0-2 for Apple PPC machies as bus master capable
openbios-devel/arch/ppc/qemu/init.c | 9 ++++---
openbios-devel/drivers/pci.c | 44 +++++++++++++++++++++++++++++++++
openbios-devel/drivers/pci_database.c | 6 +++++
openbios-devel/drivers/pci_database.h | 4 +++
openbios-devel/include/drivers/pci.h | 2 ++
5 files changed, 62 insertions(+), 3 deletions(-)
Hi Mark, I was wondering if you were willing to be a mentor again for another student for this year's Google Summer of Code. Last year Cormac O'Brien made a lot of progress that put us into view of making Mac OS 9 work in QEMU. This year we could bring on someone else who could eliminate all these extension problems. Your work with Cormac last year was very impressive. Would you be interested in mentoring this year?
I am thing about making the title to this years Google Summer of Code entry as "Make Mac OS 8.0 and higher work in QEMU". Nothing set in stone yet.
On Feb 26, 2016, at 5:06 PM, Hervé Poussineau wrote:
> Le 13/02/2016 13:40, Mark Cave-Ayland a écrit :
>> On 13/02/16 12:08, Alyssa Milburn wrote:
>>> On Sat, Feb 13, 2016 at 11:25:49AM +0000, Mark Cave-Ayland wrote:
>>>> Hmmm interesting - I'll take a look a bit later. In the meantime, I've
>>>> uploaded the CD image I'm loading to
>>>> https://www.ilande.co.uk/tmp/openbios/MacOS921.iso.xz. This is basically
>>>> stripped of all extensions minus MacsBug, OT and OT ASLM modules.
>>>> I'm using an OpenBIOS binary built from the branch I pushed to github,
>>>> current QEMU git master and the following command line:
>>>> ./qemu-system-ppc -M mac99 -bios openbios-qemu.elf.nostrip -cdrom
>>>> MacOS921.iso -cpu G3 -boot d
>>>> Let me know if that helps you recreate a similar environment or not.
>>> I also still just get crashes, even with your image. :-( I've tried
>>> several compilers for both the OpenBIOS side and qemu.
>>> I wonder if it might be some timing problem.. I have pretty slow computers
>>> probably (mostly I use a 2.4GHz Core 2 Duo), are you using something
>>> (dramatically) faster?
>> I'm using a 1.8GHz Core 2 Duo laptop, so mine should be slower than
>> that! My setup is plain Debian wheezy (gcc 4.7.2) but with a
>> custom-built 4.1 kernel. Compilers for OpenBIOS I have built by hand and
>> my current cross-gcc is gcc 5.1.0.
>> I do have a couple of extra options in my build-ppc.sh script below -
>> not sure if they make any difference though.
>> build@kentang:~/src/qemu/git$ cat build-ppc.sh
>> pushd qemu
>> make distclean
>> STRIP= './configure' '--target-list=ppc-softmmu'
>> '--prefix=/home/build/rel-qemu-git' '--enable-gtk' '--disable-pie'
>> make -j2 V=1 install
>> I've also uploaded my OpenBIOS binary image which I've just confirmed
>> with git master and my debugging enabled still gets stuck in the ESCC
>> polling loop to http://www.ilande.co.uk/tmp/openbios/openbios-ppc-escc
>> if that helps.
> I tried to use MacsBug to find some more details about current emulation problems.
> I share with you some handful commands I found:
> - sc/sc7 (Stack Crawl) to see the stack trace
> - es (Exit Shell) to exit MacsBug and try to continue
> - ip [addr] (68k code) or ipp [addr] (ppc code) to disassemble around some addresses
> Full MacsBug manual is available at
> I've tried lastest OpenBIOS revision (with all ESCC fixes). Unfortunately, MacOS never tries to access unimplemented DBDMA channels and I was unable to find more hints about what's happens.
> However, with https://www.ilande.co.uk/tmp/openbios/MacOS921.iso.xz and exiting MacsBug with 'es' command, I'm able to browse cd contents :)
Thank you for this information.
Well it looks like we are stuck. For some reason Mac OS 9 will not successfully boot in QEMU with the OpenTransport extension. Are we even sure the ESCC is to blame? I do know a lot of applications depend on this extension. Internet Explorer and Netscape are two examples. So going without it is not going to be much fun. There must be some way to satisfy OpenTransport's needs. I think step one is actually finding out what those needs are.
Also for some reason when I try to type something into Macsbug when using it under Mac OS 9.0.4, the character is repeated to the end of the field. Anyone else see this issue?
On Feb 26, 2016, at 1:19 PM, Alfonso Gamboa wrote:
> Yes, it works for me. Shift to disable extensions.
This is with the Cocoa gui on Mac OS X?
> On Feb 26, 2016 8:16 AM, "Programmingkid" <programmingkidx(a)gmail.com> wrote:
> On Feb 25, 2016, at 5:39 PM, Mark Cave-Ayland wrote:
> > On 25/02/16 19:15, Programmingkid wrote:
> >> I want to bring up Macsbug while Mac OS 9 is booting. I tried command-powerkey (real left and right command keys) but that didn't work. Command-fn-f12 also didn't work for me. Anybody have any luck with this when using a Mac OS X host?
> > Control works fine here with the GTK GUI (hold it down as soon as you
> > see the happy Mac). Maybe try using vnc/sdl just for debugging? It seems
> > that the keymaps for the cocoa GUI may need some work.
> When you hold down the shift key during startup, does Mac OS 9 say "Extensions Disabled"?
> OpenBIOS http://openbios.org/
> Mailinglist: http://lists.openbios.org/mailman/listinfo
> Free your System - May the Forth be with you
On Feb 25, 2016, at 5:39 PM, Mark Cave-Ayland wrote:
> On 25/02/16 19:15, Programmingkid wrote:
>> I want to bring up Macsbug while Mac OS 9 is booting. I tried command-powerkey (real left and right command keys) but that didn't work. Command-fn-f12 also didn't work for me. Anybody have any luck with this when using a Mac OS X host?
> Control works fine here with the GTK GUI (hold it down as soon as you
> see the happy Mac). Maybe try using vnc/sdl just for debugging? It seems
> that the keymaps for the cocoa GUI may need some work.
When you hold down the shift key during startup, does Mac OS 9 say "Extensions Disabled"?