<?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 IMX7D using internal PCIE_REFCLK in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/IMX7D-using-internal-PCIE-REFCLK/m-p/1625653#M203505</link>
    <description>&lt;P&gt;Hi forum, we're using an i.MX7D SoM by Variscite on our own carrier board. The SoC on the module fails to boot because our board doesn't have a 100 MHz &lt;A href="https://www.variscite.com/wp-content/uploads/2017/12/VAR-MX7CustomBoard-Schematics.pdf#2532495936_2533395536_0" target="_blank" rel="noopener"&gt;external PCIe reference clock&lt;/A&gt;, and the kernel hangs with the following line:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;imx6q-pcie 33800000.pcie: PCIe PLL lock timeout&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The datasheet suggests the SoC is able to use an internal reference clock. We've tried disabling &lt;FONT face="courier new,courier"&gt;ext_osc&lt;/FONT&gt; in the device tree:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;&amp;amp;pcie {
    ext_osc = &amp;lt;0&amp;gt;;
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However it appears that this option is only effective for iMX8 and iMX6, not iMX7, as in NXP's kernel &lt;A href="https://github.com/nxp-imx/linux-imx/blob/imx_5.4.24_2.1.0/drivers/pci/controller/dwc/pci-imx6.c" target="_blank" rel="noopener"&gt;PCIe driver code&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;As a workaround, since we don't need PCIe for our application for now, we commented out the call to &lt;SPAN class=""&gt;&lt;FONT face="courier new,courier"&gt;imx7d_pcie_wait_for_phy_pll_lock&lt;/FONT&gt; and the kernel boots successfully without the external REFCLK. We would like to find a way to properly switch the SoC to using an internal reference clock.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;We've attached the hanging kernel boot log. Much thanks.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 31 Mar 2023 00:21:05 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2023-03-31T00:21:05Z</dc:date>
    <item>
      <title>IMX7D using internal PCIE_REFCLK</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX7D-using-internal-PCIE-REFCLK/m-p/1625653#M203505</link>
      <description>&lt;P&gt;Hi forum, we're using an i.MX7D SoM by Variscite on our own carrier board. The SoC on the module fails to boot because our board doesn't have a 100 MHz &lt;A href="https://www.variscite.com/wp-content/uploads/2017/12/VAR-MX7CustomBoard-Schematics.pdf#2532495936_2533395536_0" target="_blank" rel="noopener"&gt;external PCIe reference clock&lt;/A&gt;, and the kernel hangs with the following line:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;imx6q-pcie 33800000.pcie: PCIe PLL lock timeout&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The datasheet suggests the SoC is able to use an internal reference clock. We've tried disabling &lt;FONT face="courier new,courier"&gt;ext_osc&lt;/FONT&gt; in the device tree:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;&amp;amp;pcie {
    ext_osc = &amp;lt;0&amp;gt;;
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However it appears that this option is only effective for iMX8 and iMX6, not iMX7, as in NXP's kernel &lt;A href="https://github.com/nxp-imx/linux-imx/blob/imx_5.4.24_2.1.0/drivers/pci/controller/dwc/pci-imx6.c" target="_blank" rel="noopener"&gt;PCIe driver code&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;As a workaround, since we don't need PCIe for our application for now, we commented out the call to &lt;SPAN class=""&gt;&lt;FONT face="courier new,courier"&gt;imx7d_pcie_wait_for_phy_pll_lock&lt;/FONT&gt; and the kernel boots successfully without the external REFCLK. We would like to find a way to properly switch the SoC to using an internal reference clock.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;We've attached the hanging kernel boot log. Much thanks.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Mar 2023 00:21:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX7D-using-internal-PCIE-REFCLK/m-p/1625653#M203505</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2023-03-31T00:21:05Z</dc:date>
    </item>
    <item>
      <title>Re: IMX7D using internal PCIE_REFCLK</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX7D-using-internal-PCIE-REFCLK/m-p/1627054#M203635</link>
      <description>&lt;P&gt;Bumping for visibility because the post was marked as spam by mistake.&lt;/P&gt;</description>
      <pubDate>Mon, 03 Apr 2023 18:45:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX7D-using-internal-PCIE-REFCLK/m-p/1627054#M203635</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2023-04-03T18:45:29Z</dc:date>
    </item>
  </channel>
</rss>

