Hi,
I regularly get an error status after attempting an NWRITE.
I've found that spacing out the NWRITEs helps but placing an arbitrary delay of a few hundred cycles between NWRITEs doesn't feel like a very good long term solution!
Here's what I've tried to do:
- Prepare 8 KB of data
- Set LSU registers with appropriate pointers
- Set LSU_REG5 to start NWRITE
- Wait for LSU_REG6 BSY to go clear (I've tried to protect against reading LSU_REG6 so quickly it doesn't have to go busy)
- Repeat steps 3 and 4
Is it normal to get "outbound credit unavailable"?
Is it normal to have to space out the LSU requests?
I'm in 1x/1x mode and 1.25 Gbps. I haven't explicitly set PER_SET_CNTL, the transmit thresholds are 1, 2 and 3.
I guess that LSU_REG6 is telling me that the LSU has passed the packets on the UDI buffers but not that they have been sent. Then when I try to start another transaction there aren't any buffers left and I get an error.
I tried raising the priority from 0 to 2 but it didn't make any difference. Would it help to increase the "transmit credit threshold"? I'm not expecting to want to send packets with different priorities (all my data has the same importance).
Is there something other than LSU_REG6 BSY that I should check before trying to do NWRITEs?
Thanks,
Matt