<HTML dir=ltr><HEAD><TITLE>Re: tracking of PCI address space</TITLE>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.2900.3492" name=GENERATOR></HEAD>
<BODY>
<DIV id=idOWAReplyText68685 dir=ltr>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>I agree. Every processor(SOC) has unique of setting inbound window. What I noticed is Inbound regions are created big enough to map whole DDR region.&nbsp; And&nbsp;uses physical address of ram as a source/destination address. &nbsp;For example if a PCI-E SATA card wants to do DMA transfers to DDR region. It will create dma_alloc_noncoherent() region and uses physical address as source/destination address for data transfers. </FONT></DIV></DIV>
<DIV dir=ltr><BR>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> linuxppc-dev-bounces+tmarri=amcc.com@ozlabs.org on behalf of Benjamin Herrenschmidt<BR><B>Sent:</B> Wed 4/8/2009 11:21 PM<BR><B>To:</B> Kumar Gala<BR><B>Cc:</B> linux-pci@vger.kernel.org; Linux Kernel Mailing List; Jesse Barnes; Linux/PPC Development<BR><B>Subject:</B> Re: tracking of PCI address space<BR></FONT><BR></DIV>
<DIV>
<P><FONT size=2>On Wed, 2009-04-08 at 15:53 -0500, Kumar Gala wrote:<BR>&gt; I was wondering if we have anything that tracks regions associated&nbsp;<BR>&gt; with the "inbound" side of a pci_bus.<BR>&gt;<BR>&gt; What I mean is on embedded PPC we have window/mapping registers for&nbsp;<BR>&gt; both inbound (accessing memory on the SoC) and outbound (access PCI&nbsp;<BR>&gt; device MMIO, IO etc).&nbsp; The combination of the inbound &amp; outbound&nbsp;<BR>&gt; convey what exists in the PCI address space vs CPU physical address&nbsp;<BR>&gt; space (and how to map from one to the other).&nbsp; Today in the PPC land&nbsp;<BR>&gt; we only attach outbound windows to the pci_bus.&nbsp; So technically the&nbsp;<BR>&gt; inbound side information (like what subset of physical memory is&nbsp;<BR>&gt; visible on the PCI bus) seems to be lost.<BR><BR>On powerpc, we do keep track of the offset, but that's about it.<BR><BR>Tracking inbound ranges is very platform specific though. You can have<BR>multiple inbound windows with different translations, in some cases some<BR>via iommu and some not, or windows aliasing the same target memory but<BR>with different attributes, etc...<BR><BR>I don't think there's that much interest in trying to create generic<BR>code to keep track.<BR><BR>Ben.<BR><BR><BR>_______________________________________________<BR>Linuxppc-dev mailing list<BR>Linuxppc-dev@ozlabs.org<BR><A href="https://ozlabs.org/mailman/listinfo/linuxppc-dev">https://ozlabs.org/mailman/listinfo/linuxppc-dev</A><BR></FONT></P></DIV></BODY></HTML>