[OpenBIOS] [PATCH 3/4 v3] arch/ppc/qemu: Add a node for the other (empty) PCI bus to the device tree

BALATON Zoltan balaton at eik.bme.hu
Mon Feb 13 22:19:07 CET 2017

On Mon, 13 Feb 2017, Mark Cave-Ayland wrote:
> So that only leaves this patch. I am fairly happy that this version of
> the patch is the better solution until OpenBIOS can support multiple PCI
> domains, however I still don't want to use this in its current form
> because of the warnings generated (not at least because it seems that
> enumerating the devices on the new empty PCI bus still seems to be
> accessing devices on the current PCI bus).
> Having a quick browse over the error messages, I think it should be
> possible to make these warnings go away if you both add the new empty
> PCI bus to QEMU's mac99 machine and then include a fake "ranges"
> property for the new PCI DT node - can you try this and see if that
> still fixes your use case?

Not sure I understand this. QEMU already emulates the empty PCI bus, see 
in pci_pmac_init() in uninorth.c. What I think is happening that before 
this patch you get no warnings because the client thinks there's only one 
PCI bus and does not enumerate the second bus (where devices are) and 
finds nothing on the first bus, hence no warnings but devices on second 
bus are not initialised either (this is why bus master bit was not set for 
rtl8139). They may still appear to work because they are memory mapped and 
if the client writes the registers at the memory address then can talk to 
the device but PCI config may be wrong.

After this patch it actually finds both buses. There's one warning for 
overlapping bus-range but this is probably harmless as there are no 
devices on the first bus. Then enumerates the second bus and finds OHCI 
device which may have some other problem that cause the warnings but now 
at least it is found and the client could talk to it. At least this is 
what happened on MorphOS. If this is the case then fixing these warnings 
would need another patch independent of this one but I'd leave that to 
someone else as I have no time now to try to fix that. This patch alone 
fixes USB on MorphOS and if it does not break anything else then it's an 
improvement, even if not a complete fix for the old OpenSUSE image you get 
these warnings with.

Have you found a regression? If it works as good as before (i.e. did not 
work before on OpenSUSE and still not working but all other OSes are the 
same and MorphOS is better) then you might as well apply this patch and 
then look to fix OHCI with OpenSUSE later which now at least issues 
warnings instead of silently failing that may be a step forward.

I don't have time to experiment with this now but if you find some 
properties that help OpenSUSE I can test the patch.


More information about the OpenBIOS mailing list