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: 6678网口SGMII1 无法link up的问题

Part Number: TMS320C6678
Other Parts Discussed in Thread: CDCM6208

1,用NDK测试

测试环境:phy芯片是88E1111,dsp的SGMII 1 与phy链接,时钟250MHz。

软件上,serdes的时钟配置为0x00000051;这个也没问题。

结果:网口初始化会卡在CSL_SGMII_setAdvAbility (macPortNum, &sgmiiCfg);函数中的最后一步,一直不往下运行。现在测量PHY的输入时钟都有,PHY复位时间也做了延长,都没效果。

if (macPortNum == 1) {

        /* Hold the port in soft reset and set up

         * the SGMII control register:

         *      (1) Disable Master Mode

         *      (2) Enable Auto-negotiation

         */

        CSL_SGMII_startRxTxSoftReset (macPortNum);

        CSL_SGMII_disableMasterMode (macPortNum);

        CSL_SGMII_enableAutoNegotiation (macPortNum);

        CSL_SGMII_endRxTxSoftReset (macPortNum);

 

        /* Setup the Advertised Ability register for this port:

         *      (1) Enable Full duplex mode

         *      (2) Enable Auto Negotiation

         *      (3) Enable the Link

         */

        sgmiiCfg.linkSpeed      =   CSL_SGMII_1000_MBPS;

        sgmiiCfg.duplexMode     =   CSL_SGMII_FULL_DUPLEX;

        CSL_SGMII_setAdvAbility (macPortNum, &sgmiiCfg);

 

        do

        {

            CSL_SGMII_getStatus(macPortNum, &sgmiiStatus);

        } while (sgmiiStatus.bIsLinkUp != 1);

 

        /* Wait for SGMII Autonegotiation to complete without error */

        do

        {

            CSL_SGMII_getStatus(macPortNum, &sgmiiStatus);

            if (sgmiiStatus.bIsAutoNegError != 0)

                return; /* This is an error condition */

        } while (sgmiiStatus.bIsAutoNegComplete != 1);

    }

2,GE测试loopback

SERDES 内部loopback测试。

会打印出;

Disable power domain 2 timeout!

enable power domain 2 timeout

external exception happened. MEXPFLAG[3] = 0X84000000.

Event 122:DMC_CMPA CPU ............................

等一系列log。

这些是什么原因造成的呢?

该怎么解决?