<?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: RT1050 QSPI Flash Limitations in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745415#M247</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is a really interesting approach. Have you succeeded in doing this? Could you perhaps share code?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nikos&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 05 Jun 2018 15:33:13 GMT</pubDate>
    <dc:creator>tsantzi</dc:creator>
    <dc:date>2018-06-05T15:33:13Z</dc:date>
    <item>
      <title>RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745409#M241</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello I am using MCUXpresso IDE, version v10.1.0 [Build 589] [2017-11-14] with an MIMXRT1050-EVK SDK, version&amp;nbsp; &lt;SPAN class=""&gt;2.3.0&lt;/SPAN&gt; (2017-11-16). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am wondering if there are any limitations that may prevent the following write actions while simultaneously running an application out of the on-board QSPI Flash (IS25WP064):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;device serialization data&lt;/LI&gt;&lt;LI&gt;calibration constants&lt;/LI&gt;&lt;LI&gt;configuration data&lt;/LI&gt;&lt;LI&gt;system log&lt;/LI&gt;&lt;LI&gt;historic interval data&lt;/LI&gt;&lt;LI&gt;new firmware image staging&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i.e. can it simultaneously act as a persistent storage medium and what sort of limitations might be encountered?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Nov 2017 17:00:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745409#M241</guid>
      <dc:creator>ryanshuttlewort</dc:creator>
      <dc:date>2017-11-29T17:00:49Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745410#M242</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;A _jive_internal="true" data-content-finding="Community" data-userid="275529" data-username="ryanshuttleworth" href="https://community.nxp.com/people/ryanshuttleworth"&gt;Ryan&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On IMXRT1050EVK board, HyperFlash &amp;amp; QSPI NOR Flash can't be used &lt;SPAN&gt;simultaneously. From the schematic of EVK, you can find they are connected to the same interface (FlexSPI).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; In MIMXRT1050 MCU, there are 2 QSPI controller and 4 LPSPI controllers, so these IPs are independent. there are no any limitations on operations.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Have a nice day!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;TIC Weidong &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Nov 2017 03:01:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745410#M242</guid>
      <dc:creator>weidong_sun</dc:creator>
      <dc:date>2017-11-30T03:01:47Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745411#M243</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Wigros, thanks for the reply but that isn't exactly what I getting at.&amp;nbsp; We intend to use only the QSPI Flash in our final design and what I am trying to understand is when we are running code out of QSPI Flash can we also use it as general purpose storage for the activities listed in the original message.&amp;nbsp; i.e. as someone might use an EEPROM or serial Flash.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Nov 2017 15:23:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745411#M243</guid>
      <dc:creator>ryanshuttlewort</dc:creator>
      <dc:date>2017-11-30T15:23:47Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745412#M244</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Ryan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Did you find a solution for your question?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&amp;nbsp;&lt;/P&gt;&lt;P&gt;Gaetano&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 May 2018 10:42:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745412#M244</guid>
      <dc:creator>gaetano81</dc:creator>
      <dc:date>2018-05-03T10:42:10Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745413#M245</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the same question as Ryan and Gaetano that has gone unanswered.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can one use one&amp;nbsp;QSPI Flash for&amp;nbsp;storage and a second&amp;nbsp;QSPI Flash&amp;nbsp;for code XIP simultaneously, if they are independent controllers?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Other questions:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(1)&amp;nbsp; What's the maximum clock that they RT-1050 can work at for XIP&amp;nbsp;from QSPI Flash?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(2)&amp;nbsp; Can OctalFlash be used even though they are independent?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Scott&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jun 2018 21:04:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745413#M245</guid>
      <dc:creator>ScottKerstein</dc:creator>
      <dc:date>2018-06-01T21:04:20Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745414#M246</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To answer the original question: Yes you can run from QSPI Flash and use it as storage simultaneously. A single function that writes to the flash can be loaded into the RAM during runtime and executed from there.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Jun 2018 16:11:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745414#M246</guid>
      <dc:creator>john29</dc:creator>
      <dc:date>2018-06-04T16:11:05Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745415#M247</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is a really interesting approach. Have you succeeded in doing this? Could you perhaps share code?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nikos&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jun 2018 15:33:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745415#M247</guid>
      <dc:creator>tsantzi</dc:creator>
      <dc:date>2018-06-05T15:33:13Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745416#M248</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As long as all your instructions are relative (which it should be by default), you can just map the function to a known location in flash and copy it into a known location in RAM just like any other data.&amp;nbsp;Before you do an absolute jump to the RAM function, you must make sure that you've set the correct return data, and that you've disabled interrupts (they&amp;nbsp;will access flash if they trip, unless you've remapped them as well)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jun 2018 21:39:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745416#M248</guid>
      <dc:creator>noahwang</dc:creator>
      <dc:date>2018-06-05T21:39:07Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745417#M249</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Putting function into the RAM could be done by simply using a section macro “__RAMFUNC(SRAM_ITC)” from&amp;nbsp; “cr_section_marcros.h” provided by NXP. Of course all function called inside that function should be also put into the RAM.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;e.g.:&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;&amp;nbsp;__RAMFUNC(SRAM_ITC)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="color: #7f0055; font-size: 10.0pt;"&gt;&lt;STRONG&gt;static&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt; bool &lt;STRONG&gt;flexspi_write_sector&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: #005032;"&gt;flexspiFlash&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt; *spiFlash)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;&amp;nbsp; bool bRet = false;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: #005032;"&gt;status_t&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt; status;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: #3f7f5f;"&gt;/* erase sector */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;status = flexspi_nor_flash_erase_sector(spiFlash, spiFlash-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: #0000c0;"&gt;m_stFlashData&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: #0000c0;"&gt;u32CurrentSector&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt; *&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spiFlash-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: #0000c0;"&gt;m_stFlashData&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: #0000c0;"&gt;u32SectorSize&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;....&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; color: black;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2018 08:57:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745417#M249</guid>
      <dc:creator>john29</dc:creator>
      <dc:date>2018-06-08T08:57:46Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745418#M250</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have already reached that point, saving some issues about moving code to RAM and having to refresh the cache.&lt;/P&gt;&lt;P&gt;But now I am facing new problems: regarding the SPI read/write operation it can not be performed due to the IPCMDEEREN error flag in the INTR register of FlexSPI. Performing the "write_enable" operation both "IPCMDERR" and "IPCMDONE" flags get set (and get cleared before exiting the function).&amp;nbsp;What it could be the causes and how could I solve it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you and regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jun 2018 13:11:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745418#M250</guid>
      <dc:creator>danielsanchezrb</dc:creator>
      <dc:date>2018-06-27T13:11:52Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745419#M251</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do not know for sure but maybe your definitions for the QSPI read/ write... sequence&amp;nbsp; are not correct. Normally if you run from QSPI Flash at least the read should work. If you do not reinit the QSPI Flex driver and keep the settings from the boot up; it should use the definitions from the flash header so make sure those are correct.&amp;nbsp; (NXP examples defines that in xip/evkbimxrt1050_flexspi_nor_config.c).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Jun 2018 14:42:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745419#M251</guid>
      <dc:creator>john29</dc:creator>
      <dc:date>2018-06-28T14:42:17Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745420#M252</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your reply. It seemed that the configuration I set up in the first 512 bytes of the flash (the configuration the ROM boot took from flash) isn't good at all. So I run the initialization procedure in the example and it works.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Once solved that problem I could read the vendor ID (0x16) and activate the QUAD operation mode, but have some issues regarding the write and erase operations. In the "wait_bus_busy" function a "READ STATUS" operation is performed, but above in the file, in the definition section the code is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Read extend parameters */&lt;BR /&gt; [4 * FLASH_QSPI_CMD_LUT_SEQ_IDX_READSTATUS] =&lt;BR /&gt; FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x81, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x04),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess the code is intended to "read extend parameters", but when performing this operation I always read 0xFF, so the "wait_bus_busy" function always return "kStatus_fail". By changing the sequence command from "0x81" to "0x05" (read status command as it is in the&amp;nbsp; IS25WP064A datasheet) the FlexSPI read 0x40, so the function return "success" status.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Jun 2018 08:32:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745420#M252</guid>
      <dc:creator>danielsanchezrb</dc:creator>
      <dc:date>2018-06-29T08:32:59Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745421#M253</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;@Daniel Sanchez &lt;BR /&gt;Can you share code used to relocate code in RAM?&lt;/P&gt;&lt;P&gt;I am trying to place code into ITCM RAM but I get HARD_Fault exception "an imprecise data access error has occurred".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I&amp;nbsp;add to icf file:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* 64K ITCM RAM */&lt;BR /&gt;define symbol m_text_ram_start = 0x00000000;&lt;BR /&gt;define symbol m_text_ram_end = 0x0000FFFF;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define region TEXT_RAM_region = mem:[from m_text_ram_start to m_text_ram_end-100];&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define block RamCode {section .textrw};&lt;/P&gt;&lt;P&gt;initialize by copy { readwrite, section .textrw };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;place in TEXT_RAM_region&lt;SPAN&gt; &lt;/SPAN&gt;{ block RamCode };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and finally place #pragma&amp;nbsp;location directive in my code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#pragma location=".textrw"&lt;BR /&gt;void fn(void)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I place code in DTCM work fine.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Aug 2018 14:41:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745421#M253</guid>
      <dc:creator>gaetano81</dc:creator>
      <dc:date>2018-08-14T14:41:05Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745422#M254</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gaetano,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For placing functions in RAM I use "__RAM_FUNC" decined in &amp;lt;cr_section_macros.h&amp;gt; (located at the MCU IDE include path):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;__RAM_FUNC&lt;BR /&gt;static status_t FLASH_QSPI_InternInit(void)&lt;BR /&gt;{&lt;BR /&gt; status_t ret = kStatus_Fail;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;/* All function calls within this function must be declared in RAM */&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;return ret;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had some issues when starting moving the functions to RAM. I solved by disabling the data cache and IRQ:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;primask = DisableGlobalIRQ();&lt;BR /&gt; {&lt;BR /&gt; L1CACHE_DisableDCache();&lt;BR /&gt; L1CACHE_CleanDCache();&lt;BR /&gt; error = FLASH_QSPI_InternInit();&amp;nbsp;&amp;nbsp;&amp;nbsp;/* This function is declared in RAM section. */&lt;BR /&gt; L1CACHE_InvalidateICache();&lt;BR /&gt; L1CACHE_EnableDCache();&lt;BR /&gt; }&lt;BR /&gt; EnableGlobalIRQ(primask);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Not sure if it is the proper way to do it, but it worked for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Aug 2018 07:44:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745422#M254</guid>
      <dc:creator>danielsanchezrb</dc:creator>
      <dc:date>2018-08-27T07:44:00Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745423#M255</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;I had issues when I was trying to move the flexspi commands to RAM and when I followed your method, I was able to resolve it. However, I see another issue wherein I'm able to perform flash erases and writes as needed but if I power off the unit and power it on again, it doesn't even boot. The first run is always fine after I flash the code to my board but if I power cycle it, it stops booting. The board is almost dead. Did you come across anything like this? This happens only when I have all the flash operations active, otherwise my application works as expected even on power cycling the board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Thivya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Feb 2020 18:32:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745423#M255</guid>
      <dc:creator>thivya_ashokkum</dc:creator>
      <dc:date>2020-02-04T18:32:11Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745424#M256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Thivya,&lt;/P&gt;&lt;P&gt;The first thing it comes to my mind is that maybe you are writing/erasing unintencionally over the first flash sector. Or over the program memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Whatever the configuration you use to perform the flash operations (or give back to keep the program running from QSPI) after a power cycle that configuration should be reset back to the configuration given in the first flash sector. So verify your erasing/writing address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Dani&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Feb 2020 09:17:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745424#M256</guid>
      <dc:creator>danielsanchezrb</dc:creator>
      <dc:date>2020-02-06T09:17:23Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745425#M257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;Thanks for the suggestion. I did keep a tab for the FlexSPI configuration which goes into the first sector of the flash and it remained intact after my flash erase/write operations. However, I was using the sector starting at 63000000 for writing my data. (I have a 64 MB flash). On viewing the memory, I could see the flexspi configuration being stored at 60000000, 61000000, 62000000 &amp;amp; 63000000 which I did not expect. So, every time I wrote to a sector starting at 63000000, the device couldn't boot. When I moved my write address to 63100000, my issue was resolved. Did you know about this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Feb 2020 23:46:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745425#M257</guid>
      <dc:creator>thivya_ashokkum</dc:creator>
      <dc:date>2020-02-06T23:46:39Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745426#M258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Thivya,&lt;/P&gt;&lt;P&gt;It seems that regions 0x60000000, 0x61000000, 0x62000000 and 0x63000000 are actually the same phisical section at your flash: 0x00000000. So writting/erasing at address 0x63000000 is making a write/erase operation at phisical address 0x00000000. I would check that by monitoring address 0x00000000 after any operation. If that is what it is happening maybe the flash size is wrong: maybe there is another chip at the board or maybe the memory is 64Mb instead of 64MB.&lt;/P&gt;&lt;P&gt;Another&amp;nbsp;thing it cames to my mind is that when you are configuring the FlexSPI LUT you are setting addresses of 24 bits (0x18):&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),&lt;/P&gt;&lt;P&gt;In your case addresses should be of 32 bits:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x20),&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I hope this can help you.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Dani&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Feb 2020 08:20:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745426#M258</guid>
      <dc:creator>danielsanchezrb</dc:creator>
      <dc:date>2020-02-10T08:20:12Z</dc:date>
    </item>
    <item>
      <title>Re: RT1050 QSPI Flash Limitations</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745427#M259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="text-align: left;"&gt;hello, i had requirement to store data as well program in same QSPI flash with&amp;nbsp; imx rt 1050 i followed above process with different method that is through linker scrips to relocate&amp;nbsp; all flexspi code to ITC ram . hope this would help&lt;/P&gt;&lt;P style="text-align: left;"&gt;&lt;/P&gt;&lt;P style="text-align: left;"&gt;&lt;A class="link-titled" href="https://www.dropbox.com/s/wwrm885iokoy5sm/BEL2_flexspi_nor_polling_transfer.7z?dl=0" title="https://www.dropbox.com/s/wwrm885iokoy5sm/BEL2_flexspi_nor_polling_transfer.7z?dl=0"&gt;Dropbox - BEL2_flexspi_nor_polling_transfer.7z - Simplify your life&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Jun 2020 06:25:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1050-QSPI-Flash-Limitations/m-p/745427#M259</guid>
      <dc:creator>venugopal_v</dc:creator>
      <dc:date>2020-06-23T06:25:48Z</dc:date>
    </item>
  </channel>
</rss>

