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.

SRIO, and response Msg Ftype13



Hi,

 

I have some doubts related to the SRIO and your examples:

1.- In the two SRIO examples found in the pdk_C6678_1_0_0_11 there is no use of the Response packet Ftype 13. Could you tell me, please, why you didn't use the response packet even when  it is required by the standard? ( I understand that SRIO requires response for some of the implemented FType in you examples).

2.- Where is possible to find an example of Doorbell use?

 

Thanks in advance.

Shmulik.

 

  • Shmulik,

     

    1)  Just to be clear, not all SRIO packet types require responses.  For example NWRITE and SWRITE have no responses.  The example may only use these types of packets, but you can easily change the packet type to NWRITE_R or NREAD, which will use response packets.  Not sure if I missed you point or not.  The other thing to mention is that responses are sent by the SRIO peripheral hardware automatically.  The CPU doesn't have to get involved at all, there is no way to create a type 13 packet using the LSU or TXU blocks.

     

    2)  Not sure if the doobell is included in the example or not, but you can easily use the LSU to send a doorbell in one of two ways.  You can simply create an outgoing doorbell, by writing the ftype, ttype, and doorbell info fields of the LSU registers, or you can have the LSU automatically send a doorbell after a data packet transmission by writing the doorbell info field and the int_req bit of the LSU.  It will then send the data packet followed by a doorbell packet.

    Regards,

    Travis

  • Travis,

    Please, could you answer the following questions related to C6678:

    1.-  How to see the feedback that the transfer has been performed without errors? If I don't have the possibility for seeing the response Ftype 13, should be a way to see    for each case that requires response that the data transfering has been performed.

    2. - Are there registers for seeing this information?

    3. - How to see it for the case of NWRITE_R or NREAD?

    4. - How to see for the case of message type (FType 11)?

    5.- In case of transmit error, the application must retransmit or the SRIO will perform it automatically?

    6.- In case that the SRIO will perform the retransmition automatically and not the application, couyld you tell me, please, how is defined retries quantity?

    Regards.

    Shmulik

  • Shmulik,

    1)  Please refer to http://focus.ti.com/lit/ug/sprugw1/sprugw1.pdf section 2.3.2, pg 2-29 and 2-30.  You can determine the transaction completion by looking at:  LCB and LTID in the LSU register 6 in conjunction with RIO_LSU_STAT_REG0-5 (offset 0DE8h - 0DFCh) will give you the completion code for your transaction.

    2) Yes listed above.

    3) Depends how you implement it, but you can poll these registers, or count interrupts.

    4) Any type 11 message that returns an error or if there was an error programming the TX descriptor that prevents the message from being sent, will be sent to a garbage queue.  There are various causes, just do a search for garbage in section 2.3.3.2 of the user's guide.

    5) Lets clarify on this one, are you talking physical layer errors like CRC, or are you talking about logical layer error completion codes in the LSU?  Physical layer errors are handled automatically by hardware and retransmitted, logical errors will have to be resubmitted by the software.

    6) There are port status registers that indicate a physical layer Retry occurred, but not a running count.

     

    Regards,

    Travis