On Thu, Jun 11, 2015 at 05:12:33PM +0300, Marcel Apfelbaum wrote:
> On 06/11/2015 04:58 PM, Kevin O'Connor wrote:
> >On Thu, Jun 11, 2015 at 04:37:08PM +0300, Marcel Apfelbaum wrote:
> >>The fixes solves the following issue:
> >>The PXB device exposes a new  pci root bridge with the
> >>fw path:  /pci-root@4/..., in which 4 is the root bus number.
> >>Before this patch the fw path was wrongly computed:
> >>     /pci-root@1/pci@i0cf8/...
> >>Fix the above issues: Correct the bus number and remove the
> >>extra host bridge description.
> >
> >Why is that wrong?  The previous path looks correct to me.
> The prev path includes both the extra root bridge and *then* the usual host 
> bridge.
>  /pci-root@1/pci@i0cf8/   ...
>     ^ new       ^ regular  ^ devices
> 
> Since the new pci root bridge (and bus) is on "paralel" with the regular one.
> it is not correct to add it to the path.
> 
> The architecture is:
>  /<host bridge>/devices...
>  /extra root bridge/devices...
>  /extra root bridge/devices...
> And not
> /extra root bridge//<host bridge>/devices

Your patch changed both the "/extra root bridge/devices..." part and
the "@1" part.  The change of the "@1" in "/pci-root@1/" is not
correct IMO.

Does open-firmware have any examples for PCI paths and in particular
PCI paths when there are multiple root-buses?

It's possible to replace the "pci@i0cf8" with "pci-root@1" but that
seems odd as the extra root bus is accessible via io accesses to
0x0cf8.

Another option would be to place the pci-root@1 behind the pci@i0cf8
as in "/pci@i0cf8/pci-root@1/...".  Or, the root bus could be appended
to the host bridge as in "/pci@i0cf8,1/...".

-Kevin

Reply via email to