<?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: understannd imx8qm rpmsg in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/understannd-imx8qm-rpmsg/m-p/1938071#M227566</link>
    <description>I read that part ( whas the first place I started), but it is not enough, I need to see if there is any correlation between buffer size and speed, and how the read/write operation occurs ( is there a bit that allows a read to happen?), how many rpmsg channels can I create? as for now all can do is make in my m4 application an anouncement string called "rpmsg_raw" and on linux side "dev/rpmsg0" appears, can I make more? so that I can split the functionality? is there a tradeoff? I am limited to a specific speed of write/read?</description>
    <pubDate>Thu, 22 Aug 2024 05:52:38 GMT</pubDate>
    <dc:creator>Ahelion</dc:creator>
    <dc:date>2024-08-22T05:52:38Z</dc:date>
    <item>
      <title>understannd imx8qm rpmsg</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/understannd-imx8qm-rpmsg/m-p/1937100#M227523</link>
      <description>&lt;P&gt;Hello Experts,&lt;/P&gt;&lt;P&gt;I am trying to learn more about the rpmsg system of the imx8qm, and my starting point is the linux docu:&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.kernel.org/doc/Documentation/rpmsg.txt" target="_blank"&gt;https://www.kernel.org/doc/Documentation/rpmsg.txt&lt;/A&gt;&lt;/P&gt;&lt;P&gt;togheter with the device tree for .rpmsg&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;memory-region = &amp;lt;&amp;amp;vdevbuffer&amp;gt;, &amp;lt;&amp;amp;vdev0vring0&amp;gt;, &amp;lt;&amp;amp;vdev0vring1&amp;gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;lt;&amp;amp;vdev1vring0&amp;gt;, &amp;lt;&amp;amp;vdev1vring1&amp;gt;, &amp;lt;&amp;amp;rsc_table0&amp;gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;fsl,resource-id = &amp;lt;IMX_SC_R_M4_0_PID0&amp;gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;fsl,entry-address = &amp;lt;0x34fe0000&amp;gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;status = "okay";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;power-domains = &amp;lt;&amp;amp;pd IMX_SC_R_M4_0_PID0&amp;gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;lt;&amp;amp;pd IMX_SC_R_M4_0_MU_1A&amp;gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;imx8qm_cm41: imx8x_cm4@1 {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;compatible = "fsl,imx8qm-cm4";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;rsc-da = &amp;lt;0x90100000&amp;gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mbox-names = "tx", "rx", "rxdb";&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mboxes = &amp;lt;&amp;amp;lsio_mu6 0 1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;amp;lsio_mu6 1 1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;amp;lsio_mu6 3 1&amp;gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;memory-region = &amp;lt;&amp;amp;vdevbuffer&amp;gt;, &amp;lt;&amp;amp;vdev2vring0&amp;gt;, &amp;lt;&amp;amp;vdev2vring1&amp;gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;lt;&amp;amp;vdev3vring0&amp;gt;, &amp;lt;&amp;amp;vdev3vring1&amp;gt;, &amp;lt;&amp;amp;rsc_table1&amp;gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My question is what exactly are the "&lt;SPAN&gt;vdevbuffer&lt;/SPAN&gt;" and "&lt;SPAN&gt;vdevXvringY&lt;/SPAN&gt;" things?&lt;/P&gt;&lt;P&gt;Is there a document explaining it better? I need to know what are the limitations, for example: what are the speeds I can use to send data over IPC? 10ms 1second? is it correlated to buffer size? is 128 faster than 512 bytes? how can I configured channels? have on linux side in /dev more rpmsg things for other applications to communicate with my m4 application?&lt;/P&gt;</description>
      <pubDate>Wed, 21 Aug 2024 07:16:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/understannd-imx8qm-rpmsg/m-p/1937100#M227523</guid>
      <dc:creator>Ahelion</dc:creator>
      <dc:date>2024-08-21T07:16:44Z</dc:date>
    </item>
    <item>
      <title>Re: understannd imx8qm rpmsg</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/understannd-imx8qm-rpmsg/m-p/1937749#M227548</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/225423"&gt;@Ahelion&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope you are doing well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I believe you checked our &lt;A href="https://www.nxp.com/docs/en/reference-manual/IMX_REFERENCE_MANUAL.pdf" target="_self"&gt;I.MX Linux Reference Manual&lt;/A&gt;, specifically on chapter&amp;nbsp;2.8 Remote Processor Messaging. There is explained how RPMSG works and also there is mentioned&amp;nbsp;that RPMsg is a virtio-based messaging bus. You can look at this &lt;A href="https://projectacrn.github.io/latest/developer-guides/hld/hld-virtio-devices.html" target="_self"&gt;Vitrio "framework" documentation&lt;/A&gt; to get details.&lt;/P&gt;
&lt;P&gt;But, in a few words&amp;nbsp;vdevbuffer Represents a shared DMA buffer pool.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope this can helps to you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;--... ...--&lt;/P&gt;
&lt;P&gt;Salas.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Aug 2024 20:32:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/understannd-imx8qm-rpmsg/m-p/1937749#M227548</guid>
      <dc:creator>Manuel_Salas</dc:creator>
      <dc:date>2024-08-21T20:32:03Z</dc:date>
    </item>
    <item>
      <title>Re: understannd imx8qm rpmsg</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/understannd-imx8qm-rpmsg/m-p/1938071#M227566</link>
      <description>I read that part ( whas the first place I started), but it is not enough, I need to see if there is any correlation between buffer size and speed, and how the read/write operation occurs ( is there a bit that allows a read to happen?), how many rpmsg channels can I create? as for now all can do is make in my m4 application an anouncement string called "rpmsg_raw" and on linux side "dev/rpmsg0" appears, can I make more? so that I can split the functionality? is there a tradeoff? I am limited to a specific speed of write/read?</description>
      <pubDate>Thu, 22 Aug 2024 05:52:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/understannd-imx8qm-rpmsg/m-p/1938071#M227566</guid>
      <dc:creator>Ahelion</dc:creator>
      <dc:date>2024-08-22T05:52:38Z</dc:date>
    </item>
    <item>
      <title>Re: understannd imx8qm rpmsg</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/understannd-imx8qm-rpmsg/m-p/1940570#M227687</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/225423"&gt;@Ahelion&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope you are doing very well!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the &lt;A href="https://github.com/nxp-imx/linux-imx/blob/lf-6.6.y/drivers/rpmsg/virtio_rpmsg_bus.c#L130" target="_self"&gt;vitrio_rpmsg_bus.c driver&lt;/A&gt; you can see that the buffers are allocated by 512 bytes each for communication.&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;The&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;number of buffers will be computed from the number of buffers supported&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;by the vring, up to a maximum of 512 buffers (256 in each direction).&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;Each buffer will have 16 bytes for the msg header and 496 bytes for&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;the payload.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;This will utilize a maximum total space of 256KB for the buffers.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Also, you can check &lt;A href="https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Modify-RPMSG-buffer-payload-size/ta-p/1799540" target="_self"&gt;this post&lt;/A&gt; about of the changes on buffer size. Unfortunately we have not documented the situation or relation of Buffer size and speed transfer, but RPMSG is designed to manage short messages and a larger buffer size means more transmission time.&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Salas.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 26 Aug 2024 17:09:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/understannd-imx8qm-rpmsg/m-p/1940570#M227687</guid>
      <dc:creator>Manuel_Salas</dc:creator>
      <dc:date>2024-08-26T17:09:32Z</dc:date>
    </item>
  </channel>
</rss>

