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.

Help! C6455 SRIO remains Output Error-stopped even write 0x40FC8000

I have followed the error recover sequence, but it still does not work.

On my board, two c6455s(A and B) are connected by a switch(tsi578) in 4x mode. In the beginning, c6455-A can send data to c6455-B through tsi578 without any error. But after a POR reset of the c6455-A, data can no longer be sent any more. At the time, the "Output Error-stopped" bit in the SP0_ERR_STAT register is '1', which means the c6455-A is in Output Error-stopped state. So I followed the Error Recovery sequence stated in spru976e ("TMS320C645x DSP Serial RapidIO (SRIO) User's Guide"), writing 0x40FC8000 to SP0_CS_TX register of c6455-A to initiate the recovery sequence. But the "Output Error-stopped" bit remains set. Besides, the OUTPUT_PKT_DROP bit and the PORT_WRITE_PND bit in the SP0_ERR_STAT are also setted, and every time I wrote '1's to clear them, they went back to '1's immediately. I guess the OUTPUT_PKT_DROP bit means the port had dropped some packets, but it should be impossible because the data sending process has been cancelld, where are the dropped packets come from?

  Here are the details:

1, system power up, c6455s,tsi578 get out of reset and begin to work;

2, c6455-A begin to send NWRITE packets to c6455-B through tsi578, successfully, no error at all. c6455-B does not send any data.

3, reset c6455-A by POR, but leave c6455-B, tsi578 untouched;

4, c6455-A get out of reset and begin to work, and this time it is instructed not to send any date packet;

5, the value of c6455-A's SP0_ERR_STAT reg become 0x00000002, indicate the link is up, the SP_ERR_STAT of tsi578 indicate it is in "Input Error_stopped" state;

6, here, following the instructed recover sequence, write 0x40FC8000 to SP0_CS_TX register of c6455-A(which is instructed in the spru976e User's Guide);

7, the value of c6455-A's SP0_ERR_STAT reg now begin to indicate "Output Error_stopped", but the SP_ERR_STAT of tsi578 indicate the tsi578 isOK now without      "Input Error_stopped" nor "Output Error_stopped";

8, the value of c6455-A's SP0_ERR_STAT reg remains to indicate "Output Error_stopped", it seems it will hold it till the end of the word! No data can be sent.

Is there someone can tell me what wrong? How can I get the C6455 out of "Output Error_stopped" and get the link back to work?

  • Meng,

     

    There are many factors to consider when you power-down a board in this scenario.  The cleanest way to do this type of thing is make sure that the traffic to C6455-A is also turned off while you reset it.  You should be able to disable the switch port connected to the C6455-A so that it kills packets that are targetted to the C6455-A.  A couple other things to consider, have you disabled the C6455-A from sending port-writes?  Have you disabled the error checking that can cause automatic generation of port-writes by hardware.  Always disable this and error detection in the physical layer and logical/transport layer err detect registers, until the port is up and initialized correctly.  During initialization, there will be link errors occurring until the link partners are synced/aligned, these errors can cause outbound port-writes to be sent, and since the ACKIDs are not aligned before the port-write is sent, then the switch in this case will respond with a PNA control symbol, causing the C6455-A to go into "Output_error_stopped" state.  You can either re-align the ackids manually, or reset the switch port connected to the C6455-A so that both partners are starting at ACKIDs=0.  The key is to make sure no packets are sent (including port-writes) before you are ACKID aligned.

    Make sure bit 27 of SP_IP_MODE register = 1

    Make sure ERR_EN register is 0x00000000

    Make sure SP(n)_RATE_EN registers are 0x00000000

    Regards,

    Travis

  • Hi,Travis,thanks for your valuable suggestion.

    Regards.

    Cheng Meng