This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Regarding CPPI and QMSS cleanup function.



Hi,

I am facing the issue whenever I reload my program in EVM without resetting the EVM.

There is cleanup function missing i.e Channel_close, queue_close, Cppi_exit,Cppi_close.

is there ant way to detect at startup that that channel is already configured and enable so I can tear it down?

I am assuming as reconfiguration of channel isn't allowed and this may be reason behind this error.

BR,

Rohan

  • Hi,

    Thanks for your post.

    I think, after freeing the queue through Qmss_queueClose() API, the CPPI subsystem needs to be stopped through res_mgr_stop_cppi() API and the API will de-initialize the CPPI LLD which will check for the cfg_type and will appropriately close or free the CPPI transmit or receive channel as below:

    int32_t res_mgr_stop_cppi ( CPPI_CFG_TYPE  cfg_type)

    {

      uint32_t i;

      if (cfg_type == CPPI_CFG_PASS)

      {

          for (i = 0; i < gCppiCfg[cfg_type].num_rx_channels; i++)

              Cppi_channelClose (gPassCpdmaRxChanHnd[i]);

          for (i = 0; i < gCppiCfg[cfg_type].num_tx_queues; i++)

              Cppi_channelClose (gPassCpdmaTxChanHnd[i]);

      }

      return 0;

    }

    I guess, the above should be used for proper CPPI/QMSS termination

    Thanks & regards,

    Sivaraj K

    -------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.

    -------------------------------------------------------------------------------------------------------

  • Thanks Sivaraj for your reply...