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.

EVMK2H: IPC method( MessageQ and MessageCom) and DSP image loading/running method relationship

Hi experts,

For EVMK2H board, there are two kinds of IPC method. They are MessageQ and MessageCom; there are also two kinds of method to loading/running DSP image. They are CCS and MPM.

Q: Is there any rule or limitation on IPC and DSP loading/running? That is to say, for example, if we choose MessageCom for IPC, can we use MPM to load/running DSP image? The relationship table is like below.

 

MPM

CCS

MessageQ

 

 

MessageCom

 

 

Note:

mcsdk: 3_01_01_04

ipc:3_22_02_11

syslib:3_00_00_06

 

Tony

 

  • Tony,

    Refer the E2E post, this will be helpful you for how to use MsgCom & MPM.
    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/346767/1213614.aspx#1213614
    http://e2e.ti.com/support/embedded/linux/f/354/t/328785.aspx

    In addition, the Msgcom will be retired soon. The Msgcom product will continue to be supported on existing devices.
    But development has stopped and support for new devices will not be added.

    Better to use the IPC with messageQ on your application.

  • Hi Pubesh,

    Thanks for your response.

    I would like to use IPC3.x to replace Msgcom. But I am afraid IPC 3.x doesn't provide good enough performance as  Msgcom. My application needs large data communication between ARM and DSP.

    Q1: Is there solution to increasing IPC 3.x performance?

    From the link you mentioned, it says

    "In KeyStone2 platforms you must to use MPM to load and run DSP applications linked with IPC 3.x."

    Q2: Can we use MPM to load and run DSP applications linked with Msgcom?

     

    Tony

  • Tony,

    1. It will be possible to increase the performance, please go through the chapter "Optimizing IPC Applications" in the SYS/BIOS Inter-Processor Communication(IPC) User’s Guide. 

    2. Yes, you can use MPM to load and run DSP applications linked with Msgcom. But in future the support for Msgcom will be less, due to the Msgcom will be retired.

  • Hi Pubesh,

    Thanks for your answer.

    In my application, the payload size between ARM and DSP communication may be up to 1500 Bytes. So I hope to use "Multicore Navigator". Msgcom does use "Multicore Navigator", but IPC 3.x doesn't.

    Q1: Will IPC 3.x use Multicore Navigator in the future release? When?

    Q2: Does IPC 3.x MessageQ support payload size up to 1500 Bytes? How?

    If I just transfer pointer and size through MessageQ, I need to use CMEM to allocate continuous memory on ARM side. It can be applied to DDR3.

    Q3:Can we use CMEM to allocate continuous memory on MSMC SRAM(shared memory) for better performance?

     

    Tony

  • Tony,

    1. As of now there is no plan to release IPC_3.x with multicore navigator.


    2. Refer this wiki page, for the support of IPC 3.x MessageQ payload size
    http://processors.wiki.ti.com/index.php/IPC_BenchMarking

    3. The IpcMgr module provides configuration properties that set the number of Notify and
    MessageQ messages stored in the circular buffers and the largest MessageQ size (in bytes) supported
    by the transport. These can be modified to reduce shared memory use if the application passes relatively
    few messages between the processors. Refer the section "Optimizing Shared Memory Usage" in the IPC user guide.

  • Hi Pubesh,

    Pubesh said:
    2. Refer this wiki page, for the support of IPC 3.x MessageQ payload size
    http://processors.wiki.ti.com/index.php/IPC_BenchMarking

    I run MessageQBench test, but the payload size only supports <= 456 Byte. If payload size > 456, it shows error. See the below picture.

    My payload size may be up to 1500 Bytes.  How to resolve it?

      

    Tony

  • Tony,

    You can take as a reference code from mcsdk based on keystone-I as per below path, this will help you.
    C:\ti\pdk_C6678_1_1_2_6\packages\ti\transport\ipc\examples

    Find more detailed information at this wiki,

    http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_User_Guide#IPC_Benchmarks