<?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: How to write data to qspi configuration register? in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701244#M108947</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Keith,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You don't show the code used to load up the TX FIFO&amp;nbsp;and and trigger the execution of the LUT sequence.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Notwithstanding, there appears to be a&amp;nbsp;problem with:&amp;nbsp;&amp;nbsp;OPRND1(0x80), which means that you expect to send 128 bytes from the TX buffer.&amp;nbsp; Cypress WRR expects 2 bytes (one for the configuration register and one for the status register), so OPRND1(0x02) is correct.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 06 Sep 2018 20:41:54 GMT</pubDate>
    <dc:creator>deniscollis</dc:creator>
    <dc:date>2018-09-06T20:41:54Z</dc:date>
    <item>
      <title>How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701236#M108939</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;I&amp;nbsp;&lt;/SPAN&gt;am using the&amp;nbsp;evkmcimx6ull eval board that has a Micron&amp;nbsp;MT25QL256ABA Qspi flash on it. I am trying to write to the non-volatile configuration register inside the Qspi flash. I believe I have the correct command sequence,&amp;nbsp;0x200404B1, but how do I send the data to program the register with? I have tried using the TX Buffer Data Register, but could not get it to write out the data, the reference manual states the TBDR is for the page programming commands. What buffer is used for register writes?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Sep 2017 18:17:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701236#M108939</guid>
      <dc:creator>kevincronn</dc:creator>
      <dc:date>2017-09-12T18:17:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701237#M108940</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kevin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;one can try to follow sect.43.5.3.5 Issuing SFM Commands i.MX6ULL Reference Manual:&lt;/P&gt;&lt;P&gt;For IP Commands not related to specific addresses, the base address of the related &lt;BR /&gt;flash need to be programmed.For example, for an instruction which does not require &lt;BR /&gt;an address (i.e. write enable instruction) the SFAR should be programmed with the &lt;BR /&gt;base address of the memory the command is to be sent to.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.nxp.com/docs/en/reference-manual/IMX6ULRM.pdf"&gt;http://www.nxp.com/docs/en/reference-manual/IMX6ULRM.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Best regards&lt;BR /&gt;igor&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Sep 2017 02:21:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701237#M108940</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2017-09-13T02:21:39Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701238#M108941</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Igor,&lt;/P&gt;&lt;P&gt;I am following the code in the qspi driver example in the SDK_2.2. The code in the SDK does not provide an example of a register write. The code given does work, the program and erase, I have run it and verified it works. The write enable function does also work and I am using that in my code. I have an oscilloscope connected and can see that the command sequence is being put out onto the qspi interface but I cannot get the data of what I want to program the register to out onto the interface. I am using the IP functions given in the SDK. Here is my code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void cmd_write_config_reg(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;static uint32_t tx_data = 0x000078FF;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; while (QSPI_GetStatusFlags(EXAMPLE_QSPI) &amp;amp; kQSPI_Busy)&lt;BR /&gt; {&lt;BR /&gt; }&lt;BR /&gt; QSPI_ClearFifo(EXAMPLE_QSPI, kQSPI_TxFifo);&lt;BR /&gt; QSPI_SetIPCommandAddress(EXAMPLE_QSPI, FSL_FEATURE_QSPI_AMBA_BASE);&lt;BR /&gt; cmd_write_enable();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;QSPI_ExecuteIPCommand(EXAMPLE_QSPI, 28U);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;QSPI_WriteData(EXAMPLE_QSPI, tx_data);&lt;BR /&gt;while (QSPI_GetStatusFlags(EXAMPLE_QSPI) &amp;amp; kQSPI_Busy)&lt;BR /&gt; {&lt;BR /&gt; }&lt;BR /&gt; //check_if_finished();&lt;BR /&gt; PRINTF("Write config reg complete!\r\n");&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Again, my command sequence is&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;0x200404B1 (28U in the LUT), I can see B1 on the qspi interface and that is the correct code for a non-volatile configuration register write, but the tx_data in the QSPI_WriteData is not driven onto the data lines. The&amp;nbsp;&lt;SPAN style="color: #3d3d3d;"&gt;QSPI_WriteData() function is one given with the SDK and used in the qspi driver code, it just puts the data into the TX FIFO to be transmitted. I'm guessing for a register write there is something that must be done differently or I am missing a step somewhere.?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Sep 2017 13:15:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701238#M108941</guid>
      <dc:creator>kevincronn</dc:creator>
      <dc:date>2017-09-13T13:15:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701239#M108942</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I believe I have answered my own question. I looks like you have to fill the TX FIFO with 16 bytes before it will output. I was only sending 4 bytes. Maybe that's in the reference manual somewhere? I haven't found it yet.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Sep 2017 14:53:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701239#M108942</guid>
      <dc:creator>kevincronn</dc:creator>
      <dc:date>2017-09-13T14:53:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701240#M108943</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying something similar with a Cypress part, using the same driver example as Kevin.&amp;nbsp; The a bit in the configuration register must be set to enable QUAD mode. The 8-bit Status Register and 8-bit Configuration are set simultaneously with the Write Register command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This does not work, i.e. quad-enable bit remains unset. Can anyone see why?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="property macro token"&gt;#ifdef BOARD_QSPI_DEVICE_S25FL128S&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;// Cypress S25FL128S&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;QSPI_ClearFifo&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;BOARD_QSPI_BASE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; kQSPI_TxFifo&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// set the address (always the base address for register writes)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;QSPI_SetIPCommandAddress&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;BOARD_QSPI_BASE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; FSL_FEATURE_QSPI_AMBA_BASE&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;cmd_write_enable&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;QSPI_ExecuteIPCommand&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;BOARD_QSPI_BASE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; QSPI_LUT_SEQ_WRITE_REGISTER&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// Load Tx FIFO - push at least 16 bytes before it will pop&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; i&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; i&lt;SPAN class="operator token"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;4&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; i&lt;SPAN class="operator token"&gt;++&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;QSPI_WriteData&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;BOARD_QSPI_BASE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x02020202&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;QSPI_GetStatusFlags&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;BOARD_QSPI_BASE&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt; kQSPI_Busy&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#endif‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;
&lt;SPAN class="keyword token"&gt;typedef&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;enum&lt;/SPAN&gt; _qspi_lut_seq_index
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//------CUT------&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; QSPI_LUT_SEQ_WRITE_REGISTER &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;20&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;/* !&amp;lt; register write sequence */&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//------CUT------&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt; qspi_lut_seq_index_t&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;


&lt;SPAN class="keyword token"&gt;typedef&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;enum&lt;/SPAN&gt; _cypress_flash_command
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//------CUT------&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; C_WRITE_STATUS_REGISTER &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x01&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//------CUT------&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt; cypress_flash_command_t&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;


&lt;SPAN class="keyword token"&gt;const&lt;/SPAN&gt; uint32_t g_qspi_flash_lookup_table&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;FSL_FEATURE_QSPI_LUT_DEPTH&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//------CUT------&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;/* Seq5: Write Status and Config Registers */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;QSPI_LUT_SEQ_WRITE_REGISTER&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;QSPI_LUT_SEQ&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QSPI_CMD&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; QSPI_PAD_1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; C_WRITE_REGISTER&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QSPI_WRITE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; QSPI_PAD_1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;//------CUT------&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Denis&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Aug 2018 18:48:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701240#M108943</guid>
      <dc:creator>deniscollis</dc:creator>
      <dc:date>2018-08-22T18:48:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701241#M108944</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Okay, I got it!&amp;nbsp; Added a fixed delay for the Flash to finish. (Just to be safe I did not want to use check_if_finished() as this reads the Status Register - the same register I am writing - and&amp;nbsp;did not want to risk interference.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;QSPI_GetStatusFlags&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;BOARD_QSPI_BASE&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt; kQSPI_Busy&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;// Give some time for the device to finish.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; i &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; i &lt;SPAN class="operator token"&gt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;400&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; i&lt;SPAN class="operator token"&gt;++&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;__ASM&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"nop"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
&lt;SPAN class="property macro token"&gt;#endif&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Aug 2018 22:44:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701241#M108944</guid>
      <dc:creator>deniscollis</dc:creator>
      <dc:date>2018-08-22T22:44:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701242#M108945</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your last PRINTF() has the side-effect of inserting a delay.&amp;nbsp; (See my reply below, where I used a NOP loop instead)&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Aug 2018 22:48:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701242#M108945</guid>
      <dc:creator>deniscollis</dc:creator>
      <dc:date>2018-08-22T22:48:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701243#M108946</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp; Having the same issue on an LS1046, however I am trying to get this going in UBOOT. I added the sequence below in the LUT. I am attempting to set SRWD to control write protection on the same CYPRESS NOR as above:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Write Register 0x01 */&lt;BR /&gt; lut_base = SEQID_WRR * 4;&lt;BR /&gt; qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;lut[lut_base],&lt;BR /&gt; OPRND0(QSPI_CMD_WRR) | PAD0(LUT_PAD1) | INSTR0(LUT_CMD) |&lt;BR /&gt; OPRND1(0x80) | PAD1(LUT_PAD1) | INSTR1(LUT_WRITE));&lt;BR /&gt; qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;lut[lut_base + 1], 0);&amp;nbsp; //end of sequence&lt;BR /&gt; qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;lut[lut_base + 2], 0);&lt;BR /&gt; qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;lut[lut_base + 3], 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The sequence is invoked on a flash write following a WREN sequence, however it does not seem to be setting the bit in the control register. Added the delay as above, but no joy. Any ideas I can try?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Sep 2018 15:18:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701243#M108946</guid>
      <dc:creator>kzambrano</dc:creator>
      <dc:date>2018-09-05T15:18:19Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701244#M108947</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Keith,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You don't show the code used to load up the TX FIFO&amp;nbsp;and and trigger the execution of the LUT sequence.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Notwithstanding, there appears to be a&amp;nbsp;problem with:&amp;nbsp;&amp;nbsp;OPRND1(0x80), which means that you expect to send 128 bytes from the TX buffer.&amp;nbsp; Cypress WRR expects 2 bytes (one for the configuration register and one for the status register), so OPRND1(0x02) is correct.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Sep 2018 20:41:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701244#M108947</guid>
      <dc:creator>deniscollis</dc:creator>
      <dc:date>2018-09-06T20:41:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701245#M108948</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Denis,&lt;/P&gt;&lt;P&gt;&amp;nbsp; Thx a million, I was way off on this. For some reason I thought that the command required the data immediate after the instruction. So now it makes sense, load the data in the buffer then issue the sequence which will use the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Btw, I believe the CYPRESS part comes out of&amp;nbsp; reset out of QPI mode. So it will only require a single byte. Otherwise you are correct, it would need 2 bytes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Again, Much Gras...TGIF!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Sep 2018 11:55:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701245#M108948</guid>
      <dc:creator>kzambrano</dc:creator>
      <dc:date>2018-09-07T11:55:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to write data to qspi configuration register?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701246#M108949</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In the spirit of helping a brother out, here is the&amp;nbsp; snippets from UBOOT:&lt;/P&gt;&lt;P&gt;------- Corrected LUT setup&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;/* Write Register 0x01 */&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;lut_base = SEQID_WRR * 4;&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;lut[lut_base],&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;OPRND0(QSPI_CMD_WRR) | PAD0(LUT_PAD1) | INSTR0(LUT_CMD) |&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;OPRND1(0x1) | PAD1(LUT_PAD1) | INSTR1(LUT_WRITE));&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;nbsp; as Denis pointed out&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;lut[lut_base + 1], 0);&amp;nbsp; //end of sequence&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;lut[lut_base + 2], 0);&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #ffffff;" /&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;lut[lut_base + 3], 0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;------ after status register sequence, enabled SRWD&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;status_reg |= FLASH_STATUS_SRWD;&lt;/P&gt;&lt;P&gt;qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;tbdr, qspi_endian_xchg(status_reg));&lt;BR /&gt; while (qspi_read32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;sr) &amp;amp; QSPI_SR_BUSY_MASK)&lt;BR /&gt; ;&lt;/P&gt;&lt;P&gt;qspi_write32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;ipcr,&lt;BR /&gt; (SEQID_WRR &amp;lt;&amp;lt; QSPI_IPCR_SEQID_SHIFT) | 1);&lt;BR /&gt; while (qspi_read32(priv-&amp;gt;flags, &amp;amp;regs-&amp;gt;sr) &amp;amp; QSPI_SR_BUSY_MASK)&lt;BR /&gt; ;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;-----------------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Now reading back CYPRESS status register-1 shows SRWD set. Now just&amp;nbsp; have to figure&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;why the the flash does not follow WP#. With the change above, now write are allowed.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Sep 2018 14:11:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-write-data-to-qspi-configuration-register/m-p/701246#M108949</guid>
      <dc:creator>kzambrano</dc:creator>
      <dc:date>2018-09-07T14:11:08Z</dc:date>
    </item>
  </channel>
</rss>

