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.

C6670 Example Question

Hi,

 

I was run srioIpcChipToChipExample example code,but have below warning message:

 

[C66xx_2] ti.sdo.ipc.family.c647x.MultiProcSetup: line 62: assertion failure: A_invalidProcessor: This core is not present in the MultiProc name list

 

[C66xx_2] xdc.runtime.Error.raise: terminating execution

 

[C66xx_3] ti.sdo.ipc.family.c647x.MultiProcSetup: line 62: assertion failure: A_invalidProcessor: This core is not present in the MultiProc name list

 

[C66xx_3] xdc.runtime.Error.raise: terminating execution

and I can't receiver producr message.

 

 

CCS: 5.0.3

 

BIOS:bios_mcsdk_02_00_04_16_setupwin32

 

MCSDK:pdk_C6670_1_0_0_16

 

Can you tell me why?

 

Thank You.

 

 

 

Best Best Regards.

 

 

 

  •  

    Your logs indicate that you are executing the code on Core 2 and Core 3,. This demo is specifically built to run on Core 0 and Core 1.

    You can refer the consumer/producer_srio.cfg file, "procNameList", to see how it is setup to run on CORE0 and Core1.

     

    Please follow the README that comes in the same directory as this test and hopefully you should be able to quickly get this running.

    Let us know how it goes.

  • Hi,

    I have run the program, but board1 and board2 can't sync, have below messagr:

    [C66xx_0] Local Core ("CORE0") starting

    [C66xx_0] Local Core ID: 0

    [C66xx_0] Global Core ID: 0

    [C66xx_0] 

    [C66xx_0] -----------------------Initializing---------------------------

    [C66xx_0] Core 0 : L1D cache size 4. L2 cache size 0.

    [C66xx_0] Core 0 : Memory region 0 inserted

    [C66xx_0] Port 0 did not initialize

    [C66xx_0] Port 1 did not initialize

    [C66xx_0] Port 2 is okay

    [C66xx_0] Port 3 did not initialize

    [C66xx_0] Core 0: SRIO Driver has been initialized

    [C66xx_1] Local Core ("CORE1") starting

    [C66xx_1] Local Core ID: 1

    [C66xx_1] Global Core ID: 1

    [C66xx_1] Core 1: Waiting for SRIO to be initialized.

    [C66xx_1] Core 1: SRIO can now be used.

    [C66xx_1] localQueueName=CORE1

    [C66xx_1] remoteQueueName=CORE3

    [C66xx_1] Core 1: tsk0 starting

    [C66xx_0] localQueueName=CORE0

    [C66xx_0] remoteQueueName=CORE2

    [C66xx_0] Core 0: tsk0 starting

    [C66xx_0] Global Core 0: Sending packets to an off-chip core.

    [C66xx_0] Global Core 0 attempting to open remote board Queue CORE2

    [C66xx_1] Global Core 1: Sending packets to an off-chip core.

    [C66xx_1] Global Core 1 attempting to open remote board Queue CORE3

    [C66xx_0] ti.sdo.ipc.heaps.HeapBufMP: line 619: E_noBlocksLeft: No more blocks left in buffer (handle = 0x845618, requested size = 112)

    [C66xx_0] ti.sdo.ipc.nsremote.NameServerMessageQ: line 227: E_outOfMemory: MessageQ_alloc faild from heap: 0

    [C66xx_0] ti.sdo.ipc.MessageQ: line 383: assertion failure: A_invalidMsg: Invalid message

    [C66xx_0] xdc.runtime.Error.raise: terminating execution

    [C66xx_1] ti.sdo.ipc.heaps.HeapBufMP: line 619: E_noBlocksLeft: No more blocks left in buffer (handle = 0x845618, requested size = 112)

    [C66xx_1] ti.sdo.ipc.nsremote.NameServerMessageQ: line 227: E_outOfMemory: MessageQ_alloc faild from heap: 0

    [C66xx_1] ti.sdo.ipc.MessageQ: line 383: assertion failure: A_invalidMsg: Invalid message

    [C66xx_1] xdc.runtime.Error.raise: terminating execution

     

     

    Thank You.

     

     

     

    Best Best Regards.

  • I currently do not have 2 EVMS to run this test. In the meanwhile, I shall loop in the experts for this "Out of memory" error.

  • Are you running the example project as is or did you modify it?  This is the producer side, did the consumer start up without memory errors?

    Also, how did you reboot the boards between attempting to run the examples?  Try a hard reset of the board before running the example projects.  Assuming you're using the c6670 Advantech EVM, you can do this by pressing the switch closest to the Ethernet port.

    Justin

  • I just noticed that "Port 2 is okay" for you.  Try rewiring your SRIO connections so that you use Port 0.  I think the application requires Port 0 be used.  If so, this may be why you're seeing the out of memory error.  IPC keeps allocating buffers to send open queue messages to the remote device over Port 0.  Since Port 0 is down the messages are dropped and not cleaned up correctly.  This would result in an out of memory error.

    Justin

  • Dear :

    I also run the example code ,but  one side of the DSP is C6670, and the other side is C6455  
    Whatever I run the Producer or the Consumer example , the four ports still can't initialize:
    1.Could you tell me how to solve this problem?
    2.Due to this example is based on message passing mode, did you have the direct IO type 
    example between Offchip communication? 
     Thanks a lot~
    [C66xx_0] Local Core ("CORE0") starting
    [C66xx_0] Local Core ID: 0
    [C66xx_0] Global Core ID: 2
    [C66xx_0]
    [C66xx_0] -----------------------Initializing---------------------------
    [C66xx_0] Core 2 : L1D cache size 4. L2 cache size 0.
    [C66xx_0] Core 2 : Memory region 0 inserted
    [C66xx_1] Local Core ("CORE1") starting
    [C66xx_1] Local Core ID: 1
    [C66xx_1] Global Core ID: 3
    [C66xx_1] Core 3: Waiting for SRIO to be initialized.
    [C66xx_0] Port 0 did not initialize
    [C66xx_0] Port 1 did not initialize
    [C66xx_0] Port 2 did not initialize
    [C66xx_0] Port 3 did not initialize
    [C66xx_0] Core 2: SRIO Driver has been initialized
    [C66xx_1] Core 3: SRIO can now be used.
    
    
    Best Regards,
    W.T.
  • Spann,

    1. I can't vouch for how the example will behave if you're attempting to run with something other than a c6670.  The producer/consumer example delivered with the c6670 PDK is meant to be executed on two c6670 platforms.  Likewise, the producer/consumer example delivered with the c6678 PDK is meant to be executed on two c6678 platforms.

    2. The IPC SRIO transport was implemented using the Type 11 message passing configuration.  The Direct I/O configuration of the SRIO LLD was not implemented.

    Justin

  • Dear Justin:

    Thanks for your reply, but I still have some questions:

    1.Do you know why  Port 0 can not initialize? And what settings may I try?
    [C66xx_0] Port 0 did not initialize
    
    
    2. The version of SRIO in C6474 is RapidIO 2.1.1, in C6670 is RapidIO 1.2 , 
    are they compatible and can communicate to each other?
    
    
    3. If I don't consider  the IPC SRIO transport, 
    but want to use Direct I/O mode to offchip communication, 
    I try to modify the SRIO_LoopbackDioIsrexample project-->device_srio_loopback.c --->
    CSL_SRIO_SetLoopbackMode(hSrio, 0) to CSL_SRIO_SetNormalMode(hSrio,0), 
    but the program can't run successfully like the following:
    Do you know what is wrong?

    [C66xx_0] Executing the SRIO DIO example on the DEVICE
    [C66xx_0] Debug(Core 0): System Initialization for CPPI & QMSS
    [C66xx_0] Debug(Core 0): Queue Manager and CPPI are initialized.
    [C66xx_0] Debug(Core 0): Host Region 0x827a80

    Best Regards,
    W.T.
  • HI,

    I have the same problems following:

    [C66xx_0] ti.sdo.ipc.MessageQ: line 383: assertion failure: A_invalidMsg: Invalid message
    [C66xx_0] xdc.runtime.Error.raise: terminating execution
    I want to QMSS with 8cores ,my chip is 6678 ,how did you resolve the problems of these?
    thanks,
    regards.