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.

K1例程中GE以太网初始化MDIO问题

将例程做了如下修改:修改DDR3初始化,主频配成1G时钟,Serdes的参考时钟为修改为250M。

分别测试了GE_TEST_EMAC_LOOPBACK模式、GE_TEST_SGMII_LOOPBACK模式、GE_TEST_SERDES_LOOPBACK模式都能通过。而且打印结果信息。测试时其他的配置都相同。

配置如下:Ethernet_Mode ethernet_mode = ETHERNET_AUTO_NEGOTIAT_MASTER;

GE_Port_Connection port_connect[GE_NUM_ETHERNET_PORT]=
{

GE_PORT_CABLE_CONNECT ,//SGMII port 0     我们的板卡用的是这个端口
GE_PORT_NOT_USED//SGMII port 1

};

测试GE_TEST_DSP0_TO_DSP1时不能通过初始化。

发现MDIO初始化后的寄存器都是0 。下面是MDIO的初始化程序。

(1)在6678评估板上运行的MDIO寄存器结果:

(2)在我们自己的板卡上运行的MDIO寄存器结果:

(1)对于上面的现象可能是什么原因导致的???硬件问题或是软件问题最好能具体点。。

(2)如何在程序中修改PHY芯片的PHY地址???例程中评估板的PHY地址是0x1如果想修改为0x7,在程序中该怎么修改???

(3)在评估板上运行DSP和PC之间的通信程序是可以的。但是在我的板卡上就出现如下的问题:

我看了gpSGMII_regs[i]->STATUS_REG=0x30,

(1)我现在测试的板卡的PHY芯片的物理地址是7。出现上面的原因是不是因为修改了PHY芯片地址的原因??????

(2)程序卡死在这里是不是因为MDIO没有初始化成功导致的?????

  • 1)我记得PHY的地址是由PHY的几个PIN脚状态决定的,您看看你设计选用的PHY 是哪几个PIN脚决定PHY地址,然后通过MDIO接口去访问这个地址就可以了

    2)驱动程序中和SGMII PORT相关的宏都检查一遍

  • 能说的具体点吗?原来的K1例程中有这块相应的代码吗?我想在原来的基础上修改。

  • 将例程做了如下修改:修改DDR3初始化,主频配成1G时钟,Serdes的参考时钟为修改为250M。

    分别测试了GE_TEST_EMAC_LOOPBACK模式、GE_TEST_SGMII_LOOPBACK模式、GE_TEST_SERDES_LOOPBACK模式都能通过。而且打印结果信息。测试时其他的配置都相同。

    配置如下:Ethernet_Mode ethernet_mode = ETHERNET_AUTO_NEGOTIAT_MASTER;

    GE_Port_Connection port_connect[GE_NUM_ETHERNET_PORT]=
    {

    GE_PORT_CABLE_CONNECT ,//SGMII port 0     我们的板卡用的是这个端口
    GE_PORT_NOT_USED//SGMII port 1

    };

    测试GE_TEST_DSP0_TO_DSP1时不能通过初始化。程序死在了第2个while循环中。

    我看了gpSGMII_regs[i]->STATUS_REG=0x30,

    (1)我想问下6678_EVM的PHY芯片的物理地址是多少?

    (2)我现在测试的板卡的PHY芯片的物理地址是7。出现上面的原因是不是因为修改了PHY芯片地址的原因??????

    (3)我想修改PHY芯片的物理地址的话,对应程序中该如何修改???

  • 板子是按照C6678EVM板做的,只是PHY芯片选用的是88E1111,,PHY地址改为00111。运行的程序是C6678的GE程序,SGMII的连接状态返回值一直是0x30.

    问题:(1)请问在程序中如何修改PHY的地址?由于6678_EVM的PHY地址是00001现在需要修改为00111??

    (2)现在需要由SGMII1修改为SGMII0,程序中该如何修改???