<?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のトピックimx rt 1024: flexspi configuration</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/imx-rt-1024-flexspi-configuration/m-p/1783672#M218290</link>
    <description>&lt;P&gt;I am trying to understand how FLEXSPI gets configured for a 1024. I know the ROM code is responsible for setting it up &lt;STRONG&gt;without&lt;/STRONG&gt; DQS, and does some magic that sets the flexspi clocks, and that startup code nor polling SDK example &lt;STRONG&gt;reinitializes&lt;/STRONG&gt; flexspi at 133 MHz.&lt;/P&gt;&lt;P&gt;I know the macros &lt;STRONG&gt;XIP_EXTERNAL_FLASH&lt;/STRONG&gt; and &lt;STRONG&gt;XIP_BOOT_HEADER_DCD_ENABLE&lt;/STRONG&gt; having influence on this flexspi configuration, but I am completely lost on what EXACTLY happens WHERE and WHY.&lt;/P&gt;&lt;P&gt;Then this comment struck me:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;    /* In SDK projects, external flash (configured by FLEXSPI) will be initialized by dcd.
     * With this macro XIP_EXTERNAL_FLASH, usb1 pll (selected to be FLEXSPI clock source in SDK projects) will be left unchanged.
     * Note: If another clock source is selected for FLEXSPI, user may want to avoid changing that clock as well.*/&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you confirm that the clock source for flexspi is usb1, and thus, that changes to PFD2 clock as done here have no impact at all??&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;static inline void flexspi_clock_init()
{
#if defined(XIP_EXTERNAL_FLASH) &amp;amp;&amp;amp; (XIP_EXTERNAL_FLASH == 1)
    /* Switch to PLL2 for XIP to avoid hardfault during re-initialize clock. */
    CLOCK_InitSysPfd(kCLOCK_Pfd2, 24);    /* Set PLL2 PFD2 clock 396MHZ. */
    CLOCK_SetMux(kCLOCK_FlexspiMux, 0x2); /* Choose PLL2 PFD2 clock as flexspi source clock. */
    CLOCK_SetDiv(kCLOCK_FlexspiDiv, 2);   /* flexspi clock 133M. */
#else
    const clock_usb_pll_config_t g_ccmConfigUsbPll = {.loopDivider = 0U};

    CLOCK_InitUsb1Pll(&amp;amp;g_ccmConfigUsbPll);
    CLOCK_InitUsb1Pfd(kCLOCK_Pfd0, 24);   /* Set PLL3 PFD0 clock 360MHZ. */
    CLOCK_SetMux(kCLOCK_FlexspiMux, 0x3); /* Choose PLL3 PFD0 clock as flexspi source clock. */
    CLOCK_SetDiv(kCLOCK_FlexspiDiv, 2);   /* flexspi clock 120M. */
#endif
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there any application note that explains the FLEXPI mystery properly? I am going back and forth between reference manual, SDK examples, and mystic comments. I really hope there is somebody at NXP support who still understands how all of this works.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 05 Jan 2024 11:40:24 GMT</pubDate>
    <dc:creator>bp1979</dc:creator>
    <dc:date>2024-01-05T11:40:24Z</dc:date>
    <item>
      <title>imx rt 1024: flexspi configuration</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx-rt-1024-flexspi-configuration/m-p/1783672#M218290</link>
      <description>&lt;P&gt;I am trying to understand how FLEXSPI gets configured for a 1024. I know the ROM code is responsible for setting it up &lt;STRONG&gt;without&lt;/STRONG&gt; DQS, and does some magic that sets the flexspi clocks, and that startup code nor polling SDK example &lt;STRONG&gt;reinitializes&lt;/STRONG&gt; flexspi at 133 MHz.&lt;/P&gt;&lt;P&gt;I know the macros &lt;STRONG&gt;XIP_EXTERNAL_FLASH&lt;/STRONG&gt; and &lt;STRONG&gt;XIP_BOOT_HEADER_DCD_ENABLE&lt;/STRONG&gt; having influence on this flexspi configuration, but I am completely lost on what EXACTLY happens WHERE and WHY.&lt;/P&gt;&lt;P&gt;Then this comment struck me:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;    /* In SDK projects, external flash (configured by FLEXSPI) will be initialized by dcd.
     * With this macro XIP_EXTERNAL_FLASH, usb1 pll (selected to be FLEXSPI clock source in SDK projects) will be left unchanged.
     * Note: If another clock source is selected for FLEXSPI, user may want to avoid changing that clock as well.*/&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you confirm that the clock source for flexspi is usb1, and thus, that changes to PFD2 clock as done here have no impact at all??&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;static inline void flexspi_clock_init()
{
#if defined(XIP_EXTERNAL_FLASH) &amp;amp;&amp;amp; (XIP_EXTERNAL_FLASH == 1)
    /* Switch to PLL2 for XIP to avoid hardfault during re-initialize clock. */
    CLOCK_InitSysPfd(kCLOCK_Pfd2, 24);    /* Set PLL2 PFD2 clock 396MHZ. */
    CLOCK_SetMux(kCLOCK_FlexspiMux, 0x2); /* Choose PLL2 PFD2 clock as flexspi source clock. */
    CLOCK_SetDiv(kCLOCK_FlexspiDiv, 2);   /* flexspi clock 133M. */
#else
    const clock_usb_pll_config_t g_ccmConfigUsbPll = {.loopDivider = 0U};

    CLOCK_InitUsb1Pll(&amp;amp;g_ccmConfigUsbPll);
    CLOCK_InitUsb1Pfd(kCLOCK_Pfd0, 24);   /* Set PLL3 PFD0 clock 360MHZ. */
    CLOCK_SetMux(kCLOCK_FlexspiMux, 0x3); /* Choose PLL3 PFD0 clock as flexspi source clock. */
    CLOCK_SetDiv(kCLOCK_FlexspiDiv, 2);   /* flexspi clock 120M. */
#endif
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there any application note that explains the FLEXPI mystery properly? I am going back and forth between reference manual, SDK examples, and mystic comments. I really hope there is somebody at NXP support who still understands how all of this works.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Jan 2024 11:40:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx-rt-1024-flexspi-configuration/m-p/1783672#M218290</guid>
      <dc:creator>bp1979</dc:creator>
      <dc:date>2024-01-05T11:40:24Z</dc:date>
    </item>
    <item>
      <title>Re: imx rt 1024: flexspi configuration</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx-rt-1024-flexspi-configuration/m-p/1784216#M218354</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/189239"&gt;@bp1979&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;This question is the same as another your post:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.nxp.com/t5/i-MX-Processors/imx-rt-1024-flexpi-clock-when-flash-supposed-to-run-60-MHz/m-p/1783622#M218285" target="_blank"&gt;https://community.nxp.com/t5/i-MX-Processors/imx-rt-1024-flexpi-clock-when-flash-supposed-to-run-60-MHz/m-p/1783622#M218285&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Which I already reply you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;XIP FCB will use the 60Mhz, as th ROM didn't enable the DQS pin.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; But, in your code, you can change the flexspi Clock more than 60Mhz, as you can define the DQS pin in the pinmux directly, that's why you find the flexspi_polling demo is using 133Mhz, as that is defined the DQS pin in the code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Wish it helps you!&lt;/P&gt;
&lt;P&gt;If you still have questions about it, please kindly let me know.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Kerry&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jan 2024 08:24:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx-rt-1024-flexspi-configuration/m-p/1784216#M218354</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2024-01-08T08:24:32Z</dc:date>
    </item>
  </channel>
</rss>

