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.

6474 - 6455 SRIO

Other Parts Discussed in Thread: TMS320C6457

I have a problem sending packet from 6474 to 6455 using SRIO. I wrote a simple program which is running on 6474 and sending packet to 6455. However all the time i am able to send only 8 packet. After 8. packet no one will be transmitted. 

In the scenario i also look at the err registers and i can see that some logical err captured.

By the way, in my board I also have another 6474. I mean that i have 2 6474 and 1 6455. With this initialization i can manage to send packet using SRIO between 6474 DSP. However as a said i couldnt do it between 6455-6474. I use the same code in order to initialize SRIO. 

I look at the migration guide. But it said the only difference is the number of SRIO port. I am still trying to understand the reason. If some one have an idea, pls share. 

Thanks

Tugrul

  • Tugrul,

    It is very important to use the correct initialization procedure for both devices.  The initialization steps are similar between the C6474 and C6455, but the settings are not the same.  The biggest differences off the top of my head are: 1) ENFTP setting on the SerDes TXCFG register.  This should be set to 1 for C6455 and set to 0 for the C6474.  2) The deviceid_reg1 (0x0080 offset) needs to be written for C6455, but is reserved for C6474.  Look at the CSL examples or the DIOLib for initialization for these devices.

    https://gforge.ti.com/gf/project/sriodirectiolib/frs/

    Also search other posts about error recovery or ackid alignment.  I'm pretty sure what is happening here is that you are using all your 8 credits for TX packets, but the physical layer is in a error state and not able to send any out to the link.  Make sure you check port_ok and both input and output error stopped states are clear before trying to send packets. 

     

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/p/11735/45934.aspx#45934

     

    Regards,

    Travis

  • Hi.
    I would like to know the setting values for Transmit Configuration Register (TX_CFG) of C6457.
    There are irreconcilable differences between (MDIO)User's Guide(SPRUGK9) and CSL; csl_sgmii.c.

     (MDIO)User's Guide(SPRUGK9) http://www.ti.com/lit/ug/sprugk9/sprugk9.pdf

    Could I have any infomation for following two points.

    1. ENFTP[16] must be "0" same as C6474 according to "csl_sgmii.c"?

    2. DE[15-12] must be "0000" according to "csl_sgmii.c", or "1000" expected own value according to the User guide described?

    Regards,
    Kanae

  • Hi Kanae,

     

    1) ENFTP = 1 for C6455 and C6457, ENFTP = 0 for C6472 and C6474

    2) Transmit De-emphasis is system/trace dependent, but we usually leave this to 0b0000 in the boot ROM when booting via SRIO.

     

    Regards,

    Travis

     

  • Hi Travis,

    Thank you for your quick reply.
    I would like to know one more thing about "DE" setting.

    I checked "TMS320TCI6484 and TMS320C6457 SerDes Implementation Guidelines"
    Page-12, so it describes some recommended settings for transmitter channels.
    Your recommend "DE" setting is "0000", however the value is "0 dB — Not Recommended".

    "TMS320TCI6484 and TMS320C6457 SerDes Implementation Guidelines"
    http://www.ti.com/lit/an/spraay1a/spraay1a.pdf

    Cuold I confirm the setting when I need to set as "DE=1000" ; –4.16 dB — Use for lines up to 10 inches (25 cm),
    I can change CSL program to be "DE=1000" or I should keep "DE=0000" as CSL default setting?

    Regards,
    Kanae

  • Kanae,

     

    The SerDes Implementation Guidelines should probably be followed.  They contain the latest recommendations.

     

    Regards,

    Travis

  • Hi Travis,
    Thank you for your suggestion.
    So, "csl_sgmii.c" should be change to be our expected value following the guidelines.
    I really appreciate your support.

    Regards,
    Kanae