<?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>i.MX ProcessorsのトピックRe: i.MX6Q: Re-establishing a PCIe link</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Re-establishing-a-PCIe-link/m-p/262446#M26589</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Re-establish a PCIe link is apparently hindered by a published i.MX6 erratum - ERR005184: "PCIe: Clock pointers can lose sync during clock rate changes".&amp;nbsp; This probably may have been exacerbated in my case since I'm using an external reference for PCIe (see my &lt;A _jive_internal="true" href="https://community.nxp.com/thread/304283"&gt;previous post&lt;/A&gt;).&amp;nbsp; The erratum write up says the workaround is implemented in version ER3 of Freescale's BSP.&amp;nbsp; However, I think that implementation is incomplete.&amp;nbsp; The steps that I took to get the link up after it dropped are below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Disable the LTSSM -- IOMUX GPR12, bit 10 = 0&lt;/LI&gt;&lt;LI&gt;Reprogram any PCIe PHY registers that were previously overridden.&lt;OL&gt;&lt;LI&gt;PCIe PHY registers appear to revert to their reset states when the link goes down (perhaps an errata in of itself?)&lt;/LI&gt;&lt;LI&gt;Necessary in my case since I'm using an external reference for the PCIe&lt;/LI&gt;&lt;LI&gt;May be necessary if receiver equalizer settings are adjusted (reference IMX6 erratum ERR004489: "PCIe: 9000505660—PCIe2 receiver equalizer settings").&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;Disable Gen2 support in the PCIe MAC -- PCIE_RC_LCR, bits [3:0] = 0b0001&lt;/LI&gt;&lt;LI&gt;Enable the LTSSM -- IOMUX GPR12, bit 10 = 1&lt;/LI&gt;&lt;LI&gt;Wait for LTSSM to achieve state 17 (L0)&amp;nbsp; -- call imx_pcie_link_up() routine from the BSP PCIe driver.&lt;/LI&gt;&lt;LI&gt;Enable Gen2 support in the PCIe MAC -- PCIE_RC_LCR, bits [3:0] = 0b0010&lt;/LI&gt;&lt;LI&gt;Request a directed speed change to Gen2 -- PCIE_PL_G2CR, bit 17 = 1&lt;/LI&gt;&lt;LI&gt;Wait for LTSSM to achieve state 17 (L0)&lt;/LI&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 21 Feb 2013 15:48:03 GMT</pubDate>
    <dc:creator>kitz36</dc:creator>
    <dc:date>2013-02-21T15:48:03Z</dc:date>
    <item>
      <title>i.MX6Q: Re-establishing a PCIe link</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Re-establishing-a-PCIe-link/m-p/262445#M26588</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Has anyone attempted to re-establish a PCIe link to an endpoint after the link dropped?&amp;nbsp; In my case I have a Gen2 PCIe link established to a single endpoint when Linux comes up.&amp;nbsp; I take the endpoint down either by resetting it or performing a PCIe "hot reset".&amp;nbsp; In all cases the PCIe link comes back as a&lt;EM&gt; Gen1&lt;/EM&gt; link.&amp;nbsp; However, as soon as any traffic is sent over the link (reading the Vendor ID via a config-read, for example) the i.MX6Q &lt;EM&gt;hangs&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The LTSSM on the i.MX6Q seems to get to the final "L0" state.&amp;nbsp; I've looked at the link re-establishment using a PCIe protocol analyzer.&amp;nbsp; I don't think the i.MX6Q ever initiates a "speed change" to Gen2 the way it does on the initial bring-up.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anyone else see this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Charlie&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Feb 2013 00:40:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Re-establishing-a-PCIe-link/m-p/262445#M26588</guid>
      <dc:creator>kitz36</dc:creator>
      <dc:date>2013-02-19T00:40:52Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q: Re-establishing a PCIe link</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Re-establishing-a-PCIe-link/m-p/262446#M26589</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Re-establish a PCIe link is apparently hindered by a published i.MX6 erratum - ERR005184: "PCIe: Clock pointers can lose sync during clock rate changes".&amp;nbsp; This probably may have been exacerbated in my case since I'm using an external reference for PCIe (see my &lt;A _jive_internal="true" href="https://community.nxp.com/thread/304283"&gt;previous post&lt;/A&gt;).&amp;nbsp; The erratum write up says the workaround is implemented in version ER3 of Freescale's BSP.&amp;nbsp; However, I think that implementation is incomplete.&amp;nbsp; The steps that I took to get the link up after it dropped are below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Disable the LTSSM -- IOMUX GPR12, bit 10 = 0&lt;/LI&gt;&lt;LI&gt;Reprogram any PCIe PHY registers that were previously overridden.&lt;OL&gt;&lt;LI&gt;PCIe PHY registers appear to revert to their reset states when the link goes down (perhaps an errata in of itself?)&lt;/LI&gt;&lt;LI&gt;Necessary in my case since I'm using an external reference for the PCIe&lt;/LI&gt;&lt;LI&gt;May be necessary if receiver equalizer settings are adjusted (reference IMX6 erratum ERR004489: "PCIe: 9000505660—PCIe2 receiver equalizer settings").&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;Disable Gen2 support in the PCIe MAC -- PCIE_RC_LCR, bits [3:0] = 0b0001&lt;/LI&gt;&lt;LI&gt;Enable the LTSSM -- IOMUX GPR12, bit 10 = 1&lt;/LI&gt;&lt;LI&gt;Wait for LTSSM to achieve state 17 (L0)&amp;nbsp; -- call imx_pcie_link_up() routine from the BSP PCIe driver.&lt;/LI&gt;&lt;LI&gt;Enable Gen2 support in the PCIe MAC -- PCIE_RC_LCR, bits [3:0] = 0b0010&lt;/LI&gt;&lt;LI&gt;Request a directed speed change to Gen2 -- PCIE_PL_G2CR, bit 17 = 1&lt;/LI&gt;&lt;LI&gt;Wait for LTSSM to achieve state 17 (L0)&lt;/LI&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Feb 2013 15:48:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Re-establishing-a-PCIe-link/m-p/262446#M26589</guid>
      <dc:creator>kitz36</dc:creator>
      <dc:date>2013-02-21T15:48:03Z</dc:date>
    </item>
  </channel>
</rss>

