<?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のトピックRe: iMX8ULP - rpmsg communication errors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2160032#M240383</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/202748"&gt;@j_k&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;I have a few questions/requests.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you please share your device tree related to the reserved memory for vring?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You said you modified the example of "&lt;SPAN&gt;power_mode_switch", which modifications did you do?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Answering your questions.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;1- Yes, take a look to the &lt;A href="https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts" target="_self"&gt;reference Device tree&lt;/A&gt;, vdev* and&amp;nbsp;vdevbuffer are in DDR.&amp;nbsp;RPMsg itself doesn’t require DDR, any shared memory reachable by both cores works.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Manuel_Salas_0-1756392712972.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/354609i9D83A75A409F76F2/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Manuel_Salas_0-1756392712972.png" alt="Manuel_Salas_0-1756392712972.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2-&amp;nbsp;Virtio vrings in shared memory + MU interrupts&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3- No, Unfortunately there is not a sample test of DRAM on M33 side.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Salas.&lt;/P&gt;</description>
    <pubDate>Thu, 28 Aug 2025 14:54:57 GMT</pubDate>
    <dc:creator>Manuel_Salas</dc:creator>
    <dc:date>2025-08-28T14:54:57Z</dc:date>
    <item>
      <title>iMX8ULP - rpmsg communication errors</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2158363#M240323</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;we are using an iMX8ULP board with a rpmsg service between A35 and CM33 core.&lt;/P&gt;&lt;P&gt;We noticed some bit errors, when the CM33 sends data to the A35.&lt;/P&gt;&lt;P&gt;For CM33 firmware, we used the SDK 25.06.00 and adjusted the "&lt;SPAN&gt;power_mode_switch" demo from NXP. A 'loopback command' was added, so we can send a block of data from the A35 Linux to the CM33, the CM33 copies this data and sends it back to the Linux. We noticed, that sometimes bits flip from 1 to 0. The CM33 receives the data from Linux correctly, but the response to the Linux side has these bit errors. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;For example: A35 sends '0xFF', CM33 receives '0xFF', CM33 generates a copy of the data and send '0xFF' back, but A35 reads '0xFD' via rpmsg.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;To further track down the issue, can you give us some guidance:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;- Is it correct, that rpmsg exchanges the data between A35 and CM33 via the external DRAM?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;- How does rpmsg synchronize the data access between both cores?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;- Is there any RAM test tool to check the DRAM settings from CM33? (we used NXP Tool to generate uboot timings, both this only works on the A35 side, I think.)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks in advance,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Jan.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Aug 2025 13:16:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2158363#M240323</guid>
      <dc:creator>j_k</dc:creator>
      <dc:date>2025-08-26T13:16:42Z</dc:date>
    </item>
    <item>
      <title>Re: iMX8ULP - rpmsg communication errors</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2160032#M240383</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/202748"&gt;@j_k&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;I have a few questions/requests.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you please share your device tree related to the reserved memory for vring?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You said you modified the example of "&lt;SPAN&gt;power_mode_switch", which modifications did you do?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Answering your questions.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;1- Yes, take a look to the &lt;A href="https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts" target="_self"&gt;reference Device tree&lt;/A&gt;, vdev* and&amp;nbsp;vdevbuffer are in DDR.&amp;nbsp;RPMsg itself doesn’t require DDR, any shared memory reachable by both cores works.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Manuel_Salas_0-1756392712972.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/354609i9D83A75A409F76F2/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Manuel_Salas_0-1756392712972.png" alt="Manuel_Salas_0-1756392712972.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2-&amp;nbsp;Virtio vrings in shared memory + MU interrupts&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3- No, Unfortunately there is not a sample test of DRAM on M33 side.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Salas.&lt;/P&gt;</description>
      <pubDate>Thu, 28 Aug 2025 14:54:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2160032#M240383</guid>
      <dc:creator>Manuel_Salas</dc:creator>
      <dc:date>2025-08-28T14:54:57Z</dc:date>
    </item>
    <item>
      <title>Re: iMX8ULP - rpmsg communication errors</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2160505#M240401</link>
      <description>&lt;P&gt;Hi Salas,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for the reply.&lt;/P&gt;&lt;P&gt;Here is the part of the device tree:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;reserved-memory {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;2&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;2&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; ranges;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; linux,cma {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = "shared-dma-pool";&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reusable;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; size = &amp;lt;0 0x28000000&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; linux,cma-default;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; rsc_table: rsc-table@1fff8000{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0 0x1fff8000 0 0x1000&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; no-map;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; dsp_reserved: dsp@8e000000 {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0 0x8e000000 0 0x2000000&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; no-map;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; vdev0vring0: vdev0vring0@aff00000 {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0 0xaff00000 0 0x8000&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;no-map;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; vdev0vring1: vdev0vring1@aff08000 {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0 0xaff08000 0 0x8000&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; no-map;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; vdev1vring0: vdev1vring0@aff10000 {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0 0xaff10000 0 0x8000&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; no-map;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; vdev1vring1: vdev1vring1@aff18000 {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0 0xaff18000 0 0x8000&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; no-map;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; vdevbuffer: vdevbuffer@a8400000 {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = "shared-dma-pool";&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0 0xa8400000 0 0x100000&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; no-map;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; audio_reserved: audio@a8500000 {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = "shared-dma-pool";&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; no-map;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0 0xa8500000 0 0x100000&amp;gt;;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; };&lt;BR /&gt;};&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Compared to the example you linked, we don't have "m33_reserved" section, but it's also not listed in the linkerfile of M33 and not all dsp sections, but we also don't use that.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;You said you modified the example of "power_mode_switch", which modifications did you do?&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;The M33 is connected to some SPI slaves, we made a srtm service, so we can access those from the Linux side. That means we extended the demo and added a 'srtm_spi_service', that works similar to the 'srtm_i2c_service' provided by NXP.&lt;/P&gt;&lt;P&gt;We already checked, that the bit flipping is not a problem of the SPI communication, this looks clean, M33 receives correct data from the slaves, but passing the correct data through rpmsg results in those bit errors on A35 side.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'd like to add, that we don't see this behavior all the time, it only happens randomly every few commands.&lt;/P&gt;</description>
      <pubDate>Fri, 29 Aug 2025 08:07:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2160505#M240401</guid>
      <dc:creator>j_k</dc:creator>
      <dc:date>2025-08-29T08:07:10Z</dc:date>
    </item>
    <item>
      <title>Re: iMX8ULP - rpmsg communication errors</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2161662#M240446</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As this happens randomly, it is very difficult to find the root cause of the issue.&lt;/P&gt;
&lt;P&gt;Is there a way to reproduce the issue by my side?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Salas.&lt;/P&gt;</description>
      <pubDate>Tue, 02 Sep 2025 01:49:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2161662#M240446</guid>
      <dc:creator>Manuel_Salas</dc:creator>
      <dc:date>2025-09-02T01:49:48Z</dc:date>
    </item>
    <item>
      <title>Re: iMX8ULP - rpmsg communication errors</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2162937#M240501</link>
      <description>&lt;P&gt;Hi Salas,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;yes, that's our problem too.&lt;/P&gt;&lt;P&gt;We will try to narrow the error down a bit more. Knowing the communication is done via DRAM, we will recheck with NXP DDR Tools if our settings are OK.&lt;/P&gt;&lt;P&gt;Best greetings, Jan.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Sep 2025 13:25:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8ULP-rpmsg-communication-errors/m-p/2162937#M240501</guid>
      <dc:creator>j_k</dc:creator>
      <dc:date>2025-09-03T13:25:18Z</dc:date>
    </item>
  </channel>
</rss>

