Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

timeout on sending SRIO doorbell.

$
0
0

I have two C6678 DSPs with SRIO connected by a CPS-1848 switch from IDT.
This is standard, working hardware from a board supplier.

DSP-1 is in a loop waiting for a doorbell from DSP2 by polling the
      DOORBELL INT ICSR and then acknowledging it. When it receives
      this doorbell it sends one back to DSP2 and waits again.
DSP-2 is doing the inverse: sending a doorbell to DSP-1 and waiting
      for one coming back.
      
DSP-1 sends the doorbell by writing the following values to LSU[0]:
      R1=0, R2=0, R3=0, R4=0x30010440 R5=000000A0

DSP-2 sends the doorbell by writing the following values to LSU[0]:
      R1=0, R2=0, R3=0, R4=0x30020440 R5=000100A0

On both DSPs, the LSU is properly locked each time before writing
the registers.

This runs for an indeterminate number of loops (varying from 2 to >50)
but then everything stops and I get solid errors when trying to
send doorbells. The relevant field from LSU_STAT shows a completion
code of usually 1 (Transaction Timeout) but occasionally 6
("Retry" response).

After these errors, I have tried flushing the LSU. This seems to work
once or twice, but then the error becomes permanent.
 
There is only ever one outstanding LSU transaction at a time on each DSP.
There are no interrupts involved.
Interrupt pacing is disabled.

This is a cut-down version of a larger example that is also doing data
transfers across SRIO. This works for a random number of transfers (from
five to several thousand) before getting stuck in the same way as
the doorbell example.

Does anyone have a suggestion as to what might be going on and why?


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>