<?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: FlexSPI NAND FLASH - Set Page for Read  in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950717#M4255</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="345772" data-username="variable_andrew" href="https://community.nxp.com/people/variable_andrew"&gt;variable_andrew&lt;/A&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Thanks a lot for your detail information and the effort.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; The confirmation about the set the page before read the nand flash information from Toshiba is useful.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have a question, if you modify your manual API read command, comment read flash, just leave the set page code, then you use the AHB to read the data, whether your test can pass or not?&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;kerry&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 10 Sep 2019 05:49:26 GMT</pubDate>
    <dc:creator>kerryzhou</dc:creator>
    <dc:date>2019-09-10T05:49:26Z</dc:date>
    <item>
      <title>FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950713#M4251</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How is it possible to provide the i.MX device (I'm on an RT1015) a way to set the current NAND FLASH page?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The root of my problem&amp;nbsp;is that it appears to be&amp;nbsp;necessary to set the NAND read page before reading the buffer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The current sequence I have programmed into the FLSHA1CR2 is:&amp;nbsp;&lt;/P&gt;&lt;DIV style="color: #d4d4d4; background-color: #1e1e1e; font-weight: normal; font-size: 12px;"&gt;&lt;DIV&gt;&lt;SPAN&gt;.ARDSeqIndex &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; NAND_CMD_LUT_SEQ_IDX_READ_FROM_CACHE,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; .ARDSeqNumber &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;where that LUT index goes to:&lt;/P&gt;&lt;DIV style="color: #d4d4d4; background-color: #1e1e1e; font-weight: normal; font-size: 12px;"&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 11px;"&gt;&lt;SPAN style="color: #d4d4d4;"&gt;&amp;nbsp; &amp;nbsp; [&lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;4&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;*&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; NAND_CMD_LUT_SEQ_IDX_READ_FROM_CACHE] &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;FLEXSPI_LUT_SEQ&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;0x0B&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;, kFLEXSPI_Command_DUMMY_SDR, kFLEXSPI_1PAD, &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;3&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;),&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 11px;"&gt;&lt;SPAN style="color: #d4d4d4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;4&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;*&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; NAND_CMD_LUT_SEQ_IDX_READ_FROM_CACHE &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;+&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;] &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;FLEXSPI_LUT_SEQ&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;(kFLEXSPI_Command_CADDR_SDR, kFLEXSPI_1PAD, &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;13&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;, kFLEXSPI_Command_DUMMY_SDR, kFLEXSPI_1PAD, &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;8&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;),&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 11px;"&gt;&lt;SPAN style="color: #d4d4d4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;4&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;*&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; NAND_CMD_LUT_SEQ_IDX_READ_FROM_CACHE &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;+&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;2&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;] &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;FLEXSPI_LUT_SEQ&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;(kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;0x80&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;),&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ie - for programming the AHB system with the&amp;nbsp;ReadSequence - the&amp;nbsp;sequence provided only reads the &lt;EM&gt;&lt;STRONG&gt;current&lt;/STRONG&gt;&lt;/EM&gt; NAND FLASH Buffer (without&amp;nbsp;updating it if you want to read a different page).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I do an ERASE on some given page (testing on page 0 address 0), and then do a read using the AHB (ie - a memcpy from 0x60000000) w/o explicitly setting the current NAND page to 0, I don't get 0xFF's back.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I manually set the read page&amp;nbsp;and then read - I get the expected data back.&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;/P&gt;&lt;P class=""&gt;I need to somehow create a sequence that will set the NAND page, wait until set page finishes, and then read the NAND buffer.&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;BR /&gt;I can do that via my own API read commands, but how do I tell the ARM AHB system how to do this? (my testing has shown set page takes about 100 us - checked by polling the NAND status register.&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;/P&gt;&lt;P class=""&gt;Heads up to &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/kerryzhou"&gt;kerryzhou&lt;/A&gt;‌ - this was the actual erase issue I was having - unrelated to the other thread about frequency / voltage / etc.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2019 19:17:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950713#M4251</guid>
      <dc:creator>variable_andrew</dc:creator>
      <dc:date>2019-09-04T19:17:34Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950714#M4252</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/kerryzhou"&gt;kerryzhou&lt;/A&gt;‌ - updated the category for this thread&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Sep 2019 14:25:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950714#M4252</guid>
      <dc:creator>variable_andrew</dc:creator>
      <dc:date>2019-09-06T14:25:51Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950715#M4253</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A _jive_internal="true" data-content-finding="Community" data-userid="345772" data-username="variable_andrew" href="https://community.nxp.com/people/variable_andrew"&gt;variable_andrew&lt;/A&gt; ,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Thanks a lot for your cooperation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Could you also provide these information:&lt;/P&gt;&lt;P&gt;1. manually set the read page&amp;nbsp;and then read - I get the expected data back.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Please share the test result and the related code.&lt;/P&gt;&lt;P&gt;2. do a read using the AHB (ie - a memcpy from 0x60000000)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Just the same page with your mannually, please share your test result and the code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You said: necessary to set the NAND read page before reading the buffer, please also share some code on your side.&lt;/P&gt;&lt;P&gt;Then I can help you to check the details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;kerry&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Sep 2019 10:36:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950715#M4253</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2019-09-09T10:36:18Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950716#M4254</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/kerryzhou"&gt;kerryzhou&lt;/A&gt;‌,&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sure -&lt;/P&gt;&lt;P&gt;One&amp;nbsp;more piece of information, I contacted the Toshiba reps and they confirmed that&amp;nbsp;the Toshiba NAND FLASH&amp;nbsp;requires setting the page before reading. Here is what I said when I asked if&amp;nbsp;set page was required before read:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P style="margin: 0px; color: #222222; font-size: small; font-weight: 400; text-indent: 0px; background-color: #ffffff;"&gt;&lt;SPAN style="font-size: 11pt; color: #1f497d;"&gt;Correct.&amp;nbsp; The serial NAND buffer won’t have valid data in it until the read cell array command finishes executing correctly (assuming no uncorrectable ECC errors).&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0px; color: #222222; font-size: small; font-weight: 400; text-indent: 0px; background-color: #ffffff;"&gt;&lt;SPAN style="font-size: 11pt; color: #1f497d;"&gt;There is no autoloading of a page out of reset&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And from their manual (note that you have to wait for busy after set page (AKA "Read Cell Array"):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/86810i3CEDCFEF975366B7/image-size/large?v=v2&amp;amp;px=999" title="Screen Shot 2019-09-09 at 10.06.20 AM.png" alt="Screen Shot 2019-09-09 at 10.06.20 AM.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To your questions - here is the code for both:&lt;/P&gt;&lt;DIV style="color: #d4d4d4; background-color: #1e1e1e; font-weight: normal; font-size: 12px;"&gt;&lt;DIV style="font-weight: normal;"&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #569cd6;"&gt;int&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;testErase&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;post_erase_read_buffer&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;s_nand_program_buffer&lt;/SPAN&gt;&lt;SPAN&gt;){&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #4ec9b0;"&gt;status_t&lt;/SPAN&gt;&lt;SPAN&gt; status;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #c586c0;"&gt;#ifdef&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;TEST_AHB_READ&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; flashBaseAddress &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; EXAMPLE_FLEXSPI_AMBA_BASE &lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt;&lt;SPAN&gt; EXAMPLE_BLOCK_TO_ERASE &lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt; BLOCK_SIZE;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #c586c0;"&gt;#endif&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #6a9955;"&gt;/* Erase */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;status &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;flexspi_nand_flash_erase_block&lt;/SPAN&gt;&lt;SPAN&gt;(EXAMPLE_FLEXSPI, EXAMPLE_BLOCK_TO_ERASE &lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt; BLOCK_SIZE);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (status &lt;/SPAN&gt;&lt;SPAN&gt;!=&lt;/SPAN&gt;&lt;SPAN&gt; kStatus_Success)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #6a9955;"&gt;//Erase Failed&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;delay&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN style="color: #c586c0;"&gt;#ifndef&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;TEST_AHB_READ&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;status &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;flexspi_nand_flash_read_block&lt;/SPAN&gt;&lt;SPAN&gt;(EXAMPLE_FLEXSPI, &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;0x00000000&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;post_erase_read_buffer&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;], FLASH_PAGE_SIZE);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (status &lt;/SPAN&gt;&lt;SPAN&gt;!=&lt;/SPAN&gt;&lt;SPAN&gt; kStatus_Success) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #c586c0;"&gt;#else&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #6a9955;"&gt;// AHB read doesn't work until we have set page in AHB somehow...&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;DCACHE_CleanInvalidateByRange&lt;/SPAN&gt;&lt;SPAN&gt;(flashBaseAddress, FLASH_PAGE_SIZE);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;memcpy&lt;/SPAN&gt;&lt;SPAN&gt;(post_erase_read_buffer, (&lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;void&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;)(flashBaseAddress), &lt;SPAN style="background-color: #1e1e1e;"&gt;FLASH_PAGE_SIZE&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #c586c0;"&gt;#endif&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;memset&lt;/SPAN&gt;&lt;SPAN&gt;(s_nand_program_buffer, &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;0xFFU&lt;/SPAN&gt;&lt;SPAN&gt;, FLASH_PAGE_SIZE);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;memcmp&lt;/SPAN&gt;&lt;SPAN&gt;(s_nand_program_buffer, post_erase_read_buffer, FLASH_PAGE_SIZE)) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #6a9955;"&gt;//Erase Failed&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;delay&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;where if i do a #define TEST_AHB_READ 1 - then it tests the AHB read, otherwise it uses the API "manual" read -note that i'm using ifNOTdefined above in the 2nd #if.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;Here's the manual read block function:&amp;nbsp;&lt;/P&gt;&lt;DIV style="color: #d4d4d4; background-color: #1e1e1e; font-weight: normal; font-size: 12px;"&gt;&lt;DIV&gt;&lt;SPAN style="color: #4ec9b0;"&gt;status_t&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;flexspi_nand_flash_read_block&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;(FLEXSPI_Type &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;*&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;base&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;addr&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;*&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #569cd6;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;byteCount&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;){&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #4ec9b0;"&gt;status_t&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; status;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #4ec9b0;"&gt;flexspi_transfer_t&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; flashXfer;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;status &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;flexspi_nand_wait_bus_busy&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;(base);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; (status &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;!=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; kStatus_Success) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; status;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #6a9955;"&gt;//set page:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;deviceAddress&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; addr &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;0xFFFF8000&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;port&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; kFLEXSPI_PortA1;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;cmdType&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; kFLEXSPI_Command;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;SeqNumber&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;seqIndex&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; NAND_CMD_LUT_SEQ_IDX_READ_PAGE;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;status &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;FLEXSPI_TransferBlocking&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;(base, &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;flashXfer);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; (status &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;!=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; kStatus_Success) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; status;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;status &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;flexspi_nand_wait_bus_busy&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;(base);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; (status &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;!=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; kStatus_Success) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; status;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #6a9955;"&gt;//read flash:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;deviceAddress&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; addr &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;0x00007FFF&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;port&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; kFLEXSPI_PortA1;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;cmdType&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; kFLEXSPI_Read;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;SeqNumber&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #b5cea8;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;seqIndex&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; NAND_CMD_LUT_SEQ_IDX_READ_FROM_CACHE;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; data;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;flashXfer&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: #9cdcfe;"&gt;dataSize&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; byteCount;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;status &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;FLEXSPI_TransferBlocking&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;(base, &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;flashXfer);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; (status &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;!=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; kStatus_Success) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; status;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;status &lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #dcdcaa;"&gt;flexspi_nand_wait_bus_busy&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt;(base);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #c586c0;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color: #d4d4d4;"&gt; status;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #d4d4d4;"&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also have a testProgram that runs after testErase.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Results are:&amp;nbsp;&lt;/P&gt;&lt;P&gt;Out of reset - if i run with TEST_AHB_READ undefined, then this test passes (I read back 0xFF's).&amp;nbsp;&lt;/P&gt;&lt;P&gt;Out of reset - if I run with TEST_AHB_READ 1, then this test fails (might read back what was programmed in previously, etc).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also - if i remove the #ifndef's all together- meaning I run the manual API read command, immediately followed by the AHB read command via memcpy - then the test passes because the manual read command set the page in FLASH so that all subsequent reads are reading from the correct page.&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I reverse the order with the #ifndef's removed - then the data loaded in my memcpy will be incorrect, but then it will be overwritten by the&amp;nbsp;&lt;SPAN style="color: #dcdcaa; background-color: #1e1e1e;"&gt;flexspi_nand_flash_read_block&lt;/SPAN&gt;&amp;nbsp;call.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Sep 2019 14:07:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950716#M4254</guid>
      <dc:creator>variable_andrew</dc:creator>
      <dc:date>2019-09-09T14:07:15Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950717#M4255</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="345772" data-username="variable_andrew" href="https://community.nxp.com/people/variable_andrew"&gt;variable_andrew&lt;/A&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Thanks a lot for your detail information and the effort.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; The confirmation about the set the page before read the nand flash information from Toshiba is useful.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have a question, if you modify your manual API read command, comment read flash, just leave the set page code, then you use the AHB to read the data, whether your test can pass or not?&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;kerry&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Sep 2019 05:49:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950717#M4255</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2019-09-10T05:49:26Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950718#M4256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/kerryzhou"&gt;kerryzhou&lt;/A&gt;‌,&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes - if I just leave the set page code (plus poll the FLASH status register until busy clears) - then AHB read works.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;--- Just an additional bit of info:&amp;nbsp; if I&amp;nbsp;don't wait for&amp;nbsp;FLASH busy to clear, then it won't work.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Sep 2019 13:48:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950718#M4256</guid>
      <dc:creator>variable_andrew</dc:creator>
      <dc:date>2019-09-10T13:48:39Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950719#M4257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="345772" data-username="variable_andrew" href="https://community.nxp.com/people/variable_andrew"&gt;variable_andrew&lt;/A&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Thanks for your updated information.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; So, if add the set page code, then AHB read works, I think you can add that code, do you mind it?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; You need to wait for the flash busy to clear, otherwise, if the flash is busy, you do the new flash operation, it will have problems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Kerry&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Sep 2019 05:45:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950719#M4257</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2019-09-11T05:45:29Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950720#M4258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/kerryzhou"&gt;kerryzhou&lt;/A&gt;‌,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So after completing initial setup, it's still not possible to use this NAND FLASH just via the AHB i/f.&amp;nbsp;&lt;/P&gt;&lt;P&gt;What affect does this have regarding booting from NAND FLASH?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I noticed in the RM in section (&lt;STRONG&gt;iMXRT1015 Ref Manual Rev 0&lt;/STRONG&gt;) - &lt;EM&gt;&lt;STRONG&gt;Table 8-16&lt;/STRONG&gt;&lt;/EM&gt;: that the LUT has commands for both &lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;READ FROM CACHE&lt;/SPAN&gt; (cmd index 0) and &lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;READ PAGE&lt;/SPAN&gt; (cmd index 5).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does the RT1015 boot loader also use the &lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;READ PAGE&lt;/SPAN&gt;&amp;nbsp;before&amp;nbsp;&lt;SPAN style="font-family: 'courier new', courier, monospace;"&gt;READ FROM CACHE&lt;/SPAN&gt;?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From &lt;EM&gt;&lt;STRONG&gt;Table 8-10,&lt;/STRONG&gt;&lt;/EM&gt; it appears that I can load in a custom busy flag offset for the "status register", and also a page read command (what I've been calling "set page") + cache read command (what i've been calling "read page").... but it means I am required to burn in fuses in order to even test booting from NAND flash, correct?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does&amp;nbsp;this mean the RT bootloader also uses API commands to do a read as follows:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;read page,&lt;/LI&gt;&lt;LI&gt;wait for busy, or wait for SPI NAND BOOT Page Read Time (listed in &lt;EM&gt;&lt;STRONG&gt;Table 8-10&lt;/STRONG&gt;&lt;/EM&gt; Fuse 0x6E0[13:8]&lt;/LI&gt;&lt;LI&gt;Cache read&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Sep 2019 13:34:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950720#M4258</guid>
      <dc:creator>variable_andrew</dc:creator>
      <dc:date>2019-09-11T13:34:01Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950721#M4259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;&lt;A _jive_internal="true" class="" data-content-finding="Community" data-userid="345772" data-username="variable_andrew" href="https://community.nxp.com/people/variable_andrew"&gt;variable_andrew&lt;/A&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp; Do you want to boot from the toshiba NandFlash through the flexSPI? If yes, I will help you to check from our internal side, whether the boot process already contains the read page before read from cache.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Sep 2019 03:29:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950721#M4259</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2019-09-12T03:29:37Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950722#M4260</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/kerryzhou"&gt;kerryzhou&lt;/A&gt;‌,&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes - if it's possible we'd like to boot from the NAND Flash through the FlexSPI.&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you could check on that - it'd be much appreciated!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Sep 2019 15:26:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950722#M4260</guid>
      <dc:creator>variable_andrew</dc:creator>
      <dc:date>2019-09-12T15:26:37Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950723#M4261</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A _jive_internal="true" data-content-finding="Community" data-userid="345772" data-username="variable_andrew" href="https://community.nxp.com/people/variable_andrew"&gt;&lt;SPAN style="color: #0066cc; text-decoration: underline; "&gt;variable_andrew&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Sorry for my later reply because of Chinese Mid-Autumn Day, I will help you check it internally, and will give you feedback later, please wait patiently, thank!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P style="padding: 0px; min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="padding: 0px; min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Sep 2019 00:59:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950723#M4261</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2019-09-16T00:59:31Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950724#M4262</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="345772" data-username="variable_andrew" href="https://community.nxp.com/people/variable_andrew"&gt;variable_andrew&lt;/A&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I have a thought, you said, the AHB read has problems because it need to add the read cell array before read buffer/&lt;/P&gt;&lt;P&gt;&amp;nbsp; I think, whether you can add the read cell array in the read buffer LUT, or in the LUT table, the read cell array before the read buffer LUT?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; About the boot from nand flash,&amp;nbsp; you also need to modify the lookuptable in the configuration code. you can refer to the reference manual, there has an example for Winbond W25N01GVZEIG serial nandflash.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/88969iA3A0D92685907AB5/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Sep 2019 08:10:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950724#M4262</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2019-09-17T08:10:44Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950725#M4263</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/kerryzhou"&gt;kerryzhou&lt;/A&gt;‌&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;I think, whether you can add the read cell array in the read buffer LUT, or in the LUT table, the read cell array before the read buffer LUT?&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Can you clarify what you mean here? (Are you talking about in general - how to do AHB reads w/o manually reading cell array? Or are you talking about boot?)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If talking about AHB reads in general - Even if I change the order of the LUT to where the read cell array is before the read buff in the LUT - if I am only passing the read buffer sequence to the AHB system - how does it know to run the read cell array?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If talking about boot - in &lt;STRONG&gt;table 8-15&lt;/STRONG&gt;, they have the command indexes and LUT indexes for Boot from Serial NAND, and this shows Read from Cache with a command and LUT index of 0 for both, and then read page (to cache) has a command index of 5, LUT index of 11. (I'm not sure what the command index is referring to in &lt;STRONG&gt;table 8-15&lt;/STRONG&gt;?)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regarding Boot and setting the LUT - yes, I saw this example LUT&amp;nbsp;containing both page read (read cell array) and read cache (read buffer). Just wanted to confirm it was actually used in boot as it's not automatically consumed by the AHB for regular read use.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Sep 2019 11:35:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950725#M4263</guid>
      <dc:creator>variable_andrew</dc:creator>
      <dc:date>2019-09-17T11:35:27Z</dc:date>
    </item>
    <item>
      <title>Re: FlexSPI NAND FLASH - Set Page for Read</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950726#M4264</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="345772" data-username="variable_andrew" href="https://community.nxp.com/people/variable_andrew"&gt;variable_andrew&lt;/A&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp; Sorry for my misleading, please ignore my last above reply.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Today, I help you to check this point with some of our related departments.&lt;/P&gt;&lt;P&gt;&amp;nbsp; In factor, your test result already demonstrate it, and your operation is also correct.&lt;/P&gt;&lt;P&gt;&amp;nbsp; I get this information from our related department:&lt;/P&gt;&lt;P&gt;&amp;nbsp; You still need to add the IP command to read the cell array before you do the IP read or the AHB read.&lt;/P&gt;&lt;P&gt;&amp;nbsp; This is determined by the nandflash read structure, just as the toshiba told you. The FlexSPI module can't use the AHB to read the memory directly because of this nandflash design structure.&lt;/P&gt;&lt;P&gt;&amp;nbsp; I also check it with our ROM team, in factor, our ROM side also do it like your test result for the flexspi nand flash, use the IP command read page at first, then wait busy, then both IP and AHB can do the read cache function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt; Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Sep 2019 08:00:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/FlexSPI-NAND-FLASH-Set-Page-for-Read/m-p/950726#M4264</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2019-09-18T08:00:42Z</dc:date>
    </item>
  </channel>
</rss>

