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.

Rapid IO (SRIO) multi segmented message passing

Other Parts Discussed in Thread: TMS320C6455

I am using SRIO message mode to pass data between 2 TMS320C6455 chips.
The size of the data is consistent and can be as large as 4096 bytes depending on the application configuration.
I am using a dedicated queue (2) to do the segmentation and reassembly by the peripheral (multi-segment mode).
For a 768 byte message I have the following configuration for the transmit descriptors:
   offset 2:
   Mailbox 2
   32 Double-word payload (ssize)
   port 0
   priority 2
   destination address (x1113)
   16bit device IDs
      
   offset 3:
   Set SOP, EOP, Ownership bits
   Retry count 0
   message size 96 double words
   
This seems to work OK but no data is ever transmitted.
When I set the message_length to 0 (512 double words) the data is transmitted and received completely and correct.
The documentation in spru976e indicates this field needs to be set:

"Message Length: Written by the DSP core to specify the number of double-words to transmit.
Message payloads are limited to a maximum size of 512 double-words (4096 bytes)."
 
There also seems to be something similar amiss with the receive descriptor.
The documentation states for its message_length fields:

"Message Length: Initially written by the DSP core to specify the maximum number of double-words
the buffer can receive. Updated by the peripheral (after receiving a message) to indicate the actual
number of double-words in the entire message. Message payloads are limited to a maximum size
of 512 double-words (4096 bytes)."

When this field is read, it is always 0.

My questions are:
Why is the message_length field not working as documented for both transmit and receive?
Am I really just sending/receiving 4096 bytes instead?
Do these queues need torn down?  - This does not seem possible for this application since data is sent continuously every 125 microseconds.