<?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: IMXRT1021 IAP and OTA update in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1355366#M16710</link>
    <description>&lt;P&gt;Yes, you can find it at the Documentation tab in the device product page: &lt;A href="https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1020-crossover-mcu-with-arm-cortex-m7-core:i.MX-RT1020?tab=Documentation_Tab" target="_blank"&gt;https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1020-crossover-mcu-with-arm-cortex-m7-core:i.MX-RT1020?tab=Documentation_Tab&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Omar_Anguiano_0-1634165444716.png" style="width: 523px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/159043i4C62C689AA65545D/image-dimensions/523x238?v=v2" width="523" height="238" role="button" title="Omar_Anguiano_0-1634165444716.png" alt="Omar_Anguiano_0-1634165444716.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;If you have more questions do not hesitate to ask me.&lt;BR /&gt;Best regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
    <pubDate>Wed, 13 Oct 2021 22:51:00 GMT</pubDate>
    <dc:creator>Omar_Anguiano</dc:creator>
    <dc:date>2021-10-13T22:51:00Z</dc:date>
    <item>
      <title>IMXRT1021 IAP and OTA update</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1351584#M16590</link>
      <description>&lt;P&gt;Dear all,&lt;BR /&gt;&lt;BR /&gt;I have a question about ota update.&lt;BR /&gt;In my project, i want to perform OTA update for imxrt1021 via cellular network.&lt;BR /&gt;In other MCU like stm32,...&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;I have to write my own bootloader&lt;/LI&gt;&lt;LI&gt;Bootloader jump to application&lt;/LI&gt;&lt;LI&gt;Application running, and download new binary firmware into other region in flash&lt;/LI&gt;&lt;LI&gt;Bootloader select new firmware and jump to new application&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;In imxrt1021, i think i should write a secondary bootloader. ROM bootloader will run to secondary bootloader in QSPI flash, then secondary bootloader will jump to user application.&lt;/P&gt;&lt;P&gt;How can i do it with IMXRT1021 platform?I take a look at Flash loader example in NXP SDK, but it seem Flash loader example need computer, and loader program must be run in RAM.&lt;BR /&gt;Do you have any example about IAP update, or could you please give me your suggestion, any application note or documentations?&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Thu, 07 Oct 2021 03:06:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1351584#M16590</guid>
      <dc:creator>huy_tv</dc:creator>
      <dc:date>2021-10-07T03:06:49Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1021 IAP and OTA update</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1352078#M16603</link>
      <description>&lt;P&gt;Hi&lt;BR /&gt;&lt;BR /&gt;The uTasker project (including i.MX RT 1021 support) includes secure OTA loaders which can operate on various Wi-Fi and cellular modems, including USB RNDIS types. &lt;EM&gt;See details, documents and videos of the overall concept at &lt;A href="https://www.utasker.com/iMX/developers.html" target="_blank"&gt;https://www.utasker.com/iMX/developers.html&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;However there are many cellular modems that communicate in incompatible manners so this interface may need to be adapted (irrespective of which solution you use).&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;&lt;BR /&gt;Mark&lt;/P&gt;</description>
      <pubDate>Thu, 07 Oct 2021 17:22:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1352078#M16603</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2021-10-07T17:22:03Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1021 IAP and OTA update</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1352237#M16614</link>
      <description>&lt;P&gt;Thanks Mark,&lt;BR /&gt;&lt;BR /&gt;I will register uTasker and request a personal license. It's seem not fully opensource license.&lt;BR /&gt;Why NXP doesn't provide an IAP sample code in SDK to help developer write custom bootloader?&lt;BR /&gt;I only see sample code from "Flash loader" example, but it only run from RAM. How can i move it into QSPI flash and execute firmware switch by my self?&lt;BR /&gt;Could you please share any documentation about it?&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Oct 2021 02:16:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1352237#M16614</guid>
      <dc:creator>huy_tv</dc:creator>
      <dc:date>2021-10-08T02:16:36Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1021 IAP and OTA update</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1354453#M16684</link>
      <description>&lt;P&gt;Hello&lt;BR /&gt;Hope you are well.&lt;/P&gt;
&lt;P&gt;The application note AN12604 intends to introduce one example to illustrate how to implement a second boot loader on i.MX RT1050, i.MX RT1020, and i.MX RT1060 part based on XIP flash: &lt;A href="https://www.nxp.com/docs/en/application-note/AN12604.pdf" target="_blank"&gt;https://www.nxp.com/docs/en/application-note/AN12604.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have more questions do not hesitate to ask me.&lt;BR /&gt;Best regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
      <pubDate>Tue, 12 Oct 2021 22:05:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1354453#M16684</guid>
      <dc:creator>Omar_Anguiano</dc:creator>
      <dc:date>2021-10-12T22:05:37Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1021 IAP and OTA update</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1354503#M16685</link>
      <description>&lt;P&gt;Dear Anguiano&lt;BR /&gt;&lt;BR /&gt;Does NXP provide sample code for AN12604?&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Oct 2021 01:42:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1354503#M16685</guid>
      <dc:creator>huy_tv</dc:creator>
      <dc:date>2021-10-13T01:42:16Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1021 IAP and OTA update</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1355366#M16710</link>
      <description>&lt;P&gt;Yes, you can find it at the Documentation tab in the device product page: &lt;A href="https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1020-crossover-mcu-with-arm-cortex-m7-core:i.MX-RT1020?tab=Documentation_Tab" target="_blank"&gt;https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1020-crossover-mcu-with-arm-cortex-m7-core:i.MX-RT1020?tab=Documentation_Tab&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Omar_Anguiano_0-1634165444716.png" style="width: 523px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/159043i4C62C689AA65545D/image-dimensions/523x238?v=v2" width="523" height="238" role="button" title="Omar_Anguiano_0-1634165444716.png" alt="Omar_Anguiano_0-1634165444716.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;If you have more questions do not hesitate to ask me.&lt;BR /&gt;Best regards,&lt;BR /&gt;Omar&lt;/P&gt;</description>
      <pubDate>Wed, 13 Oct 2021 22:51:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1355366#M16710</guid>
      <dc:creator>Omar_Anguiano</dc:creator>
      <dc:date>2021-10-13T22:51:00Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1021 IAP and OTA update</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1355798#M16719</link>
      <description>&lt;P&gt;Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/169053"&gt;@Omar_Anguiano&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I tried to import AN12604SW booloader source code into MCU Expresso IDE, because i dont have IAR license (&lt;STRONG&gt;NXP use IAR for bootloader demostration&lt;/STRONG&gt;).&lt;BR /&gt;&lt;BR /&gt;I'm stuck in &lt;STRONG&gt;hardfaut&lt;/STRONG&gt;, after debugging step by step,I found the fault reason is the function "&lt;STRONG&gt;is_valid_application_location",&amp;nbsp;&lt;/STRONG&gt;NXP sample code will check "&lt;STRONG&gt;applicationAddress == (uint32_t)&amp;amp;Reset_Handle&lt;/STRONG&gt;r", and&amp;nbsp; "&lt;STRONG&gt;Reset_Handler&lt;/STRONG&gt;" is set by IAR Linker.&lt;BR /&gt;&lt;STRONG&gt;How can we set "Reset_Handler" value in MCU ExpressoSDK?&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Below is the code of NXP and Linker by IAR&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;bool is_valid_application_location(uint32_t applicationAddress)
{
    // Verify that the jumpLocation is non zero and then either within flash or RAM, both calculations are:
    // (jumpLocation &amp;gt;= startAddress) &amp;amp;&amp;amp; (jumpLocation &amp;lt; (startAddress + size))
    if ((!applicationAddress) ||              // address is not null AND
        (applicationAddress == 0xffffffff) || // address is not blank Flash (0xff) AND
        (applicationAddress == (uint32_t)&amp;amp;Reset_Handler)||
         (*(uint32_t *)applicationAddress == 0xffffffff))
    {
        return false;
    }

    bool isValid = true;
    //const uint32_t minThumb2InstructionSize = 2; // smallest thumb2 instruction size is 16-bit.
    // Check if the application address is in valid executable memory range
   // status_t status = find_map_entry(applicationAddress, minThumb2InstructionSize, &amp;amp;map);
  //  if ((status == kStatus_Success) &amp;amp;&amp;amp; (map-&amp;gt;memoryProperty &amp;amp; kMemoryIsExecutable))
    {
   //     isValid = true;
    }

    return isValid;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;- Linker&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;* Entry Point */
ENTRY(Reset_Handler)

HEAP_SIZE  = DEFINED(__heap_size__)  ? __heap_size__  : 0x0400;
STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400;

/* Specify the memory areas */
MEMORY
{
  m_flash_config        (RX)  : ORIGIN = 0x60000000, LENGTH = 0x00001000
  m_ivt                 (RX)  : ORIGIN = 0x60001000, LENGTH = 0x00001000
  m_interrupts          (RX)  : ORIGIN = 0x60002000, LENGTH = 0x00000400
  m_text                (RX)  : ORIGIN = 0x60002400, LENGTH = 0x03FFDC00
  m_data                (RW)  : ORIGIN = 0x20000000, LENGTH = 0x00020000
  m_data2               (RW)  : ORIGIN = 0x20200000, LENGTH = 0x00040000
}

/* Define output sections */
SECTIONS
{
  .flash_config :
  {
    . = ALIGN(4);
    __FLASH_BASE = .;
    KEEP(* (.boot_hdr.conf))     /* flash config section */
    . = ALIGN(4);
  } &amp;gt; m_flash_config

  ivt_begin= ORIGIN(m_flash_config) + LENGTH(m_flash_config);

  .ivt : AT(ivt_begin)
  {
    . = ALIGN(4);
	KEEP(* (.boot_hdr.ivt))           /* ivt section */
	KEEP(* (.boot_hdr.boot_data))     /* boot section */
	KEEP(* (.boot_hdr.dcd_data))      /* dcd section */
    . = ALIGN(4);
  } &amp;gt; m_ivt&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Thu, 14 Oct 2021 11:12:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1355798#M16719</guid>
      <dc:creator>huy_tv</dc:creator>
      <dc:date>2021-10-14T11:12:28Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1021 IAP and OTA update</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1356108#M16726</link>
      <description>&lt;P&gt;Dear all&lt;/P&gt;&lt;P&gt;The problem solve by change "Reset_Handler" to "Reset_ISR".&lt;BR /&gt;&lt;BR /&gt;Thanks&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/169053"&gt;@Omar_Anguiano&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Oct 2021 02:02:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1356108#M16726</guid>
      <dc:creator>huy_tv</dc:creator>
      <dc:date>2021-10-15T02:02:37Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1021 IAP and OTA update</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1387075#M17577</link>
      <description>&lt;P&gt;Hello sir,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am having a problem to import&amp;nbsp; the&lt;SPAN&gt;AN12604SW bootoader source code into MCU Expresso IDE.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Could you help me with instructions to import it ? or could please share the imported project ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Dec 2021 07:51:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1021-IAP-and-OTA-update/m-p/1387075#M17577</guid>
      <dc:creator>Richard75</dc:creator>
      <dc:date>2021-12-15T07:51:41Z</dc:date>
    </item>
  </channel>
</rss>

