On 06/07/2013 05:39:53 PM, Benjamin Herrenschmidt wrote:
On Fri, 2013-06-07 at 17:34 -0500, Scott Wood wrote:
> > You also need to account for other on-chip MMIOs no ? Or do you
never
> > intend to let PCI devices hit them ?
>
> I don't think we normally need that (other than MSIs, which have a
> special window under 4G)... The question is whether it's better to
let
> odd use cases work without having to manually move the DMA window,
at
> the cost of decreased out-of-the-box performance with common PCIe
cards.
Sorry, I didn't parse what the tradeoff is here...
I just meant that a PCIe device targeting something other than RAM,
CCSR (it's not just MSIs that are mapped through the special window),
or another PCIe is a rather unusual case -- not something that you'd
see by just plugging in an ordinary PCIe card. The tradeoff is that if
we accommodate this strange use case, boards like the radeon would need
to use swiotlb (once we fix the > versus >= bug) unless the user tweaks
the DMA window.
It may be best to stick with the default that makes everything work,
even if a broken PCIe card ends up being a bit slower out of the box,
even if the PCIe-to-MMIO use case is weird and would require custom
setup anyway. OTOH, did we ever care about 32-bit DMA being able to
access MMIO?
Putting the inbound window above memory seems like a reasonable
option then
(at least as a default that the board can override).
I sincerely hope those radeons are the only remaining things with
that sort of
limitation but you never know ... it's all x86 fault of course for
never having
used high DMA windows :-)
Hmm... Why are we using this special window at all? Can't we just have
one large identity mapping starting at zero, with the MSI window
presumably taking precedence? The manual is a bit vague on whether
inbound windows can overlap with priority... in EP mode it says it
does, and the RC section is silent. Do we currently ever overlap
PCICSRBAR with a real window?
-Scott
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://lists.ozlabs.org/listinfo/linuxppc-dev