<?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>LayerscapeのトピックLS1021A PCIe iATU configuration</title>
    <link>https://community.nxp.com/t5/Layerscape/LS1021A-PCIe-iATU-configuration/m-p/615312#M1814</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The iATU configuration as shown by the devicetree&amp;nbsp;programs only 2 outbound regions:&lt;/P&gt;&lt;P&gt;DeviceTree:&lt;/P&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;&lt;CODE class="" style="color: #000000 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;ranges = &amp;lt;&lt;/CODE&gt;&lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x81000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x0&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x00000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x00010000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x0&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x00010000&lt;/CODE&gt;&amp;nbsp;&amp;nbsp; &lt;CODE class="" style="color: #008200 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;/* downstream I/O */&lt;/CODE&gt;&lt;/DIV&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;&lt;CODE class="" style="background: 0px center; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x82000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x0&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x0&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40000000&lt;/CODE&gt;&lt;CODE class="" style="color: #000000 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;&amp;gt;; &lt;/CODE&gt;&lt;CODE class="" style="color: #008200 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;/*non-prefetchable memory */&lt;/CODE&gt;&lt;/DIV&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;&lt;CODE class="" style="color: #008200 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;&lt;/CODE&gt;&lt;/DIV&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;I have confirmed this configuration by dumping&amp;nbsp;the iATU registers.&lt;/DIV&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;&lt;P&gt;&lt;STRONG&gt;Region1&lt;/STRONG&gt;: Base&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;0x40 0001 0000 ==&amp;gt; Target&amp;nbsp;&lt;SPAN&gt;0x0000 0000&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;Region2&lt;/STRONG&gt;: Base&amp;nbsp;0x40 4000 0000 ==&amp;gt; Target&amp;nbsp;0x4000 0000&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So effectively the iATU is translating the 40-bit BAR space physical address to 32-bit PCIe address space which is fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My question is why the default configuration only programs the outbound and not the inbound as well?&lt;/P&gt;&lt;P&gt;Is it not expected that the PCIe device will write to this BAR space area at address 0x40 0000 0000?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is a typical scenario&amp;nbsp;for a PCIe NIC card for example in terms of the inbound/outbound messages?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 14 Sep 2016 12:52:07 GMT</pubDate>
    <dc:creator>Tarek</dc:creator>
    <dc:date>2016-09-14T12:52:07Z</dc:date>
    <item>
      <title>LS1021A PCIe iATU configuration</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1021A-PCIe-iATU-configuration/m-p/615312#M1814</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The iATU configuration as shown by the devicetree&amp;nbsp;programs only 2 outbound regions:&lt;/P&gt;&lt;P&gt;DeviceTree:&lt;/P&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;&lt;CODE class="" style="color: #000000 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;ranges = &amp;lt;&lt;/CODE&gt;&lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x81000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x0&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x00000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x00010000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x0&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x00010000&lt;/CODE&gt;&amp;nbsp;&amp;nbsp; &lt;CODE class="" style="color: #008200 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;/* downstream I/O */&lt;/CODE&gt;&lt;/DIV&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;&lt;CODE class="" style="background: 0px center; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x82000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x0&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40000000&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x0&lt;/CODE&gt; &lt;CODE class="" style="color: #009900 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;0x40000000&lt;/CODE&gt;&lt;CODE class="" style="color: #000000 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;&amp;gt;; &lt;/CODE&gt;&lt;CODE class="" style="color: #008200 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;/*non-prefetchable memory */&lt;/CODE&gt;&lt;/DIV&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;&lt;CODE class="" style="color: #008200 !important; background: 0px center; border: 0px; font-size: 14px;"&gt;&lt;/CODE&gt;&lt;/DIV&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;I have confirmed this configuration by dumping&amp;nbsp;the iATU registers.&lt;/DIV&gt;&lt;DIV class="" style="color: #333333; background: 0px center #ffffff; border: 0px; font-size: 14px; padding: 0px 1em 0px 0px;"&gt;&lt;P&gt;&lt;STRONG&gt;Region1&lt;/STRONG&gt;: Base&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;0x40 0001 0000 ==&amp;gt; Target&amp;nbsp;&lt;SPAN&gt;0x0000 0000&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;Region2&lt;/STRONG&gt;: Base&amp;nbsp;0x40 4000 0000 ==&amp;gt; Target&amp;nbsp;0x4000 0000&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So effectively the iATU is translating the 40-bit BAR space physical address to 32-bit PCIe address space which is fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My question is why the default configuration only programs the outbound and not the inbound as well?&lt;/P&gt;&lt;P&gt;Is it not expected that the PCIe device will write to this BAR space area at address 0x40 0000 0000?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is a typical scenario&amp;nbsp;for a PCIe NIC card for example in terms of the inbound/outbound messages?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Sep 2016 12:52:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1021A-PCIe-iATU-configuration/m-p/615312#M1814</guid>
      <dc:creator>Tarek</dc:creator>
      <dc:date>2016-09-14T12:52:07Z</dc:date>
    </item>
    <item>
      <title>Re: LS1021A PCIe iATU configuration</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1021A-PCIe-iATU-configuration/m-p/615313#M1815</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have a great day,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Device tree is board specific. However the LS1021A has fixed memory map and there are 2 address ranges which can be used only for access to PCIe devices. 32 GB at 0x400000_0000 for the PCIe controller1 and 32 GB at 0x480000_0000 for the PCIe controller 2. So it is expected that for the LS1021A based board which use PCIe the device tree programs these 2 outbound regions. Notice both PCIe controllers can operate only as Root Complex. So NIC should be a PCIe End Point. NIC device driver can set inbound window if required. All MSI capable devices implement the MSI capability structure defined in the PCIe Specification. System software is ultimately responsible for enabling MSI support within a device.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Sep 2016 15:45:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1021A-PCIe-iATU-configuration/m-p/615313#M1815</guid>
      <dc:creator>r8070z</dc:creator>
      <dc:date>2016-09-15T15:45:38Z</dc:date>
    </item>
  </channel>
</rss>

