<?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.MX8 Cortex-M4 RPMSG-lite best practice in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8-Cortex-M4-RPMSG-lite-best-practice/m-p/1320345#M178082</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks for your help !&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I have already seen this example, but there is no remoteproc0 on my device... I don't know why because the option is enabled in the Kernel source. I will investigate further.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 09 Aug 2021 13:05:08 GMT</pubDate>
    <dc:creator>romainmoura</dc:creator>
    <dc:date>2021-08-09T13:05:08Z</dc:date>
    <item>
      <title>i.MX8 Cortex-M4 RPMSG-lite best practice</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8-Cortex-M4-RPMSG-lite-best-practice/m-p/1318901#M177947</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;We are starting a new project based on an i.MX8mm board running a Yocto Linux.&lt;/P&gt;&lt;P&gt;We plan to put most parts of the hardware access on the Cortex-m4 coprocessor. For this propose we will need a lot of interprocessor communication, a certain amount of data will transit between the Linux A53 cores and the M4 core.&lt;/P&gt;&lt;P&gt;RPMSG-lite seems to be designed for this, but, I'm wondering what the best practice during the development process of the M4 firmware. From what I have tested, things are OK for "production", the process is :&lt;/P&gt;&lt;P&gt;-Halt in u-boot&lt;/P&gt;&lt;P&gt;-Load the cortex-M4 firmware (the .bin file or, in my case, with a j-link probe)&lt;/P&gt;&lt;P&gt;-boot Linux&lt;/P&gt;&lt;P&gt;-During the Linux boot, the M4 can see the rpmsg link going up&lt;/P&gt;&lt;P&gt;-Once started, load the rpmsg kernel module (modprobe imx_rpmsg_tty)&lt;/P&gt;&lt;P&gt;-start talking between A53 and M4 cores&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Good, but during the development process, we need to "live test" our firmware, but, once this previous "hand check" process had been executed at boot, if I load a new firmware (via j-link probe), the rpmsg behaviour became unstable, sometimes it works, sometimes it seems that the queue had kept all the data from the beginning and sometime the Linux hang....&lt;/P&gt;&lt;P&gt;The only way is to reboot the Linux each time to correctly execute the initialisation process, but, this is not a suitable option for a heavy M4 firmware development.&lt;/P&gt;&lt;P&gt;So my question, is there a better way to develop on the M4 ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your help !&lt;/P&gt;</description>
      <pubDate>Thu, 05 Aug 2021 09:24:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX8-Cortex-M4-RPMSG-lite-best-practice/m-p/1318901#M177947</guid>
      <dc:creator>romainmoura</dc:creator>
      <dc:date>2021-08-05T09:24:59Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX8 Cortex-M4 RPMSG-lite best practice</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8-Cortex-M4-RPMSG-lite-best-practice/m-p/1319897#M178036</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;You could try using remoteproc which can be used at Linux user space for stop, restart and reload Cortex-M, you may refer to the kernel documentation for more information:&lt;BR /&gt;&lt;A href="https://www.kernel.org/doc/Documentation/remoteproc.txt" target="_blank"&gt;https://www.kernel.org/doc/Documentation/remoteproc.txt&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Also, you could refer to the following example:&lt;/P&gt;
&lt;UL type="disc"&gt;
&lt;LI&gt;u-boot=&amp;gt; setenv fdt_file imx8mm-evk-rpmsg.dtb&lt;/LI&gt;
&lt;LI&gt;Boot Linux &amp;amp; Login.&lt;/LI&gt;
&lt;LI&gt;modprobe imx_rpmsg_tty&lt;/LI&gt;
&lt;LI&gt;cd /sys/class/remoteproc/remoteproc0&lt;/LI&gt;
&lt;LI&gt;echo /run/media/mmcblk1p1/ &amp;gt;/sys/module/firmware_class/parameters/path&lt;/LI&gt;
&lt;LI&gt;echo imx8mm_m4_TCM_rpmsg_lite_str_echo_rtos.elf &amp;gt;firmware&amp;nbsp;#Note: *.elf, not *.bin.&lt;/LI&gt;
&lt;LI&gt;cat state&amp;nbsp;#It should report&amp;nbsp;offline&lt;/LI&gt;
&lt;LI&gt;Load C-M program via JTAG&lt;/LI&gt;
&lt;LI&gt;echo start &amp;gt;state&lt;/LI&gt;
&lt;LI&gt;Load a new C-M program via JTAG&lt;/LI&gt;
&lt;LI&gt;echo stop &amp;gt;state&lt;/LI&gt;
&lt;LI&gt;echo start &amp;gt;state&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;Then you just need to repeat steps 10 -12 if you disconnect the debugger to load a new image.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Aldo.&lt;/P&gt;</description>
      <pubDate>Sat, 07 Aug 2021 00:04:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX8-Cortex-M4-RPMSG-lite-best-practice/m-p/1319897#M178036</guid>
      <dc:creator>AldoG</dc:creator>
      <dc:date>2021-08-07T00:04:22Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX8 Cortex-M4 RPMSG-lite best practice</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8-Cortex-M4-RPMSG-lite-best-practice/m-p/1320345#M178082</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks for your help !&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I have already seen this example, but there is no remoteproc0 on my device... I don't know why because the option is enabled in the Kernel source. I will investigate further.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Aug 2021 13:05:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX8-Cortex-M4-RPMSG-lite-best-practice/m-p/1320345#M178082</guid>
      <dc:creator>romainmoura</dc:creator>
      <dc:date>2021-08-09T13:05:08Z</dc:date>
    </item>
  </channel>
</rss>

