<?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: i.MX RT10xx state after boot ROM in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MX-RT10xx-state-after-boot-ROM/m-p/1027003#M7025</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp;&lt;SPAN style="color: #646464; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="352632" data-username="johnadriaan" href="https://community.nxp.com/people/johnadriaan" style="color: #3d9ce7; background-color: #ffffff; border: 0px; font-weight: 600; text-decoration: none; font-size: 11.9994px;"&gt;John Adriaan&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.&lt;BR /&gt;1) Are any ARM System Core Interrupts configured - especially SysTick?&lt;BR /&gt;-- No.&lt;BR /&gt;2) Have any MCU peripheral clocks, other than those specified in the documentation, been gated on?&lt;BR /&gt;-- No, I'm afraid not.&lt;BR /&gt;3) Which watchdogs are (still?) enabled, such that I have to refresh them?&lt;BR /&gt;-- RTWDOG (WDOG3)&lt;BR /&gt;4) Given that the Boot ROM will take more than 255 clocks, I assume it has programmed CS[UPDATE] to 1. What modes has it set?&lt;BR /&gt;-- Note: The developer should better be aware of that the ROM code won't change the default state of the peripherals actually.&lt;BR /&gt;5) Does the documentation say that OCRAM needs to have a minimum of 64K for ROM to use?&lt;BR /&gt;-- Yes, even it supports to reconfigure the memory allocation after jumping from the ROM code, it still can't break the restriction.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;Have a great day,&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;TIC&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&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="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&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, 06 Jan 2020 03:49:02 GMT</pubDate>
    <dc:creator>jeremyzhou</dc:creator>
    <dc:date>2020-01-06T03:49:02Z</dc:date>
    <item>
      <title>i.MX RT10xx state after boot ROM</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MX-RT10xx-state-after-boot-ROM/m-p/1027002#M7024</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Below is a description of my understanding of the i.MX RT10xx boot process, with a numbered list of discoveries/assumptions, and a lettered list of questions.&lt;BR /&gt;Could someone please confirm (or otherwise) the numbered assumptions, and have a go at answering the lettered questions?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;H2&gt;ARM Cortex-M Processors&lt;/H2&gt;&lt;DIV&gt;Upon power on, an ARM Cortex-M based MCU is in the following state:&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;CPU clock set to some value - usually (much) less than the available maximum;&lt;/LI&gt;&lt;LI&gt;Clocks to most peripherals gated OFF;&lt;/LI&gt;&lt;LI&gt;On-chip RAM (in whatever format) ON;&lt;/LI&gt;&lt;LI&gt;Interrupts from all peripherals DISABLED in the Nested Vectored Interrupt Controller (NVIC);&lt;/LI&gt;&lt;LI&gt;Interrupt and Fault flags ON;&lt;/LI&gt;&lt;LI&gt;Vector Table Offset Register (VTOR) pointing to ROM - usually at 0x00000000.&lt;/LI&gt;&lt;/UL&gt;&lt;DIV&gt;Its first actions are to:&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;Read the initial Stack Pointer (SP) from VTOR[0x0000];&lt;/LI&gt;&lt;LI&gt;Read the initial Program Counter (PC) from VTOR[0x0004];&lt;/LI&gt;&lt;LI&gt;Start executing instructions.&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;i.MX RT10xx Processors&lt;/H2&gt;&lt;DIV&gt;NXP ship boards using this range of processors with the on-chip ROM already programmed.&lt;BR /&gt;The ROM configures the board, then examines various switches and settings to decide what to actually boot.&lt;BR /&gt;The important thing here is that it has already used the ARM-defined initialisation, and the programmer has to organise to have the System Code booted independently of the above.&lt;/DIV&gt;&lt;DIV&gt;For simplicity, assume that my System Code resides in the NOR Flash, and that the Flash Control Block (FCB) and Image Vector Table (IVT) are correctly initialised.&lt;BR /&gt;The boot ROM works out what the very first System Code instruction of mine to execute is,&lt;BR /&gt;and jumps to it. At that instant...&lt;/DIV&gt;&lt;H2&gt;Investigations show that:&lt;/H2&gt;&lt;OL&gt;&lt;LI&gt;The documentation says that the clock is at 396MHz.&lt;/LI&gt;&lt;LI&gt;The Interrupt and Fault flags are Enabled.&lt;/LI&gt;&lt;LI&gt;No NVIC interrupt is enabled.&lt;/LI&gt;&lt;LI&gt;VTOR is at the base of ROM.&lt;/LI&gt;&lt;LI&gt;SP is in OCRAM, approximately 1K from the start.&lt;/LI&gt;&lt;LI&gt;The OCRAM is divided as follows (i.MX RT1010):&lt;/LI&gt;&lt;/OL&gt;&lt;DIV&gt;&lt;OL style="margin: 0px; padding: 0px 0px 0px 30px; text-align: left; color: #3d3d3d; text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; word-spacing: 0px; list-style-type: lower-roman; white-space: normal; orphans: 2; -webkit-text-stroke-width: 0px;"&gt;&lt;LI style="overflow-wrap: break-word; padding: 0px; margin: 0.2em 0px 0.2em 0px;"&gt;ITCM is set to 32K - but 32K+1 is accessible*;&lt;/LI&gt;&lt;LI style="overflow-wrap: break-word; padding: 0px; margin: 0.2em 0px 0.2em 0px;"&gt;DTCM is set to 32K - but 32K+1 is accessible*;&lt;/LI&gt;&lt;LI style="overflow-wrap: break-word; padding: 0px; margin: 0.2em 0px 0.2em 0px;"&gt;OCRAM is set to 64K - but 128K(!)+1 is accessible*.&lt;BR /&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;* Note that one byte &lt;EM&gt;past&lt;/EM&gt; the #K block seems to be accessible by the debugger.&lt;/BLOCKQUOTE&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;H2&gt;Unclear is the following:&lt;/H2&gt;&lt;OL style="list-style-type: upper-alpha;"&gt;&lt;LI&gt;Are any ARM System Core Interrupts configured - especially SysTick?&lt;/LI&gt;&lt;LI&gt;Have any MCU peripheral clocks, other than those specified in the documentation, been gated on?&lt;/LI&gt;&lt;LI&gt;Which watchdogs are (still?) enabled, such that I have to refresh them?&lt;BR /&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;The documentation for RTWDOG(WDOG3) states:&lt;BR /&gt;&lt;STRONG&gt;47.3&lt;/STRONG&gt; ... The timeout period, window mode, and clock source are all programmable but must be configured within 255 bus clocks after a reset.&lt;BR /&gt;&lt;STRONG&gt;47.3.3.1&lt;/STRONG&gt; ... All watchdog control bits, timeout value, and window value are write-once after reset within 255 bus clocks.&lt;BR /&gt;&lt;STRONG&gt;47.3.3.2&lt;/STRONG&gt; ... By setting CS[UPDATE] to 1 on the initial configuration of the watchdog after a reset, you can reconfigure the watchdog at any time by executing an unlock sequence.&lt;/BLOCKQUOTE&gt;&lt;/LI&gt;&lt;LI&gt;Given that the Boot ROM will take more than 255 clocks, I assume it has programmed CS[UPDATE] to 1.&lt;BR /&gt;What modes has it set?&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;The documentation says that OCRAM needs to have a minimum of 64K for ROM to use:&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;OL style="list-style-type: lower-alpha;"&gt;&lt;LI&gt;&lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;If my System Code isn't going to call the ROM, why?&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;If the ROM needs 64K of the OCRAM, what parts of that 64K can my System Code use?&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;F&lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;rankly, for my RT1010 I want 128K of DTCM and nothing for ITCM and OCRAM - but the docs say I can't.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;With thanks for any and all input!&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Dec 2019 04:06:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MX-RT10xx-state-after-boot-ROM/m-p/1027002#M7024</guid>
      <dc:creator>johnadriaan</dc:creator>
      <dc:date>2019-12-31T04:06:59Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX RT10xx state after boot ROM</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MX-RT10xx-state-after-boot-ROM/m-p/1027003#M7025</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp;&lt;SPAN style="color: #646464; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="352632" data-username="johnadriaan" href="https://community.nxp.com/people/johnadriaan" style="color: #3d9ce7; background-color: #ffffff; border: 0px; font-weight: 600; text-decoration: none; font-size: 11.9994px;"&gt;John Adriaan&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.&lt;BR /&gt;1) Are any ARM System Core Interrupts configured - especially SysTick?&lt;BR /&gt;-- No.&lt;BR /&gt;2) Have any MCU peripheral clocks, other than those specified in the documentation, been gated on?&lt;BR /&gt;-- No, I'm afraid not.&lt;BR /&gt;3) Which watchdogs are (still?) enabled, such that I have to refresh them?&lt;BR /&gt;-- RTWDOG (WDOG3)&lt;BR /&gt;4) Given that the Boot ROM will take more than 255 clocks, I assume it has programmed CS[UPDATE] to 1. What modes has it set?&lt;BR /&gt;-- Note: The developer should better be aware of that the ROM code won't change the default state of the peripherals actually.&lt;BR /&gt;5) Does the documentation say that OCRAM needs to have a minimum of 64K for ROM to use?&lt;BR /&gt;-- Yes, even it supports to reconfigure the memory allocation after jumping from the ROM code, it still can't break the restriction.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;Have a great day,&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;TIC&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&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="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&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, 06 Jan 2020 03:49:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MX-RT10xx-state-after-boot-ROM/m-p/1027003#M7025</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2020-01-06T03:49:02Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX RT10xx state after boot ROM</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MX-RT10xx-state-after-boot-ROM/m-p/1027004#M7026</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/jeremyzhou"&gt;jeremyzhou&lt;/A&gt;‌&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the answers to 1) through 4) above. They make sense to me, and it is nice to have confirmation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My concern is with your answer to 5) above:&lt;/P&gt;&lt;OL style="list-style-type: upper-alpha;"&gt;&lt;LI&gt;Are you &lt;EM&gt;&lt;STRONG&gt;only&lt;/STRONG&gt;&lt;/EM&gt; saying "Leave 64K assigned to OCRAM for use after Reset"?&lt;/LI&gt;&lt;LI&gt;Or are you &lt;EM&gt;&lt;STRONG&gt;also&lt;/STRONG&gt;&lt;/EM&gt; saying "Leave 64K assigned to OCRAM, and &lt;STRONG&gt;&lt;EM&gt;do not use any part of that 64K&lt;/EM&gt;&lt;/STRONG&gt; since the Boot ROM needs it for its own".&lt;/LI&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Jan 2020 04:26:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MX-RT10xx-state-after-boot-ROM/m-p/1027004#M7026</guid>
      <dc:creator>johnadriaan</dc:creator>
      <dc:date>2020-01-09T04:26:22Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX RT10xx state after boot ROM</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MX-RT10xx-state-after-boot-ROM/m-p/1027005#M7027</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp;&lt;SPAN style="color: #646464; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A _jive_internal="true" data-containerid="-1" data-containertype="-1" data-objectid="352632" data-objecttype="3" href="https://community.nxp.com/people/johnadriaan" style="color: #3d9ce7; background-color: #ffffff; border: 0px; font-weight: 600; text-decoration: none; font-size: 11.9994px;"&gt;John Adriaan&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;I mean that you should keep the OCRAM equal or exceed the 64 KB all the time.&lt;/P&gt;&lt;P&gt;Hope this is clear.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;Have a great day,&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;TIC&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&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="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 14px;"&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, 09 Jan 2020 06:15:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/i-MX-RT10xx-state-after-boot-ROM/m-p/1027005#M7027</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2020-01-09T06:15:53Z</dc:date>
    </item>
  </channel>
</rss>

