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.

C6678 SGMII口自适应一直未解决个问题



我的网口设计与开发板的设计一样,采用的是88E1111芯片,C6678的端口188E1111相连,与DEMO设计的唯一一点不同是DEMO用的SGMII参考时钟为312.5MHZ,我这里用的时钟为156.25MHz

1)当我把我的板子设置为EMAC引导模式,然后用网口1PC相连,PC机能够收到DSP发送上来的BOOTP包,然后我将应用程序从该网口发送下去,能够运行。这个过程能够实现是不是说明硬件设计没有问题?88E1111的初始化也没有问题?

2)当我在应用程序对该SGMII口进行初始化时,一直不能通过。我对该端口的初始化过参数如下,与开发板提供的一致,参数如下: 

#define  SGMII_SERDES_CFGPLL_VAL 0x00000041 

#define  SGMII_SERDES_CFGRX_VAL 0x00700621 

#define  SGMII_SERDES_CFGTX_VAL 0x000108A1 

但是程序会一直执行下面的死循环:

        do

        {

            CSL_SGMII_getStatus(macPortNum, &sgmiiStatus);

            if (sgmiiStatus.bIsAutoNegError != 0)

                return; /* This is an error condition */

        } while (sgmiiStatus.bIsAutoNegComplete != 1);

说明SGMII口的自适应一直不通过??

(3) 当我根据E2E论坛的提示,因为时钟不同,修改配置,参数如下

#define SGMII_SERDES_CFGPLL_VAL 0x00000081 (由原来的0x00000041修改)

#define SGMII_SERDES_CFGRX_VAL 0x00700621 

#define SGMII_SERDES_CFGTX_VAL 0x000108A1 

等程序运行到获取SGMII的状态时,就会出现如下提示:

这是什么原因呢?

4)是不是我没有配置正确SGMII SERDES,我该如何根据不同的时钟进行修改配置的值?