各位好
我现在用正在调试我们自己板子的网口,遇到几个问题,向大家请教。
硬件设计: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:
我也是新手,你提的问题已经超出我的能力范围。。。