On 30/12/15 16:44, Mark Cave-Ayland wrote:
This patchset is loosely based on earlier work by BALATON Zoltan email@example.com 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 firstname.lastname@example.org
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(-)
Actually it seems that this patch is completely bogus for Darwin/OS X - it's really a bug in the way that Darwin parses the /pci "ranges" property causing it to map the PCI address spaces incorrectly.
Hence this patchset should be ignored and I will post a follow-up patchset containing the fix and some other PCI address fixups for Apple machines shortly.