<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: T2080 DMA to access FPGA BLOCKRAM over PCIe in QorIQ</title>
    <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501662#M3216</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No such DMA configuration is needed.&lt;/P&gt;&lt;P&gt;It is required to specify corrrect physical address for the DMA - in the discussed case PCIe3 memory window base address is 0xc30000000.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 13 Feb 2016 15:42:05 GMT</pubDate>
    <dc:creator>ufedor</dc:creator>
    <dc:date>2016-02-13T15:42:05Z</dc:date>
    <item>
      <title>T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501658#M3212</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a t2080rdb based custom board&lt;/P&gt;&lt;P&gt;In UBoot, I have enabled DMA and it is able to access local DDR.&lt;/P&gt;&lt;P&gt;I need to access the FPGA BLOCKRAM connected on the PCIe3 using DMA.&lt;/P&gt;&lt;P&gt;PCIe3 memory map is done in the T208xRDB.h in the UBoot source code as follows,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define CONFIG_SYS_PCIE3_MEM_VIRT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xb0000000&lt;/P&gt;&lt;P&gt;#define CONFIG_SYS_PCIE3_MEM_BUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xe0000000&lt;/P&gt;&lt;P&gt;#define CONFIG_SYS_PCIE3_MEM_PHYS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xc30000000ull&lt;/P&gt;&lt;P&gt;#define CONFIG_SYS_PCIE3_MEM_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 256M */&lt;/P&gt;&lt;P&gt;#define CONFIG_SYS_PCIE3_IO_VIRT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xf8020000&lt;/P&gt;&lt;P&gt;#define CONFIG_SYS_PCIE3_IO_BUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000&lt;/P&gt;&lt;P&gt;#define CONFIG_SYS_PCIE3_IO_PHYS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xff8020000ull&lt;/P&gt;&lt;P&gt;#define CONFIG_SYS_PCIE3_IO_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00010000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 64k */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am able to access BLOCKRAM from CPU as follows,&lt;/P&gt;&lt;P&gt;md&amp;nbsp; b0010000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But when I give the same address as the destination address for DMA, it is giving me an error(TE bit set in the DMA Status Register).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can somebody help me to proceed further?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Flaby&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Feb 2016 12:37:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501658#M3212</guid>
      <dc:creator>flabyjacob</dc:creator>
      <dc:date>2016-02-10T12:37:45Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501659#M3213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please note that core uses MMU, so physical address of the PCIe Outbound window has to be obtained using 'ioremap'.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Feb 2016 14:41:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501659#M3213</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2016-02-10T14:41:47Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501660#M3214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thanks for your reply...&lt;/P&gt;&lt;P&gt;But how to obtain it in UBoot?&lt;/P&gt;&lt;P&gt;As I mentioned in the first mail, &lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;CONFIG_SYS_PCIE3_MEM_PHYS is &lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;0xc30000000ull in UBoot's T208xRDB.h file&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Can I give the same address to DMA to access the BLOCKRAM?&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Flaby&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Feb 2016 07:42:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501660#M3214</guid>
      <dc:creator>flabyjacob</dc:creator>
      <dc:date>2016-02-11T07:42:04Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501661#M3215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;T2080Reference manual - section:23.3.23 says,&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;"The target interface is derived from the local access window and outbound ATMU mappings and&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;the transaction is obtained from the value specified in SATRn[SREADTTYPE]"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Do we need to configure any DMA registers to enable the above feature in UBoot sources - ie,DMA to see the LAW and outbound ATMU mappings?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Flaby&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Feb 2016 11:09:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501661#M3215</guid>
      <dc:creator>flabyjacob</dc:creator>
      <dc:date>2016-02-12T11:09:18Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501662#M3216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No such DMA configuration is needed.&lt;/P&gt;&lt;P&gt;It is required to specify corrrect physical address for the DMA - in the discussed case PCIe3 memory window base address is 0xc30000000.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 13 Feb 2016 15:42:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501662#M3216</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2016-02-13T15:42:05Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501663#M3217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Fedor,&lt;/P&gt;&lt;P&gt;Thanks for your reply...&lt;/P&gt;&lt;P&gt;The above mentioned physical address is already handled in UBoot source code in the PCIe initialization. I understand that a translation happens on the PCIe outbound registers to get an access to the physical address 0xc30000000 and because of this I am able to access FPGA BLOCKRAM via CPU without any problem. Please correct me if I am wrong...&lt;/P&gt;&lt;P&gt;&amp;nbsp; Hence, can we give this physical address directly to DMA by skipping the translation part in the PCIe controller?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Flaby&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Feb 2016 06:34:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501663#M3217</guid>
      <dc:creator>flabyjacob</dc:creator>
      <dc:date>2016-02-15T06:34:25Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501664#M3218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt; I understand that a translation happens on the PCIe outbound&lt;/P&gt;&lt;P&gt;&amp;gt;registers to get an access to the physical address 0xc30000000&lt;/P&gt;&lt;P&gt;Your understanding is not correct.&lt;/P&gt;&lt;P&gt;The PCIe controller does not perform SOC-level address translation - i.e. DMA must use the physical address 0xc30000000 to access the PCIe3 Outbound window.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Feb 2016 07:11:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501664#M3218</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2016-02-15T07:11:58Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501665#M3219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Fedor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;nbsp; for your reply...&lt;/P&gt;&lt;P&gt;When I give 0xc30000000 as the destination address for DMA, my DDR memory at address 0x3000000 is getting filled with the data from the source address given to the DMA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Flaby &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Feb 2016 07:40:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501665#M3219</guid>
      <dc:creator>flabyjacob</dc:creator>
      <dc:date>2016-02-15T07:40:01Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501666#M3220</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This means that DMA is programmed incorrectly.&lt;/P&gt;&lt;P&gt;It is required to check that DMAx_DATRn[EDAD]=0xC.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Feb 2016 07:57:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501666#M3220</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2016-02-15T07:57:37Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501667#M3221</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Fedor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot...&lt;/P&gt;&lt;P&gt;That solves my problem&lt;/P&gt;&lt;P&gt;In UBoot,&lt;/P&gt;&lt;P&gt;the following code part does the SATR and DATR initialization&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_dma32(&amp;amp;dma-&amp;gt;satr,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in_dma32(&amp;amp;dma-&amp;gt;satr) | (u32)((u64)src &amp;gt;&amp;gt; 32));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_dma32(&amp;amp;dma-&amp;gt;datr,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in_dma32(&amp;amp;dma-&amp;gt;datr) | (u32)((u64)dest &amp;gt;&amp;gt; 32));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By some reason, 0xc of my physical address was not coming there properly. I had checked this part earlier and just left it assuming that there is nothing wrong in that. Currently, I hardcoded DATR with 0xc and see that FPGA BLOCKRAM is filled with data from the source address given to DMA.&lt;/P&gt;&lt;P&gt;Now, I need to look into my code part in which I am pushing destination address to DMA where something wrong happens&lt;/P&gt;&lt;P&gt;Next, I need to access DDR connected to the FPGA too...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you once again for helping me to resolve the issue&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Flaby&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Feb 2016 09:07:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501667#M3221</guid>
      <dc:creator>flabyjacob</dc:creator>
      <dc:date>2016-02-15T09:07:00Z</dc:date>
    </item>
    <item>
      <title>Re: T2080 DMA to access FPGA BLOCKRAM over PCIe</title>
      <link>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501668#M3222</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;ufedor wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This means that DMA is programmed incorrectly.&lt;/P&gt;&lt;P&gt;It is required to check that DMAx_DATRn[EDAD]=0xC.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Is there something like this for the LS1012A? I don't see any such register in the eDMA module, and&amp;nbsp;I need to specify&amp;nbsp;0x40_0000_0000 (PCIe config memory) as the source address.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Brett S.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Jul 2018 15:12:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/QorIQ/T2080-DMA-to-access-FPGA-BLOCKRAM-over-PCIe/m-p/501668#M3222</guid>
      <dc:creator>brett_p_stahlma</dc:creator>
      <dc:date>2018-07-17T15:12:18Z</dc:date>
    </item>
  </channel>
</rss>

