On 30/12/15 16:44, Mark Cave-Ayland wrote:
This patchset is loosely based on earlier work by BALATON Zoltan <balaton@eik.bme.hu>
and provides basic infrastructure to allow OpenBIOS to enable PCI device
bus mastering.
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
emulation.
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@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(-)
Following up from this, I found out today that the reason OS 9 rtl8139
drivers don't work in QEMU is due to the same issue, i.e. by default
Apple OF appears to enable bus mastering upon boot (OpenBIOS currently
doesn't) and so many driver authors forget to explicitly enable this.
So taking this patch and making a few minor tweaks I was able to get the
rtl8139 working in OS 9.2 and surf the web in Classilla :) I'm not sure
whether it solves similar issues people were having in 10.4.11 but I'd
invite people to test and report back.
I'm also of the mind that for OpenBIOS I think this patch is a bit of
overkill - if BM is to be enabled, then it would be configured by the
on-board FCode ROM regardless of bus/slot id so I'm going to remove this
part of the patch for the respin.
ATB,
Mark.