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

C6678 GE网口loopback测试

经测试自己的板子 ddr 与 srio 都正常,基于ndk的网口也能正常工作

参照K1_STK_v1.1的gb工程,板子与EVM板只有sgmii时钟不同,所以只修改312.5->125,其他一样

但测试发现总卡死在void WaitForRxInterrupt(Uint32 uiStartCycles)函数中。下面是打印信息

JTAG ID= 0x1009e02f. This is C6678/TCI6608 device, version variant = 1.
DEVSTAT= 0x00001e21. little endian, No boot or EMIF16(NOR FLASH) or UART boot, PLL configuration implies the input clock for core is 100MHz.
SmartReflex VID= 59, required core voltage= 1.078V.
Die ID= 0x0901100b, 0x04045e45, 0x00000000, 0x48a00021
Device speed grade = 1000MHz.
Enable Exception handling…
Initialize DSP main clock = 100.00MHz/1×10 = 1000MHz
Initialize PASS PLL clock = 100.00MHz/2×21 = 1050.000MHz
Initialize DDR speed = 100.00MHzx/3×40 = 1333.333MTS
GE 1000M fullduplex internal SERDES loopback test…
SGMII0 port is not usable for test
waiting for GE RX interrupt timeout!
number of descriptors in host queue DDR_HOST_SIZE1_FDQ (2059) changed from 256 to 255
0x82344021->0x82344041->0x82344061->0x82344081->0x823440a1->0x823440c1->0x823440e1->0x82344101->0x82344121->0x82344141->…

请问为什么会出现这样情况,如何去排查问题?

谢谢!

Shine:

1. 请检查一下时钟配置是否有改成125MHz?
ge_cfg.serdes_cfg.commonSetup.inputRefClock_MHz = 125

2. “SGMII0 port is not usable for test”这个错误信息是SGMII0没有打开,请看一下GE_Test.c的代码是否如下。
GE_Port_Connection port_connect[GE_NUM_ETHERNET_PORT]=
{GE_PORT_SGMII_CONNECT, //SGMII port 0GE_PORT_SGMII_CONNECT //SGMII port 1
};

user6027759:

回复 Shine:

时钟改成了125M,并且我们的SGMII port 0没有接线,只有SGMII port 1接到了PHY

user6027759:

回复 Shine:

请问哪里会造成 waiting for GE RX interrupt timeout! 这种情况。

Shine:

回复 user6027759:

请检查一下port_ok函数状态寄存器看sgmii0与phy芯片是否link成功了?

user6027759:

回复 Shine:

sgmii0没有link,sgmii1 link成功了。

Shine:

回复 user6027759:

请问MAC和SGMII loopback能成功吗?如果能成功的话,建议检查一下PHY那块的电路和设置。

user6027759:

回复 Shine:

任何一个回环测试都不能成功,都是提示 waiting for GE RX interrupt timeout!

不明白为何没有RX中断。

赞(0)
未经允许不得转载:TI中文支持网 » C6678 GE网口loopback测试
分享到: 更多 (0)