[OpenBIOS] [PATCH 0/5] Enable bus master support for rtl8139 network cards on Apple PPC machines

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Sun Aug 7 15:48:19 CEST 2016


On 05/08/16 23:11, Howard Spoelstra wrote:

>> On 05 Aug 2016, at 22:32, Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk> wrote:
>>
>> On 05/08/16 21:11, Howard Spoelstra wrote:
>>
>>>> On 05 Aug 2016, at 17:59, Mark Cave-Ayland
>>>> <mark.cave-ayland at ilande.co.uk <mailto:mark.cave-ayland at ilande.co.uk>>
>>>> wrote:
>>>>
>>>> On 30/12/15 16:44, Mark Cave-Ayland wrote:
>>>>
>>>>> This patchset is loosely based on earlier work by BALATON Zoltan
>>>>> <balaton at eik.bme.hu <mailto:balaton at 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 at ilande.co.uk
>>>>> <mailto:mark.cave-ayland at 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.
>>>>
>>> Hi, testing with the resulting OpenBIOS from these patches revealed that
>>> 9.0, 9.1, 9.2, 10.0 and 10.1 now all support networking with the realtek
>>> driver.  10.0 and 10.1 boot rather slow. 10.2, 10.4 and 10.5 do not boot
>>> anymore, neither from cd/dvd nor hard disk image. Strangely enough a
>>> 10.3 hd still works. 10.5 now reports “EXIT” at the openbios prompt. The
>>> others just display Trying hd:,\\;tbxi <smb://;tbxi>
>>
>> Hi Howard,
>>
>> Thanks for testing! The patches are based on top of my next branch, and
>> I don't see any problems booting 10.2 from CD to the installer?
>>
>> I've pushed my branch to
>> https://github.com/mcayland/openbios/commits/ppc-busmaster for
>> comparision - does that match what you see? I'm also using QEMU git
>> master rather than the ppc-for-2.8 branch if you could also check that?
>>
>>
>> Many thanks,
>>
>> Mark.
>>
> 
> I repeated all tests with Qemu master and your busmaster OpenBIOS. All previously tested CD/HDs do boot. Networking is functional for 9.0 through 10.4.11(!), with the exception of 10.2, which needs the realtek driver. 10.2 gets an IP address from slirp, but has no internet connection.

Great news, thanks for testing!

So is what you're saying that either the OpenBIOS patches to provide the
VGA driver or one or more the patches queued in the dgibson's
ppc-for-2.8 branch break this?


ATB,

Mark.




More information about the OpenBIOS mailing list