<?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>i.MX ProcessorsのトピックIMX6SX boot M4 from DDR</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/IMX6SX-boot-M4-from-DDR/m-p/708240#M110040</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey there,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the UDOO Neo board which has an imx6sx. I was able to build and run an application from TCM using the startup code and linker script from CMSIS. Since my application is going to exceed the TCM space I want to use a different memory region.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to the device tree there should be 8MB DDR reserved for the M4, starting at 0x84000000.&lt;/P&gt;&lt;P&gt;So I modified the linker script like this:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;MEMORY
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp; m_interrupts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;RX&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; ORIGIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x84000000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; LENGTH &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x00000240&lt;/SPAN&gt;
&amp;nbsp; m_text&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;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;RX&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; ORIGIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x84000240&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; LENGTH &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x00007DC0&lt;/SPAN&gt;
&amp;nbsp; m_data&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;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;RW&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; ORIGIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x20000000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; LENGTH &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x00008000&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From my understanding, I should be able to boot the M4 in u-boot by doing the following:&amp;nbsp;&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;fatload mmc 0:1 0x84000000 test_ddr.bin
dcache flush
bootaux 0x84000000‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN style="color: #000000; background-color: #ebece4;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Bootaux should take care of copying the stack and pc pointer values. For the TCM memory layout (m_interrupts starting at 0x00000000) this procedure works, so what am I missing for the DDR?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 28 Aug 2017 08:39:33 GMT</pubDate>
    <dc:creator>maikemeier</dc:creator>
    <dc:date>2017-08-28T08:39:33Z</dc:date>
    <item>
      <title>IMX6SX boot M4 from DDR</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX6SX-boot-M4-from-DDR/m-p/708240#M110040</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey there,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the UDOO Neo board which has an imx6sx. I was able to build and run an application from TCM using the startup code and linker script from CMSIS. Since my application is going to exceed the TCM space I want to use a different memory region.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to the device tree there should be 8MB DDR reserved for the M4, starting at 0x84000000.&lt;/P&gt;&lt;P&gt;So I modified the linker script like this:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;MEMORY
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp; m_interrupts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;RX&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; ORIGIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x84000000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; LENGTH &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x00000240&lt;/SPAN&gt;
&amp;nbsp; m_text&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;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;RX&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; ORIGIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x84000240&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; LENGTH &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x00007DC0&lt;/SPAN&gt;
&amp;nbsp; m_data&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;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;RW&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; ORIGIN &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x20000000&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; LENGTH &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0x00008000&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From my understanding, I should be able to boot the M4 in u-boot by doing the following:&amp;nbsp;&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;fatload mmc 0:1 0x84000000 test_ddr.bin
dcache flush
bootaux 0x84000000‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN style="color: #000000; background-color: #ebece4;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Bootaux should take care of copying the stack and pc pointer values. For the TCM memory layout (m_interrupts starting at 0x00000000) this procedure works, so what am I missing for the DDR?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Aug 2017 08:39:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX6SX-boot-M4-from-DDR/m-p/708240#M110040</guid>
      <dc:creator>maikemeier</dc:creator>
      <dc:date>2017-08-28T08:39:33Z</dc:date>
    </item>
    <item>
      <title>Re: IMX6SX boot M4 from DDR</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX6SX-boot-M4-from-DDR/m-p/708241#M110041</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Maike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please check AN5127 How to Run the MQX™ RTOS on Various RAM Memories for i.MX 6SoloX&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://www.nxp.com/docs/en/application-note/AN5127.pdf" title="http://www.nxp.com/docs/en/application-note/AN5127.pdf"&gt;http://www.nxp.com/docs/en/application-note/AN5127.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Aug 2017 09:55:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX6SX-boot-M4-from-DDR/m-p/708241#M110041</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2017-08-29T09:55:15Z</dc:date>
    </item>
    <item>
      <title>Re: IMX6SX boot M4 from DDR</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX6SX-boot-M4-from-DDR/m-p/708242#M110042</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;solved it:&lt;/P&gt;&lt;P&gt;The M4 had the wrong reference for the vector table, so it tried to access the SysTick_Handler at the wrong address and went wild there.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Aug 2017 12:34:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX6SX-boot-M4-from-DDR/m-p/708242#M110042</guid>
      <dc:creator>maikemeier</dc:creator>
      <dc:date>2017-08-31T12:34:21Z</dc:date>
    </item>
    <item>
      <title>Re: IMX6SX boot M4 from DDR</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX6SX-boot-M4-from-DDR/m-p/708243#M110043</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Could you explain more in detail how you solve the problem. I have the same, I modify the linker file as same as posted for you here. I can flash the firmware but when I tried to debug it starts but then is not working well. It is doing steps but then it can not do more step (other line or function) and just stay in&amp;nbsp;the same line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I suspect the same with vector table, but I dont know how to fix it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Mar 2018 09:24:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX6SX-boot-M4-from-DDR/m-p/708243#M110043</guid>
      <dc:creator>jealcuna</dc:creator>
      <dc:date>2018-03-16T09:24:18Z</dc:date>
    </item>
  </channel>
</rss>

