Hi ,
I'm using SRIO between a C6474 processor and an IDT switch. It works quite well. However I notice a behaviour that I can't explain when I use the CCS5 debugger through a XDS560v2 STM Jtag Pod.
The experiment described next has been configured to verify the flow control mechanism.
1) The start situation is the case in which the C6474 is writing continuously the same DirectIO message (size: 264 bytes) toward an endpoint non connected to the switch. After several writes (that fill intermediate buffers), the switch sends retry messages to the C6474. The completion status read in the LSU is then CSL_SRIO_UNAVAILABLE_OUTBOUND_CR. Counters have been implemented in the code to verify that this is the only status returned by the LSU after the first write. This situation is normal.
2) Using the same configuration and the same code as in 1), after the program has run several seconds, I just stop it with the debug view of CCC5. The last LSU status that has been read is CSL_SRIO_UNAVAILABLE_OUTBOUND_CR. But when the program is continued, the LSU status, after the next write, is CSL_SRIO_TRANS_NO_ERR. There is no reason for this status because no endpoints receives the messages: the status should have been CSL_SRIO_UNAVAILABLE_OUTBOUND_CR.
The FREE bit in the PCR register is set, meaning that the SRIO peripheral ignores the emulation suspend signal.
I tried several debug configurations which led to the same situation.
This is annoying because the debug behaviour is different than the operational one. Has somebody an explanation, and a solution to solve this problem?
Thanks
JP