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.

C6678 SRIO dead lock

Hi everyone,

    I use C6678 to communicate with FPGA via SRIO.  Mostly the srio works fine, but sometimes it seems dead locked after working for a while. FPGA use SWRITE(priority 0) and DOORBELL(priority 2) to send data to DSP,  and DSP send data to FPGA via SWRITE(priority 2). Every time the problem happens, both the sending and recieving seems dead locked together. I notified Advisory 12  in the silicon errate that there is a possibility that the local SRIO module will lock up and stop processing incoming packetsWhen a high volume of SRIO packets with varying priorities arrive at a device and are being forwarded to another device. Is there a way to confirm that the Advisory 12 could be the cause of my problem?

Thanks. 

  • Hi,

    Have you connected multiple devices via SRIO interface on your setup or DSP and FPGA only connected? Please take a look at Advisory 1 in the silicon errata document for SRIO Deadlock Issue.
    Limit the message size to single segment messages to easily recover from outbound credit errors and to avoid deadlock conditions.
    1. This will reduce the redundant data sent on the wire due to errors because here each message is just a packet.
    2. No unsolicited responses
    3. No hanging RXU receive queues until timeout or unwanted Retry messages
    4. With single segment messages, you will never get a Retry (back-to-back messages to the same RX queue is ok)
    5. With single segment messages, there will never be a scenario with 3 DSPs which will result in deadlock condition

    Thanks,
  • Hi Ganapathi Dhandapani ,
    I finally fix my problem, it has something to do with the application program.
    Thanks a lot for your reply.Huang
  • Thanks for your update.