<?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: PCIe DMA Transfer failure in T-Series</title>
    <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706792#M2193</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ufedor&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the suggestion, I'll try.&lt;/P&gt;&lt;P&gt;I have other doubts about the DMA capability of the QorIQ T208x Platform yet.&lt;/P&gt;&lt;P&gt;At boot time I see these messages:&lt;/P&gt;&lt;P&gt;platform ffe240000.pcie:pcie@0: Invalid size 0xfffff9 for dma-range&lt;/P&gt;&lt;P&gt;platform ffe250000.pcie:pcie@0: Invalid size 0xfffff9 for dma-range&lt;/P&gt;&lt;P&gt;platform ffe270000.pcie:pcie@0: Invalid size 0xfffff9 for dma-range&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are these messages symptom of a wrong cofiguration inside the dtb file?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And, last but not least, is the DMA memory contiguous?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 17 Oct 2017 08:29:19 GMT</pubDate>
    <dc:creator>alessandrocamel</dc:creator>
    <dc:date>2017-10-17T08:29:19Z</dc:date>
    <item>
      <title>PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706788#M2189</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi to all&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm working with T2080RDB and with the QorIQ-SDK-V2.0-20160527 and I put a PCIe device into the slot on board.&lt;/P&gt;&lt;P&gt;The device driver loads correctly and I can read and write all the BARn registers and the device's memory.&lt;/P&gt;&lt;P&gt;The problems start when using the DMA transfer (in both directions).&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The error is the follow:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Oct 16 11:00:48 t2080rdb kernel: PCIe error(s) detected&lt;BR /&gt;Oct 16 11:00:48 t2080rdb kernel: PCIe ERR_DR register: 0x00100000&lt;BR /&gt;Oct 16 11:00:48 t2080rdb kernel: PCIe ERR_CAP_STAT register: 0x80000001&lt;BR /&gt;Oct 16 11:00:48 t2080rdb kernel: PCIe ERR_CAP_R0 register: 0x00000800&lt;BR /&gt;Oct 16 11:00:48 t2080rdb kernel: PCIe ERR_CAP_R1 register: 0x00000000&lt;BR /&gt;Oct 16 11:00:48 t2080rdb kernel: PCIe ERR_CAP_R2 register: 0x00000000&lt;BR /&gt;Oct 16 11:00:48 t2080rdb kernel: PCIe ERR_CAP_R3 register: 0x00000000&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried to decode the message above reading the T2080RM datasheet and I found this:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PNM: PCI Express no map. A no-map transaction was detected in RC mode.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How does it mean?&lt;/P&gt;&lt;P&gt;I didn't understand if the issue is on the host or Endpoint side.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could someone kindly help me?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Attached to this question there are the syslog and all the messages printed by the board on console.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any kind of help will be appreciated.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-337256"&gt;boot.log.txt.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-337256"&gt;syslog.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Oct 2017 09:25:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706788#M2189</guid>
      <dc:creator>alessandrocamel</dc:creator>
      <dc:date>2017-10-16T09:25:09Z</dc:date>
    </item>
    <item>
      <title>Re: PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706789#M2190</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt; I didn't understand if the issue is on the host or Endpoint side.&lt;/P&gt;&lt;P&gt;The ERR_DR[PNM]=1 means that the T2080 PCIe detected request from an external master trying to access address which is not mapped to any inbound window.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Oct 2017 15:20:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706789#M2190</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2017-10-16T15:20:35Z</dc:date>
    </item>
    <item>
      <title>Re: PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706790#M2191</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ufedor&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your fast reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The event described is quite strange, I've just one device connected to the PCIe interface.&lt;/P&gt;&lt;P&gt;Just one host and just one endpoint.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Furthermore the same board with the same driver works well if I use a standard PC (x86 or x86_64) as a host.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could be an endianness issue?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In other words the host read the data from the device plugged into PCIe slot but with the wrong endianness and use this (overturned) data to configure the DMA engine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Oct 2017 15:35:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706790#M2191</guid>
      <dc:creator>alessandrocamel</dc:creator>
      <dc:date>2017-10-16T15:35:21Z</dc:date>
    </item>
    <item>
      <title>Re: PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706791#M2192</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt; the same driver works well if I use a standard PC (x86 or x86_64) as a host.&lt;/P&gt;&lt;P&gt;Please confirm the driver capabilities with its developers.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Oct 2017 07:49:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706791#M2192</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2017-10-17T07:49:04Z</dc:date>
    </item>
    <item>
      <title>Re: PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706792#M2193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ufedor&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the suggestion, I'll try.&lt;/P&gt;&lt;P&gt;I have other doubts about the DMA capability of the QorIQ T208x Platform yet.&lt;/P&gt;&lt;P&gt;At boot time I see these messages:&lt;/P&gt;&lt;P&gt;platform ffe240000.pcie:pcie@0: Invalid size 0xfffff9 for dma-range&lt;/P&gt;&lt;P&gt;platform ffe250000.pcie:pcie@0: Invalid size 0xfffff9 for dma-range&lt;/P&gt;&lt;P&gt;platform ffe270000.pcie:pcie@0: Invalid size 0xfffff9 for dma-range&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are these messages symptom of a wrong cofiguration inside the dtb file?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And, last but not least, is the DMA memory contiguous?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Oct 2017 08:29:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706792#M2193</guid>
      <dc:creator>alessandrocamel</dc:creator>
      <dc:date>2017-10-17T08:29:19Z</dc:date>
    </item>
    <item>
      <title>Re: PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706793#M2194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The DTB seems to be incorrect.&lt;/P&gt;&lt;P&gt;According to my understanding it is not absolutely required for the DMA memory ranges to be contiguous, but this coould simplify the system memory map.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Oct 2017 04:36:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706793#M2194</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2017-10-18T04:36:37Z</dc:date>
    </item>
    <item>
      <title>Re: PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706794#M2195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ufedor&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you suggested me I rechecked the driver used but unfortunately I didn't find anything useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I attached a screenshot of the difference which I see comparing the syslog obtained using the driver on a x86_64 system and on the T2080RDB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="x86_vs_ppc64.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/1819iBECC090C83D48382/image-size/large?v=v2&amp;amp;px=999" role="button" title="x86_vs_ppc64.png" alt="x86_vs_ppc64.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All the used addresses (virtual or not) in my understanding are correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please suggest me any other actions to perform?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Oct 2017 08:58:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706794#M2195</guid>
      <dc:creator>alessandrocamel</dc:creator>
      <dc:date>2017-10-23T08:58:12Z</dc:date>
    </item>
    <item>
      <title>Re: PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706795#M2196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It will be useful to attach a PCIe bus analyzer and capture trace containing the problem transaction.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Oct 2017 10:42:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706795#M2196</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2017-10-23T10:42:39Z</dc:date>
    </item>
    <item>
      <title>Re: PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706796#M2197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ufedor&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I studied the device driver deeper and I think to have understood the problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My device works in this way:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The DMA Subsystem for PCIe uses a linked list of descriptors that specify the source, destination, and length of the DMA transfers. Descriptor lists are created by the driver and stored in host memory. The DMA channel is initialized by the driver with a few control registers to begin fetching the descriptor lists and executing the DMA operations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Descriptors describe the memory transfers that the DMA Subsystem for PCIe should perform.&lt;/P&gt;&lt;P&gt;After the channel is enabled, the descriptor channel begins to fetch descriptors from the initial address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The host to device flow sequence is as follow:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Open the device and initialize the DMA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. The user program reads the data file, allocates a buffer pointer, and passes the pointer to write function with the specific device and data size.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. The driver creates a descriptor based on input data/size and initializes the DMA with descriptor start address, and if there are any adjacent descriptor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. The driver writes a control register to start the DMA transfer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. The DMA reads descriptor from the host and starts processing each descriptor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6. The DMA fetches data from the host and sends the data to the user side. After all data is transferred based on the settings, the DMA generates an interrupt to the host.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;7. The ISR driver processes the interrupt to find out which engine is sending the interrupt and checks the status to see if there are any errors. It also checks how many descriptors are processed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;8. After the status is good, the driver returns the transfer byte length to the user side so it can check for the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;----------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think the PCI stops working at step 5. The PCI engine doesn't permit to the device to fetch the descriptor from the host memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In my opinion this is the reason of the unmapped inbound transaction detected by the PCI controller.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why does the T2080&amp;nbsp;behaviour is different from a x86_64 PC?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can I change the behaviour of the host PCI controller in order to permit this action?&lt;/P&gt;&lt;P&gt;If yes, what do I have to do?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Oct 2017 15:27:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706796#M2197</guid>
      <dc:creator>alessandrocamel</dc:creator>
      <dc:date>2017-10-24T15:27:59Z</dc:date>
    </item>
    <item>
      <title>Re: PCIe DMA Transfer failure</title>
      <link>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706797#M2198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I believe that it is reasonable to consult with the driver developers.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Oct 2017 06:49:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/T-Series/PCIe-DMA-Transfer-failure/m-p/706797#M2198</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2017-10-25T06:49:52Z</dc:date>
    </item>
  </channel>
</rss>

