6657 SRIO之前一直链路成功的,现在链路不成功了,工程没改动,FPGA那边port_initialized和link_initialized一直为低,DSP这边运行卡在while (CSL_SRIO_IsPortOk (hSrio, 0) != TRUE); //4x just need to see port 0。
FPGA那边调用IP核选定4x、3.125G、156.25MHz参考频率和deviceID为16bit 0x00FF,PLL和发送接收配置如下:
/* Assuming the link rate is 3125; program the PLL accordingly. */
CSL_BootCfgSetSRIOSERDESConfigPLL (0x251);//0x233
/* Configure the SRIO SERDES Receive Configuration. */
CSL_BootCfgSetSRIOSERDESRxConfig (0, 0x00440495);
CSL_BootCfgSetSRIOSERDESRxConfig (1, 0x00440495);
CSL_BootCfgSetSRIOSERDESRxConfig (2, 0x00440495);
CSL_BootCfgSetSRIOSERDESRxConfig (3, 0x00440495);
/* Configure the SRIO SERDES Transmit Configuration. */
CSL_BootCfgSetSRIOSERDESTxConfig (0, 0x00180795);
CSL_BootCfgSetSRIOSERDESTxConfig (1, 0x00080795);
CSL_BootCfgSetSRIOSERDESTxConfig (2, 0x00080795);
CSL_BootCfgSetSRIOSERDESTxConfig (3, 0x00080795);
1、
/* Set the Device Information */
CSL_SRIO_SetDeviceInfo (hSrio, DEVICE_ID1_16BIT, DEVICE_VENDOR_ID, DEVICE_REVISION);这个设置的ID是什麽?
/* Set the 16 bit and 8 bit identifier for the SRIO Device. */
CSL_SRIO_SetDeviceIDCSR (hSrio, DEVICE_ID1_8BIT, DEVICE_ID1_16BIT);这个又是干嘛用的?
/* Configure the Base Routing Register to ensure that all packets matching the * Device Identifier & the Secondary Device Id are admitted. */
CSL_SRIO_SetTLMPortBaseRoutingPatternMatch(hSrio, 0, 1, DEVICE_ID2_16BIT, 0xFFFF);
CSL_SRIO_SetTLMPortBaseRoutingPatternMatch(hSrio, 1, 0, DEVICE_ID2_8BIT, 0xFF);这个里面两个ID都没有使用,不知道有没有问题,里面关于ID的操作有点不知道目的何在。
2、
/* Set the Host Device Identifier. */
CSL_SRIO_SetHostDeviceID (hSrio, DEVICE_ID1_8BIT);这个设置的ID是DSP自行设置的自己的deviceID还是FPGA的deviceID:0x00FF???
不是初始化完成后链路就能完成吗?FPGA那边只调用IP核应该也可以完成链路的吧。
Allen35065:
握手不成功可以测一下DSP的自环,如果自环能过配置应该问题不大;
考虑是FPGA的初始化问题