<?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: Query regarding the memories available for code execution on Cortex-M33 of i.MX93EVK board in MCX Microcontrollers</title>
    <link>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2094417#M3006</link>
    <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Please refer&amp;nbsp;&lt;A href="https://www.nxp.com/docs/en/user-guide/IMX_PORTING_GUIDE.pdf" target="_blank"&gt;https://www.nxp.com/docs/en/user-guide/IMX_PORTING_GUIDE.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;and&amp;nbsp;&lt;STRONG&gt;4.5.13 How to build imx-boot image by using imx-mkimage&lt;/STRONG&gt; in this guide:&lt;A href="https://www.nxp.com/docs/en/user-guide/IMX_LINUX_USERS_GUIDE.pdf" target="_blank"&gt;https://www.nxp.com/docs/en/user-guide/IMX_LINUX_USERS_GUIDE.pdf&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Zhiming&lt;/P&gt;</description>
    <pubDate>Fri, 09 May 2025 07:56:43 GMT</pubDate>
    <dc:creator>Zhiming_Liu</dc:creator>
    <dc:date>2025-05-09T07:56:43Z</dc:date>
    <item>
      <title>Query regarding the memories available for code execution on Cortex-M33 of i.MX93EVK board</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2083224#M2902</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;SPAN&gt;I am working with&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;iMX93EVK board (especially bare metal programming of &lt;STRONG&gt;Cortex-M33&lt;/STRONG&gt;)&lt;BR /&gt;&lt;/SPAN&gt;I have tried the examples (ethosu_apps) available as part of &lt;STRONG&gt;sdk_2_16&lt;/STRONG&gt; and I observed that, the code is executing from ITCM memory, &lt;STRONG&gt;M33 Code TCM (0FFE_0000 - 0FFF_FFFF) ~128KB&lt;/STRONG&gt;.&lt;BR /&gt;&lt;BR /&gt;For my bare metal applications, this memory is not enough, so I am exploring about other options from where I can execute my application other than TCM memory. (I have observed from memory map that there are different memories available like OCRAM)&lt;BR /&gt;&lt;BR /&gt;So, can someone please provide any insights regarding this issue?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Apr 2025 09:15:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2083224#M2902</guid>
      <dc:creator>Vikas7Bal</dc:creator>
      <dc:date>2025-04-18T09:15:32Z</dc:date>
    </item>
    <item>
      <title>Re: Query regarding the memories available for code execution on Cortex-M33 of i.MX93EVK board</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2086252#M2942</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;You can try to take .text section to OCRAM and reserve the left in TCM by modifing the linker script. Or put it into DDR, but need to boot into Linux.&lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Zhiming&lt;/P&gt;</description>
      <pubDate>Thu, 24 Apr 2025 06:00:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2086252#M2942</guid>
      <dc:creator>Zhiming_Liu</dc:creator>
      <dc:date>2025-04-24T06:00:57Z</dc:date>
    </item>
    <item>
      <title>Re: Query regarding the memories available for code execution on Cortex-M33 of i.MX93EVK board</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2086415#M2945</link>
      <description>&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/151788"&gt;@Zhiming_Liu&lt;/a&gt;&amp;nbsp;, thanks for your reply.&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;gt; put it into DDR, but need to boot into Linux.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;In my approach, I am trying to execute the binary in u-boot, by loading the *.bin file using "boot aux"&lt;BR /&gt;I have tried placing the *.text section into OCRAM, but the app didn't even launch (I don't see anything on Cortex-M33 COM port)&lt;BR /&gt;&lt;BR /&gt;So, I am not sure if I am following right procedure?&lt;BR /&gt;&lt;BR /&gt;Can you elaborate more on the procedure of launching after booting into linux?&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Apr 2025 08:27:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2086415#M2945</guid>
      <dc:creator>Vikas7Bal</dc:creator>
      <dc:date>2025-04-24T08:27:32Z</dc:date>
    </item>
    <item>
      <title>Re: Query regarding the memories available for code execution on Cortex-M33 of i.MX93EVK board</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2092042#M2987</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;It's been a while since I posted for help. Can I get some support in this issue?&lt;BR /&gt;&lt;BR /&gt;I am struggling with code execution from ITCM memory only for Cortex-M33 and I would like to use the DDR or OCRAM memories available for code execution?&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 06 May 2025 09:12:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2092042#M2987</guid>
      <dc:creator>Vikas7Bal</dc:creator>
      <dc:date>2025-05-06T09:12:09Z</dc:date>
    </item>
    <item>
      <title>Re: Query regarding the memories available for code execution on Cortex-M33 of i.MX93EVK board</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2092618#M2993</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;The linker file should like this :&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;  m_interrupts          (RX)  : ORIGIN = 0x20480000, LENGTH = 0x00000478
  m_text                (RX)  : ORIGIN = 0x20480478, LENGTH = 0x0001FB88
  m_m33_suspend_ram     (RW)  : ORIGIN = 0x204B0000, LENGTH = 0x00002000
  m_a55_suspend_ram     (RW)  : ORIGIN = 0x204B2000, LENGTH = 0x00001000
  m_data                (RW)  : ORIGIN = 0x204B3000, LENGTH = 0x0001B000
  m_rsc_tbl             (RW)  : ORIGIN = 0x204CE000, LENGTH = 0x00001000&lt;/LI-CODE&gt;
&lt;P&gt;Then also need to modify atf and kernel source code.&lt;/P&gt;
&lt;P&gt;ATF, make sure that M33 can access the OCRAM.&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;diff --git a/plat/imx/imx93/trdc_config.h b/plat/imx/imx93/trdc_config.h
index 6c8b8f8fa..6d2ff02b6 100644
--- a/plat/imx/imx93/trdc_config.h
+++ b/plat/imx/imx93/trdc_config.h
@@ -117,7 +117,7 @@ struct trdc_glbac_config trdc_n_mbc_glbac[] = {
        { 2, 0, SP(RW) | SU(RW) | NP(RW) | NU(RW) },
        { 2, 1, SP(R) | SU(R) | NP(R) | NU(R) },
        /* MBC3 */
-       { 3, 0, SP(RW) | SU(RW) | NP(RW) | NU(RW) },
+       { 3, 0, SP(RWX) | SU(RWX) | NP(RWX) | NU(RWX) },
        { 3, 1, SP(RWX) | SU(RWX) | NP(RWX) | NU(RWX) },
 };
 
@@ -167,8 +167,8 @@ struct trdc_mbc_config trdc_n_mbc[] = {
        { 1, 3, 3, MBC_BLK_ALL, 0, false }, /* MBC1 MLMIX for A55 DID3 */
        { 2, 3, 0, MBC_BLK_ALL, 0, false }, /* MBC2 GIC for A55 DID3 */
        { 2, 3, 1, MBC_BLK_ALL, 0, false }, /* MBC2 GIC for A55 DID3 */
-       { 3, 3, 0, MBC_BLK_ALL, 1, true  }, /* MBC3 OCRAM for A55 DID3 */
-       { 3, 3, 1, MBC_BLK_ALL, 1, true  }, /* MBC3 OCRAM for A55 DID3 */
+       { 3, 3, 0, MBC_BLK_ALL, 1, false  }, /* MBC3 OCRAM for A55 DID3 */
+       { 3, 3, 1, MBC_BLK_ALL, 1, false  }, /* MBC3 OCRAM for A55 DID3 */
 
        { 3, 3, 0, 0, 0, false  }, /* MBC3 OCRAM for A55 DID3 */
        { 3, 3, 0, 1, 0, false  }, /* MBC3 OCRAM for A55 DID3 */&lt;/LI-CODE&gt;
&lt;P&gt;Kernel&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
index 4d1aa281f33e..2d462edd889f 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
@@ -59,8 +59,13 @@ vdev1vring1: vdev1vring1@a4018000 {
                        no-map;
                };
 
-               rsc_table: rsc-table@2021e000 {
-                       reg = &amp;lt;0 0x2021e000 0 0x1000&amp;gt;;
+               ocram: ocram@20480000 {
+                       reg = &amp;lt;0 0x20480000 0 0x60000&amp;gt;;
+                       no-map;
+               };
+
+               rsc_table: rsc-table@204CE000 {
+                       reg = &amp;lt;0 0x204CE000 0 0x1000&amp;gt;;
                        no-map;
                };
 
@@ -335,7 +340,7 @@ &amp;amp;cm33 {
        mboxes = &amp;lt;&amp;amp;mu1 0 1&amp;gt;,
                 &amp;lt;&amp;amp;mu1 1 1&amp;gt;,
                 &amp;lt;&amp;amp;mu1 3 1&amp;gt;;
-       memory-region = &amp;lt;&amp;amp;vdevbuffer&amp;gt;, &amp;lt;&amp;amp;vdev0vring0&amp;gt;, &amp;lt;&amp;amp;vdev0vring1&amp;gt;,
+       memory-region = &amp;lt;&amp;amp;ocram&amp;gt;, &amp;lt;&amp;amp;vdevbuffer&amp;gt;, &amp;lt;&amp;amp;vdev0vring0&amp;gt;, &amp;lt;&amp;amp;vdev0vring1&amp;gt;,
                        &amp;lt;&amp;amp;vdev1vring0&amp;gt;, &amp;lt;&amp;amp;vdev1vring1&amp;gt;, &amp;lt;&amp;amp;rsc_table&amp;gt;;
        fsl,startup-delay-ms = &amp;lt;500&amp;gt;;
        status = "okay";
diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index 5e15dd127bde..cb0ec0946122 100644
--- a/drivers/remoteproc/imx_rproc.c
+++ b/drivers/remoteproc/imx_rproc.c
@@ -159,6 +159,9 @@ static const struct imx_rproc_att imx_rproc_att_imx93[] = {
 
        { 0xC0000000, 0xC0000000, 0x10000000, 0 },
        { 0xD0000000, 0xC0000000, 0x10000000, 0 },
+
+       /* OCRAM NON-SECURE */
+       { 0x20480000, 0x20480000, 0x00060000, 0 },
 };
 
 static const struct imx_rproc_att imx_rproc_att_imx8qm[] = {&lt;/LI-CODE&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Zhiming&lt;/P&gt;</description>
      <pubDate>Wed, 07 May 2025 06:07:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2092618#M2993</guid>
      <dc:creator>Zhiming_Liu</dc:creator>
      <dc:date>2025-05-07T06:07:23Z</dc:date>
    </item>
    <item>
      <title>Re: Query regarding the memories available for code execution on Cortex-M33 of i.MX93EVK board</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2093410#M2998</link>
      <description>&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/151788"&gt;@Zhiming_Liu&lt;/a&gt;&amp;nbsp;, I am not sure of the process by which the atf and dtb files generated for my board (could you provide any reference?)&lt;BR /&gt;But, I tried the following procedure :&lt;BR /&gt;I have cloned these repos :&lt;BR /&gt;&lt;A href="https://github.com/NXP/imx-atf" target="_self"&gt;https://github.com/NXP/imx-atf&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://github.com/NXP/imx-linux" target="_self"&gt;https://github.com/NXP/imx-linux&lt;/A&gt;&lt;BR /&gt;And updated the changes, but I am not sure how to build them and also update them on my board &lt;LI-EMOJI id="lia_disappointed-face" title=":disappointed_face:"&gt;&lt;/LI-EMOJI&gt;&lt;BR /&gt;&lt;BR /&gt;So, can you provide any procedure or references available that I could refer to?&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Thu, 08 May 2025 07:17:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2093410#M2998</guid>
      <dc:creator>Vikas7Bal</dc:creator>
      <dc:date>2025-05-08T07:17:15Z</dc:date>
    </item>
    <item>
      <title>Re: Query regarding the memories available for code execution on Cortex-M33 of i.MX93EVK board</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2094417#M3006</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Please refer&amp;nbsp;&lt;A href="https://www.nxp.com/docs/en/user-guide/IMX_PORTING_GUIDE.pdf" target="_blank"&gt;https://www.nxp.com/docs/en/user-guide/IMX_PORTING_GUIDE.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;and&amp;nbsp;&lt;STRONG&gt;4.5.13 How to build imx-boot image by using imx-mkimage&lt;/STRONG&gt; in this guide:&lt;A href="https://www.nxp.com/docs/en/user-guide/IMX_LINUX_USERS_GUIDE.pdf" target="_blank"&gt;https://www.nxp.com/docs/en/user-guide/IMX_LINUX_USERS_GUIDE.pdf&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Best Regards,&lt;BR /&gt;Zhiming&lt;/P&gt;</description>
      <pubDate>Fri, 09 May 2025 07:56:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/Query-regarding-the-memories-available-for-code-execution-on/m-p/2094417#M3006</guid>
      <dc:creator>Zhiming_Liu</dc:creator>
      <dc:date>2025-05-09T07:56:43Z</dc:date>
    </item>
  </channel>
</rss>

