TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 SGMII口问题

各位好

     我现在用正在调试我们自己板子的网口,遇到几个问题,向大家请教。

     硬件设计:DSP有两个SGMII口,其中SGMII[1]口参考的EVM开发板,SGMII[0]口的硬件电路与SGMII[0]口一样;

                        也就是我们板子上有两个RJ45口,希望SGMII[0]口可以实现SGMII[1]口一样的功能。

     目前进展:通过SGMII[1]口与PC机相连,可以运行MCSDK中的HUA例程。

     下一步想实现:可以通过SGMII[0]口运行HUA例程。

     问题:1.关于SGMII[0]的初始化,是只要在GEL中更改,还是在程序中都要修改?

                 2.具体需要修改的地方在哪,有没有针对SGMII[0]口的例程呢?

Andy Yin1:

参考如下帖子的说明:

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/p/58507/132834.aspx#132834

yimin dong:

回复 Andy Yin1:

感谢Andy的回答

    按照你给的帖子的内容,我用两种方法都测试了,但是SGMII0口还是没有通。之前通过SGMII能够跑通HUA和Client程序,能通过电脑打开192.168.2.100的界面。

————————————————————————————————————

方法1. 用GE程序中的GE_TEST_DSP0_TO_DSP1程序对SGMII1和SGMII0口分别测试。

            a.首先,PC机与板子的网口SGMII1口相连,配置如下:

                GE_Test_Data_Path test_data_path= GE_TEST_DSP0_TO_DSP1;

                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_NO_CONNECT //SGMII port 1                 };

                 然后下载运行程序,显示结果为:              

[C66xx_0] Initialize DSP main clock = 100.00MHz/1×10 = 1000MHzInitialize PASS clock = 100.00MHzx21/2 = 1050.000MHzInitialize DDR speed = 66.67MHzx20/1 = 1333.333MTSEnable Exception handling…GE auto negotiation (master) two DSPs test (DSP0 -> DSP1)…Unconnected SGMII0 port can only be used for internal loopback testUnconnected SGMII0 port can only be used for internal loopback testPHY1 link up. TSCL= 0x353b417PHY1 link up. TSCL= 0x353d287Transferred 1472 bytes with 32001584 cycles, throughput= 0Mbps.STATSA.RxGoodFrames =32STATSA.RxOctets =2048STATSA.Frame64 =32STATSA.NetOctets =2048STATSB.RxCRCErrors =2STATSB.TxGoodFrames =32STATSB.TxOctets =2048STATSB.Frame64 =32STATSB.Frame512t1023 =2STATSB.NetOctets =3346SGMII0 Link Partner Advertised Ability 10Mbps Half DuplexSGMII port 0 is in the idle state.SGMII1 Link Partner Advertised Ability 100Mbps Full DuplexSGMII port 1 is in the idle state.MDIO ALIVE flag: 0x00000002MDIO LINK flag: 0x00000002GE test complete.

                         用wireshark抓包,并没有相关的包,感觉数据没有发送出来。

               b.PC网口与SGMII0口相连,程序配置与上面相反。结果:

[C66xx_0] Initialize DSP main clock = 100.00MHz/1×10 = 1000MHzInitialize PASS clock = 100.00MHzx21/2 = 1050.000MHzInitialize DDR speed = 66.67MHzx20/1 = 1333.333MTSEnable Exception handling…GE auto negotiation (master) two DSPs test (DSP0 -> DSP1)…

                 感觉更不对。

方法2. 改platform.c程序,PLATFORM_EMAC_PORT_MODE_AMC替换为PLATFORM_EMAC_PORT_MODE_PHY

             参考链接http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/150203/547893.aspx#547893

             但是,结果还是不能跑通SGMII0口。

——————————————————————————————————————————————-

板子的88E1111的电压和时钟都没有问题,SGMII两口与PC相连都可以自协商成100M;

求帮忙分析分析,看问题出哪了。

qian cui:

回复 yimin dong:

你好,我也在使用这个例程,改为dsp0到dsp1,可是有个wait_phy_link过不了,请问这是什么原因,phy芯片使用的也是88e1111.

谢谢

yimin dong:

回复 qian cui:

qian cui

你好,我现在做的都是用的dsp0核实现的以太网通信。

对于用其他核的实现不是很清楚。

qian cui:

回复 yimin dong:

我也是用0核和pc之间通信,配置和你上面说的修改的一样,在ge_init初始化完后有一个wait-phy-link的函数,一直等待了,你不是用过这个例程么,想问下什么问题导致的

qian cui:

回复 yimin dong:

是1端口,跑完后打印是
service status:dhcp:enable:000
service status:dhcp:enable:running:000
service status:dhcp:enable:fault:000
这是什么问题,无法收到数据

yimin dong:

回复 qian cui:

如果是端口1的话,请参考下面链接:

http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/239643.aspx

            可能需要下一个TFTPD32软件

你可以把完整的结果显示复制过来看看

qian cui:

回复 yimin dong:

之前下载的一个helloword历程是不需要这个DHCP的,偶尔连接上后可以接收PC发送的数据。但是经常给出错误unable to register the EMAC。后来说是下载一个新的历程,现在又给出这个问题?

还有一个问题是,如果要通过bootloader启动,gel文件就不能使用,哪么将gel文件里的初始化接口放到main函数那里?bios_start前后还是其它位置?.cfg文件有memory map的说明,目前是映射到DDR3的,如果不用gel文件,这个东西映射到那个空间?如果改为L2SRAM编译过不了

yimin dong:

回复 qian cui:

我也是新手,你提的问题已经超出我的能力范围。。。

赞(0)
未经允许不得转载:TI中文支持网 » C6678 SGMII口问题
分享到: 更多 (0)