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.

C6657网络测试时一直在emac_open()循环



TI工程师你们好:

    我在自己的板子(phy芯片是88E1111)上测试网络程序时,使用的例程是helloworld,测试时,在打印下面的信息后程序就死循环了,暂停程序后看到程序处于emac_open()这个函数。

[C66xx_0] emac_init: core 0, port 0, total number of channels/MAC addresses: 1/1

[C66xx_0] MAC addresses configured for channel 0:

[C66xx_0] 08-00-28-32-96-AC

[C66xx_0] SGMII reset successful........

[C66xx_0] SGMII config successful........

请问下这个情况是由于phy芯片没有配置正确造成的还是其他一些原因,

项目比较急,麻烦各位帮帮忙,谢谢了!!!

  • 应该是SGMII link failure导致,首先确认一下Serdes及SGMII工作模式的配置,可以先用PDK中的loopback例程测试一下loopback mode是否成功。

  • Hi, 您好!

    您的测试环境是用您的板子与PC用网线连接吗?   如果是的话可以参考下面我们的参数设置,对比一下您的参数配置是否跟下面参数一致

     sgmii_config.loopbackEn = 0;
     sgmii_config.masterEn = 0;
     sgmii_config.modeOfOperation = SGMII_MODE_OF_OPERATION_WITH_AN;

     sgmii_config.txConfig = 0x108A1;
     sgmii_config.rxConfig = 0x00700611;
     sgmii_config.auxConfig = 0x51;

    在上述参数设置下,执行下面代码初始化SGMII (实际执行的是最后一个else分支)

    {
      CSL_FINS(SGMII_REGS->SOFT_RESET, SGMII_SOFT_RESET_RT_SOFT_RESET, 1);
      if((config->masterEn) && (config->modeOfOperation == SGMII_MODE_OF_OPERATION_WITH_AN)) {
       CSL_FINS(SGMII_REGS->CONTROL, SGMII_CONTROL_MASTER, 1);
       CSL_FINS(SGMII_REGS->CONTROL, SGMII_CONTROL_MR_AN_ENABLE, 1);
       SGMII_REGS->MR_ADV_ABILITY = 0x01;
      } else if((config->masterEn) && (config->modeOfOperation == SGMII_MODE_OF_OPERATION_WITHOUT_AN)) {
       CSL_FINS(SGMII_REGS->CONTROL, SGMII_CONTROL_MASTER, 1);
       CSL_FINS(SGMII_REGS->CONTROL, SGMII_CONTROL_MR_AN_ENABLE, 0);
       SGMII_REGS->MR_ADV_ABILITY = 0x9801;
      } else {
       CSL_FINS(SGMII_REGS->CONTROL, SGMII_CONTROL_MASTER, 0);
       CSL_FINS(SGMII_REGS->CONTROL, SGMII_CONTROL_MR_AN_ENABLE, 1);
       SGMII_REGS->MR_ADV_ABILITY = 0x1;
      }
      CSL_FINS(SGMII_REGS->SOFT_RESET, SGMII_SOFT_RESET_RT_SOFT_RESET, 0);

     SGMII_REGS->TX_CFG = config->txConfig;
     SGMII_REGS->RX_CFG = config->rxConfig;
     SGMII_REGS->AUX_CFG = config->auxConfig;

    谢谢

     

  • 谢谢了,问题已经解决了,修改了SGMII_REGS->MR_ADV_ABILITY = 0x9801;

                                                                 SGMII_REGS->CONTROL = 0X20;后就可以了

  • 您好,

    请问该例程是在哪个路径下

    谢谢!

  • Hi, 您好!

    下面的链接中,有我们开发的例程,供参考 :

    http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx

    谢谢!