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.

TMS320C6678: 网口

Part Number: TMS320C6678


你好,在用6678的网口GE程序时,gpSGMII_regs[i]->STATUS_REG的值最后一位总为0,致使代码总停在第四行代码的循环中,两个SGMII端口都是这样。板子是自己做的,请问可能是出现了什么问题。几行代码所在的函数是/*initialize ethernet ports*/
void KeyStone_Ethernet_Ports_Init(KeyStone_GE_Config * ge_cfg)

代码停留处:

/*2 Poll the LINK bit in the SGMII_STATUS register to determine when the link is up.*/
while(0==(gpSGMII_regs[i]->STATUS_REG&CSL_CPSGMII_STATUS_REG_LOCK_MASK));
if(ETHERNET_MAC_LOOPBACK != ge_cfg->loopback_mode)
while(0==(gpSGMII_regs[i]->STATUS_REG&CSL_CPSGMII_STATUS_REG_LINK_MASK));

  • 感觉是这几个复位有问题

    /* Reset the port before configuring it */
    gpSGMII_regs[i]->SOFT_RESET_REG = CSL_CPSGMII_SOFT_RESET_REG_SOFT_RESET_MASK;

    /* Reset MAC port*/
    CSL_CPGMAC_SL_resetMac (i);
    //wati for EMAC reset complete
    while (CSL_CPGMAC_SL_isMACResetDone (i) != TRUE);

  • 请问您的板子和EVM板的硬件有什么不一样?使用同样的PHY吗?请看一下KeyStone_1_GE_STK_User's_Guide文档里的4.4 Migrate the test to custom board

  • 参考时钟不一样,自己的板子是156.25的,但是cpu主频和DDR pll和PASS pll和评估版是一致的,还有就是ddr3 通道的leveling 不一样,其他的都一样。请问评估版用的是什么phy 芯片

  • /*2 Poll the LINK bit in the SGMII_STATUS register to determine when the link is up.*/
    while(0==(gpSGMII_regs[i]->STATUS_REG&CSL_CPSGMII_STATUS_REG_LOCK_MASK));
    if(ETHERNET_MAC_LOOPBACK != ge_cfg->loopback_mode)
    while(0==(gpSGMII_regs[i]->STATUS_REG&CSL_CPSGMII_STATUS_REG_LINK_MASK));

    请问这最后一行是什么意思,总是陷在这个循环里