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.

SRIO message passing C6474 problem

Other Parts Discussed in Thread: TMS320C6474

Hello,

 We are 2 students and are currently evaluating Serial Rapid IO on an evaluation board (Spectrum Digital EVM) that features two TMS320C6474 DSPs. We are using the latest Code Composer version 4 to program the DSPs and read the registers. We are using Message Passing protocol to try sending a single message of 256B.

We use a buffer of 256 Byte in the L2 memory and a head pointer in the “RapidIO Descriptor Memory” (02E0 0000)

However, when we set the “QUEUE_TXDMA_HDP” with our Head pointer the RapidIO port doesn't set the ownership bit to 0x0.

It assumes the CPU doesn't reclaim the buffers.

We would like to know howto setup the SRIO message passing.

 

Cheers

 3857.workspace.zip

  • The csl example for SRIO will help you understand the setting you should make.

     

    Thanks,

    Arun.

  • Once you write the HDP, the SRIO peripheral should send the message.  Once it is sent, the descriptor ownership bit will be set to 0 by the peripheral, indicating that the descriptor now belongs to the host and can be reclaimed by software.  If you are writing a 1 in the ownership field before writing the HDP, and you never see the ownership field go to 0, then it means the message has not been sent.  Check out the following wiki page where there is a simple SRIO message passing example for the C6474 EVM.

     

    http://processors.wiki.ti.com/index.php/C6474#Related_SW_library_information_on_Wiki

     

    Regards,

    Travis

     

  • Tscheck thanks for you response, the wiki message passing example explains a lot more.

    But when i want to make my own message i need to use all the 16 descriptors. Is this necessary or can i also use one descriptor?

     

    Regards,

    Jordan

  • Jordon,

     

    That example is probably setup to send 16 messages, thus the 16 descriptors.  Each transmit message (and receive message for that matter) uses only one descriptor per message.  Each message can be 1 to 16 segments long.  Use as many descriptors as you need to send to the same corresponding amount of messages.

     

    Regards,

    Travis