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.

10G serdes init is stuck at CSL_SerdesWaitForSigDet

Hello Eric,

we are using same code of serdes_diag_test_init() with phy type as XGE, which is present in C:\ti\pdk_keystone2\packages\ti\diag\serdes_diag\test\src\serdes_diag_test_main.c.

Now SERDES_DIAG_TEST_OPERATING_MODE  is set as diagnostic mode as below

#define SERDES_DIAG_TEST_OPERATING_MODE CSL_SERDES_DIAGNOSTIC_MODE

I believe for fully functional of 10G serdes we need to set  SERDES_DIAG_TEST_OPERATING_MODE=CSL_SERDES_FUNCTIONAL_MODE

 

Now if I set #define SERDES_DIAG_TEST_OPERATING_MODE   CSL_SERDES_FUNCTIONAL_MODE

it is stuck at  CSL_SerdesWaitForSigDet() please see the screen shot below.

what is the difference between Diagnostic mode and functional mode????

 

we need to set it to functional mode for sending packets thorugh serdes?

Regards

Manjunath


 

  • I have assigned this to our team and they will get back to you shortly. Thank you for your patience.
  • Have you tried this example with Diagnostic mode ?
    C:\ti\pdk_k2hk_4_0_1\packages\MyExampleProjects\serdes_diag_ber_K2HC66ExampleProject
  • Hello stalin,

    yes  I am using the same example which you are referring to

    C:\ti\pdk_k2hk_4_0_1\packages\MyExampleProjects\serdes_diag_ber_K2HC66ExampleProject

    my doubt is should I use Diagnostic mode or functional mode?

    if I use  Diagnostic mode .serder does not get stuck.

    we want to know the difference between Diagnostic mode and functional mode

    Regards

    Manjunath

  • I'm also getting the same behavior when I used the FUNCTIONAL_MODE.
    Default, all the peripherals are using DIAGNOSTIC mode but not sure why.
    Let me ask help from internal team.
  • Please clarify your test environment, are you running symmetric code on two K2H/K EVMs with XGE ports connected, or you just run code on one EVM and with the XGE port floating? Or one EVM with XGE port connected to a PC or XGE switch?

    The difference between FUNCTIONAL and DIAGNOSTIC mode can be seen in csl_serdes.h file: if(serdes_lane_enable_params->operating_mode == CSL_SERDES_FUNCTIONAL_MODE)

    If you are doing serdes_lane_enable_params->forceattboost == CSL_SERDES_FORCE_ATT_BOOST_DISABLED, which means you are expecting a signal coming in for your adapation. If you don't have Rx signal, then the code stuck. If you have two K2H/K EVMs connected together (or connected to XGE switch or PC with XGE port), the code should pass.

    Regards, Eric
  • Hello Eric,

    Thanks for your Detailed explanation.

    we are actually testing with "run code on one EVM and with the XGE port floating" so it is expecting signal from the other side .
    we will check by connecting XGE port to PC/other EVM.

    I have one more doubt regarding the PCS-R register, in the xaui userguide PCSR is mentioned as TBD , there is no detais about the PCS-R registers , I check in Linux code as well I don't see PCSR register configuration anywhere,

    FYI-we are porting Xaui drivers from Linux space to Ti-RTOS , could you please clarify if we need to configure PCS-R module or not??

    Regards
    Manjunath
  • I looked at the Linux driver code, there is no configuration for PCS-R needed.

    Regards, Eric