<?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 i.MX93 rpmsg_send failed issue in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1859672#M223327</link>
    <description>&lt;P&gt;Hello Experts,&lt;/P&gt;&lt;P&gt;I am working on i.mx93 rpmsg_lite_str_echo_rtos example code given in&amp;nbsp;SDK_2_14_2_MIMX9352xxxxM.&lt;/P&gt;&lt;P&gt;Here my use case is that I am sending some periodic data (10,1,0,0) from i.mx93's cortex-M33 to cortex-A55 at every 10 second.&lt;/P&gt;&lt;P&gt;At Linux side in c application, I am able to read this data using&amp;nbsp;/dev/ttyRPMSG30, but after some time I am not getting any data in my c application.&lt;/P&gt;&lt;P&gt;After Checking dmesg log I found below errors,&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[  310.280524] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  310.300143] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512&lt;/LI-CODE&gt;&lt;P&gt;below is code snippet of the modified function to send data from cortex-M33 on rpmsg&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;void app_task(void *param)
{
    volatile uint32_t remote_addr;
    void *rx_buf;
    uint32_t len;
    int32_t result;
    void *tx_buf;
    uint32_t size;

#ifdef MCMGR_USED
    uint32_t startupData;

    /* Get the startup data */
    (void)MCMGR_GetStartupData(kMCMGR_Core1, &amp;amp;startupData);

    my_rpmsg = rpmsg_lite_remote_init((void *)startupData, RPMSG_LITE_LINK_ID, RL_NO_FLAGS);

    /* Signal the other core we are ready */
    (void)MCMGR_SignalReady(kMCMGR_Core1);
#else
    my_rpmsg = rpmsg_lite_remote_init((void *)RPMSG_LITE_SHMEM_BASE, RPMSG_LITE_LINK_ID, RL_NO_FLAGS);
#endif /* MCMGR_USED */

    rpmsg_lite_wait_for_link_up(my_rpmsg, RL_BLOCK);

    my_queue = rpmsg_queue_create(my_rpmsg);
    my_ept   = rpmsg_lite_create_ept(my_rpmsg, LOCAL_EPT_ADDR, rpmsg_queue_rx_cb, my_queue);
    (void)rpmsg_ns_announce(my_rpmsg, my_ept, RPMSG_LITE_NS_ANNOUNCE_STRING, RL_NS_CREATE);

    /* Get RPMsg rx buffer with message */
    result = rpmsg_queue_recv_nocopy(my_rpmsg, my_queue, (uint32_t *)&amp;amp;remote_addr, (char **)&amp;amp;rx_buf, &amp;amp;len, RL_BLOCK);
    if (result != 0)
    {
        assert(false);
    }

    /* Release held RPMsg rx buffer */
    result = rpmsg_queue_nocopy_free(my_rpmsg, rx_buf);
    if (result != 0)
    {
        assert(false);
    }

    for (;;)
    {
        if(rpmsg_send)  // this flag will become true at every 10 second
        {
            rpmsg_send = 0;

            // convert to string
            len = snprintf(app_buf, sizeof(app_buf), "%d,%d,%d,%d\r\n", voltage, 0, 0, 0);

            if(len&amp;gt;0 &amp;amp;&amp;amp; len&amp;lt;sizeof(app_buf))
            {
                
                tx_buf = rpmsg_lite_alloc_tx_buffer(my_rpmsg, &amp;amp;size, RL_BLOCK);
                assert(tx_buf);
               
                memcpy(tx_buf, app_buf, len);
                
                result = rpmsg_lite_send_nocopy(my_rpmsg, my_ept, remote_addr, tx_buf, len);
                if (result != 0)
                {
                    assert(false);
                }
            }
        }
    }
}&lt;/LI-CODE&gt;&lt;P&gt;PS: However, My C application stops receiving data from&amp;nbsp;/dev/ttyRPMSG30, still I am able to see data sent by cortex-M33 to cortex-A55 in dmesg logs.&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[   45.085653] rpmsg_tty_cb39 2c 30 2c 30 2c 30 0d 0a                       9,0,0,0..
[   55.085541] rpmsg_tty_cb39 2c 30 2c 30 2c 30 0d 0a                       9,0,0,0..
[   65.085425] rpmsg_tty_cb39 2c 30 2c 30 2c 30 0d 0a                       9,0,0,0..
[   75.085237] rpmsg_tty_cb39 2c 30 2c 30 2c 30 0d 0a                       9,0,0,0..
[   78.585719] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[   80.728381] systemd-journald[183]: Time jumped backwards, rotating.
[   85.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[   95.085240] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  105.085263] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  115.085799] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  125.085247] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  135.085248] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  140.678248] systemd-journald[183]: Time jumped backwards, rotating.
[  145.085823] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  155.085275] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  165.085317] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  175.085237] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  185.085252] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  195.085239] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  200.676232] systemd-journald[183]: Time jumped backwards, rotating.
[  205.085237] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  215.085240] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  225.085244] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  235.085269] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  245.085246] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  255.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  260.672888] systemd-journald[183]: Time jumped backwards, rotating.
[  265.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  275.085243] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  285.085332] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  295.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  305.085237] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  310.280524] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  310.300143] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  315.085240] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  320.668282] systemd-journald[183]: Time jumped backwards, rotating.
[  325.085250] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  325.359356] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  325.372434] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  335.085252] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  340.431001] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  340.456112] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  345.086076] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  355.085254] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  355.521789] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  355.538391] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  365.085237] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  370.628025] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  370.641824] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  375.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, Experts Here I am requesting to please look into this and give me some guidance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 06 May 2024 10:53:17 GMT</pubDate>
    <dc:creator>NZP</dc:creator>
    <dc:date>2024-05-06T10:53:17Z</dc:date>
    <item>
      <title>i.MX93 rpmsg_send failed issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1859672#M223327</link>
      <description>&lt;P&gt;Hello Experts,&lt;/P&gt;&lt;P&gt;I am working on i.mx93 rpmsg_lite_str_echo_rtos example code given in&amp;nbsp;SDK_2_14_2_MIMX9352xxxxM.&lt;/P&gt;&lt;P&gt;Here my use case is that I am sending some periodic data (10,1,0,0) from i.mx93's cortex-M33 to cortex-A55 at every 10 second.&lt;/P&gt;&lt;P&gt;At Linux side in c application, I am able to read this data using&amp;nbsp;/dev/ttyRPMSG30, but after some time I am not getting any data in my c application.&lt;/P&gt;&lt;P&gt;After Checking dmesg log I found below errors,&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[  310.280524] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  310.300143] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512&lt;/LI-CODE&gt;&lt;P&gt;below is code snippet of the modified function to send data from cortex-M33 on rpmsg&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;void app_task(void *param)
{
    volatile uint32_t remote_addr;
    void *rx_buf;
    uint32_t len;
    int32_t result;
    void *tx_buf;
    uint32_t size;

#ifdef MCMGR_USED
    uint32_t startupData;

    /* Get the startup data */
    (void)MCMGR_GetStartupData(kMCMGR_Core1, &amp;amp;startupData);

    my_rpmsg = rpmsg_lite_remote_init((void *)startupData, RPMSG_LITE_LINK_ID, RL_NO_FLAGS);

    /* Signal the other core we are ready */
    (void)MCMGR_SignalReady(kMCMGR_Core1);
#else
    my_rpmsg = rpmsg_lite_remote_init((void *)RPMSG_LITE_SHMEM_BASE, RPMSG_LITE_LINK_ID, RL_NO_FLAGS);
#endif /* MCMGR_USED */

    rpmsg_lite_wait_for_link_up(my_rpmsg, RL_BLOCK);

    my_queue = rpmsg_queue_create(my_rpmsg);
    my_ept   = rpmsg_lite_create_ept(my_rpmsg, LOCAL_EPT_ADDR, rpmsg_queue_rx_cb, my_queue);
    (void)rpmsg_ns_announce(my_rpmsg, my_ept, RPMSG_LITE_NS_ANNOUNCE_STRING, RL_NS_CREATE);

    /* Get RPMsg rx buffer with message */
    result = rpmsg_queue_recv_nocopy(my_rpmsg, my_queue, (uint32_t *)&amp;amp;remote_addr, (char **)&amp;amp;rx_buf, &amp;amp;len, RL_BLOCK);
    if (result != 0)
    {
        assert(false);
    }

    /* Release held RPMsg rx buffer */
    result = rpmsg_queue_nocopy_free(my_rpmsg, rx_buf);
    if (result != 0)
    {
        assert(false);
    }

    for (;;)
    {
        if(rpmsg_send)  // this flag will become true at every 10 second
        {
            rpmsg_send = 0;

            // convert to string
            len = snprintf(app_buf, sizeof(app_buf), "%d,%d,%d,%d\r\n", voltage, 0, 0, 0);

            if(len&amp;gt;0 &amp;amp;&amp;amp; len&amp;lt;sizeof(app_buf))
            {
                
                tx_buf = rpmsg_lite_alloc_tx_buffer(my_rpmsg, &amp;amp;size, RL_BLOCK);
                assert(tx_buf);
               
                memcpy(tx_buf, app_buf, len);
                
                result = rpmsg_lite_send_nocopy(my_rpmsg, my_ept, remote_addr, tx_buf, len);
                if (result != 0)
                {
                    assert(false);
                }
            }
        }
    }
}&lt;/LI-CODE&gt;&lt;P&gt;PS: However, My C application stops receiving data from&amp;nbsp;/dev/ttyRPMSG30, still I am able to see data sent by cortex-M33 to cortex-A55 in dmesg logs.&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;[   45.085653] rpmsg_tty_cb39 2c 30 2c 30 2c 30 0d 0a                       9,0,0,0..
[   55.085541] rpmsg_tty_cb39 2c 30 2c 30 2c 30 0d 0a                       9,0,0,0..
[   65.085425] rpmsg_tty_cb39 2c 30 2c 30 2c 30 0d 0a                       9,0,0,0..
[   75.085237] rpmsg_tty_cb39 2c 30 2c 30 2c 30 0d 0a                       9,0,0,0..
[   78.585719] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[   80.728381] systemd-journald[183]: Time jumped backwards, rotating.
[   85.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[   95.085240] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  105.085263] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  115.085799] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  125.085247] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  135.085248] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  140.678248] systemd-journald[183]: Time jumped backwards, rotating.
[  145.085823] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  155.085275] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  165.085317] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  175.085237] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  185.085252] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  195.085239] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  200.676232] systemd-journald[183]: Time jumped backwards, rotating.
[  205.085237] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  215.085240] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  225.085244] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  235.085269] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  245.085246] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  255.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  260.672888] systemd-journald[183]: Time jumped backwards, rotating.
[  265.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  275.085243] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  285.085332] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  295.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  305.085237] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  310.280524] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  310.300143] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  315.085240] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  320.668282] systemd-journald[183]: Time jumped backwards, rotating.
[  325.085250] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  325.359356] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  325.372434] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  335.085252] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  340.431001] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  340.456112] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  345.086076] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  355.085254] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  355.521789] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  355.538391] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  365.085237] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..
[  370.628025] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: timeout waiting for a tx buffer
[  370.641824] imx_rpmsg_tty virtio1.rpmsg-virtual-tty-channel.-1.30: rpmsg_send failed: -512
[  375.085242] rpmsg_tty_cb36 2c 30 2c 30 2c 30 0d 0a                       6,0,0,0..&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, Experts Here I am requesting to please look into this and give me some guidance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 May 2024 10:53:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1859672#M223327</guid>
      <dc:creator>NZP</dc:creator>
      <dc:date>2024-05-06T10:53:17Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX93 rpmsg_send failed issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1861613#M223473</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/221645"&gt;@NZP&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to replicate your issue.&lt;/P&gt;
&lt;P&gt;Could you please tell me about the&amp;nbsp;&lt;STRONG&gt;rpmsg_send&lt;/STRONG&gt; and &lt;STRONG&gt;voltage&lt;/STRONG&gt; variables?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also the BSP version that you are using.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best reagrds.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Salas.&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2024 17:01:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1861613#M223473</guid>
      <dc:creator>Manuel_Salas</dc:creator>
      <dc:date>2024-05-08T17:01:16Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX93 rpmsg_send failed issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1862120#M223492</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;SPAN&gt;Salas,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks for your reply,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1. Cortex M33 SDK version:&amp;nbsp;&lt;STRONG&gt;SDK_2.14.2_MIMX9352xxxxM&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;2. Linux BSP version:&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;i.MX Linux Yocto Project BSP 6.1.1_1.0.0 Release&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Please find attached test program for cortex M33 to send rpmsg data and linux c++ app to receive rpmsg data.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;P.S: what is my main problem is that my c++ application is able to receive data for some time but after certain period of time c++ application is not receiving any data from /dev/ttyRPMSG30, however I am able to see data sent from cortex-m33 in linux kernel dmesg logs.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 09 May 2024 04:19:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1862120#M223492</guid>
      <dc:creator>NZP</dc:creator>
      <dc:date>2024-05-09T04:19:26Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX93 rpmsg_send failed issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1865729#M223719</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/221645"&gt;@NZP&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I modified a little your code:&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;for (;;)
    {
        if(rpmsg_send)
        {
            rpmsg_send = 0;

            // convert to string
            len = snprintf(app_buf, sizeof(app_buf), "%d,%d,%d,%d\r\n", voltage++, 0, 0, 0);

            if(len&amp;gt;0 &amp;amp;&amp;amp; len&amp;lt;sizeof(app_buf))
            {
                /* Get tx buffer from RPMsg */
                tx_buf = rpmsg_lite_alloc_tx_buffer(my_rpmsg, &amp;amp;size, RL_BLOCK);
                
                assert(tx_buf);
              
                /* Copy string to RPMsg tx buffer */
                memcpy(tx_buf, app_buf, len);
                result = rpmsg_lite_send_nocopy(my_rpmsg, my_ept, remote_addr, tx_buf, len);
                
                if (result != 0)
                {
                    assert(false);
                }

                result = rpmsg_queue_nocopy_free(my_rpmsg, tx_buf);
                if (result != 0)
                {
                    assert(false);
                }

            
            }
        }
    }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I added:&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;result = rpmsg_queue_nocopy_free(my_rpmsg, tx_buf);
                if (result != 0)
                {
                    assert(false);
                }&lt;/LI-CODE&gt;
&lt;P&gt;To free the tx buffer, and now you should not have the&amp;nbsp;&lt;STRONG&gt;timeout waiting for a tx buffer rpmsg&lt;/STRONG&gt; log.&lt;/P&gt;
&lt;P&gt;Logs from dmesg:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Alejandro_Salas_0-1715724662349.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/278779i58A199DA7283EB0F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Alejandro_Salas_0-1715724662349.png" alt="Alejandro_Salas_0-1715724662349.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Logs from your Linux application:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Alejandro_Salas_1-1715724697341.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/278780iBCFCDDB2A657734E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Alejandro_Salas_1-1715724697341.png" alt="Alejandro_Salas_1-1715724697341.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;I modified the &lt;STRONG&gt;voltage&lt;/STRONG&gt; variable to increment each iteration.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can confirm that the cortex M is sending messages to cortex A by the dmesg command, but sometimes trying to read form the ttyRPMSG30 the cortex A freeze for a moment, then work normally and It can read the ttyRPMSG30.&lt;/P&gt;
&lt;P&gt;I am still investigating this issue.&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, 14 May 2024 22:13:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1865729#M223719</guid>
      <dc:creator>Manuel_Salas</dc:creator>
      <dc:date>2024-05-14T22:13:14Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX93 rpmsg_send failed issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1865897#M223734</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/203368"&gt;@Manuel_Salas&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for reply.&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;I can confirm that the cortex M is sending messages to cortex A by the dmesg command, but sometimes trying to read form the ttyRPMSG30 the cortex A freeze for a moment, then work normally and It can read the ttyRPMSG30.&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my case once&amp;nbsp;ttyRPMSG30 freezes it is not coming out. So, waiting for your observation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 15 May 2024 04:39:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1865897#M223734</guid>
      <dc:creator>NZP</dc:creator>
      <dc:date>2024-05-15T04:39:15Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX93 rpmsg_send failed issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1866491#M223780</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/221645"&gt;@NZP&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried with Linux 6.6.3 and it is working well.&lt;/P&gt;
&lt;P&gt;Could you please try and let me know if the issue still is happening?&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Alejandro_Salas_0-1715795790705.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/278949iA669DEE06F322CBF/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Alejandro_Salas_0-1715795790705.png" alt="Alejandro_Salas_0-1715795790705.png" /&gt;&lt;/span&gt;&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>Wed, 15 May 2024 17:56:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1866491#M223780</guid>
      <dc:creator>Manuel_Salas</dc:creator>
      <dc:date>2024-05-15T17:56:52Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX93 rpmsg_send failed issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1867791#M223861</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/203368"&gt;@Manuel_Salas&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;After adding below at cortex-m33 side able to remove "&lt;STRONG&gt;timeout waiting for a tx buffer rpmsg&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;log"&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;result = rpmsg_queue_nocopy_free(my_rpmsg, tx_buf);
                if (result != 0)
                {
                    assert(false);
                }&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but still getting the issue of freezing&amp;nbsp;&lt;SPAN&gt;ttyRPMSG30.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Can you please suggest other strategy to debug this issue.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 17 May 2024 07:08:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1867791#M223861</guid>
      <dc:creator>NZP</dc:creator>
      <dc:date>2024-05-17T07:08:53Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX93 rpmsg_send failed issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1868888#M223943</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/203368"&gt;@Manuel_Salas&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;While testing I got one observation,&lt;/P&gt;&lt;P&gt;if I do &lt;STRONG&gt;screen /dev/ttyRPMSG30&lt;/STRONG&gt; it is working fine, and port is not freezing, but in c++ application port is still freezing.&lt;/P&gt;</description>
      <pubDate>Mon, 20 May 2024 12:30:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX93-rpmsg-send-failed-issue/m-p/1868888#M223943</guid>
      <dc:creator>NZP</dc:creator>
      <dc:date>2024-05-20T12:30:43Z</dc:date>
    </item>
  </channel>
</rss>

