SRIO Message Passing on C6455


We just starting out with the C6455 EVM.

I've got SRIO Direct I/O working because there is an example. I've extended the Direct I/O examples to send DOORBELLs.

I've just started looking at Message Passing and was wondering if anyone could supply some example code on how to transmit and receive messages. I've copied the rather brief example from spru976.pdf but I think there's still plenty that I'm missing!



9 Replies

  • Guru 83140 points

    Attached is which has an example for using SRIO through the DSP/BIOS MSGQ tool. You will need to have the DDK installed and the latest version of BIOS would be good. I am using BIOS 5.31.09.

    The steps to run this example are:

    1. Unzip this into your CCS 3.3 MyProjects folder as a folder name EVM6455_SRIO_MSGQ. There should be one folder underneath there called rapidiomqt.
    2. Step down through the folder tree to find the project file rapidiotest_64P.pjt in C:\CCStudio_v3.3\MyProjects\EVM6455_SRIO_MSGQ\rapidiomqt\packages\ti\bios\drivers\examples\rapidiomqt\evm6455 .
    3. Open rapidiotest_64P.pjt in a text editor (notepad or any ASCII editor, not Word) and change the path to your CSL for the 6455. Do this on lines 26, 29, 38, 41 where I have it at C:\TTO\etc. Save and close the .pjt file.
    4. Make sure the BIOS_INSTALL_DIR and DDK_INSTALL_DIR environment variables are set correctly. I am slightly concerned that getting the right DDK include files could be an issue since I have not checked this out except on my laptop. I did put the rapidiomqt library in the project folder for your convenience, but I'm not sure about include files.
    5. Using CC_Setup, configure CCS for the "C6455 DSK with Mezzanine", save and exit, starting CCS.
    6. In the Parallel Debug Manager (PDM), double-click on cpu_0.
    7. In the CCS window, make sure you are connected to the DSP (Debug->Connect).
    8. Open the rapidiotest_64P.pjt project file. Build and load, open the Message Log, right-click in the Log window and select "Automatically scroll to end of buffer".
    9. Repeat 6, 7, and 8 for cpu_1.
    10. Start both processors running and arrange the windows so you can see both Log windows.
    11. The message traffic will be logged.
    12. There are some comments in ..\rapidIOTest.c that explain some of what is going on.

    Hope this helps.

    Search for answers, Ask a question, click  Resolved  when complete, Help others, Learn more.
  • In reply to RandyP:

    Thanks for that!

    I had seen the RapidIO MQT before but you prompted me to download it and have a look at the source.

    I've also just realised that I'm looking at spru976.pdf rather than spru976b.pdf and I can see that there are a great many changes in revision b!

    I'm not running yet, when I 'Start Message Passing' I get 'Descriptor Programming error', but armed with these new sources of info I'll have another crack at sorting it out!



  • In reply to MattB:

    I got my own simple message passing test program working. I use it to pass a message from the Mezz to the DSK. I've attached it in case anyone else is interested but remember I am not your SRIO guru. :-}

    Having done this I now understand the RapidIO MQT better and wil probably use the MQT anyway!



  • In reply to MattB:

    I have been looking at the MQT and wonder how to support more than 2 DSPs in the system.  It appears that a different instance needs to be made for each DSP in the system.  Has anyone else looked at his can came to the same conclusion?


  • In reply to EJ:

    I have been looking at the MQT and wonder how to support more than 2 DSPs in the system. 

    Multiple processors is described in the Message Queue section of the DSP/BIOS User's Guide.

    The example contains #define NUMPROCESSORS 2.

    Has anyone else looked at this?

    I haven't. I'm having enough trouble getting SRIO (Direct I/O and Message Passing) to work on the EVM6455! :-(

    Sorry I can't be more help!


  • In reply to MattB:

    HI Matt


    im working on a project based on Srio. i have to implement message passing to study it's performence.

    but iv found some difficulties .first i don't  have any idea concerning how can i use the msgq .i tried to  open the project given in the forum

    but it dosent work .there is something missing.


    please i need help.

  • In reply to Mugiwara:

    but iv found some difficulties .first i don't  have any idea concerning how can i use the msgq .i tried to  open the project given in the forum

    but it dosent work .there is something missing.

    It's difficult to know what to say! This thread contains 2 examples of SRIO Messaging projects; they both worked for me, I think you need to say what errors you are getting.

    I've got an EVM6455 which made it possible to follow the example.

    But more generally I can only suggest that you keep trying to sort the problems out yourself! SRIO is pretty complicated and took me several weeks to get anywhere. I've read the description of MSGQ in the DSP/BIOS manuals many times!

    Having spent several weeks working to SRIO Messaging working for me I decided I didn't need it for our application and haven't looked at for several weeks (our application will be implemented entirely with SRIO Direct I/O).




  • In reply to MattB:

      Tanks Matt for the informations.


    im working on evm 6474 , i think i have to do some changes. all i want to now is the rate of data (data/time).

    i think message passing is not useful for applications with need high rate transfert. the directIO offers two kind of methodes to communicate

    .posted and no posted .


    tanks again , i try to go on .



  • In reply to MattB:

    The version you share is not complete, several files are missing ,such as SrioMessageTxcfg.cmd

    can you share us a full version ,including the inc file and lib file ?

    thank you very much